zoukankan      html  css  js  c++  java
  • Magento 2 Block模板终极指南

    /view/frontend/page_layout/2columns-left.xml

    <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_layout.xsd">
        <update handle="1column"/>
        <referenceContainer name="columns">
            <container name="div.sidebar.main" htmlTag="div" htmlClass="sidebar sidebar-main" after="main">
                <container name="sidebar.main" as="sidebar_main" label="Sidebar Main"/>
            </container>
            <container name="div.sidebar.additional" htmlTag="div" htmlClass="sidebar sidebar-additional" after="div.sidebar.main">
                <container name="sidebar.additional" as="sidebar_additional" label="Sidebar Additional"/>
            </container>
        </referenceContainer>
    </layout>

    两个版本的Magento之间最大的区别之一是整个项目的结构方式。与Magento 1.x中定义模板和定义app/design/frontend/<package>/<your_theme>主题资源不同skin/frontend/<package>/<your_theme>,在Magento 2中,所有内容都合并到一个基本文件夹位置。在这种情况下,主题资源不再有单独的皮肤文件夹。您的所有模板和资产现在都存储在:(app/design/frontend/<package>/<your_theme>换句话说,模板的旧位置)。

    您很快就会发现,与存储所有模板的Magento 1.x不同app/ design/frontend/<package>/<theme>/template,有许多文件夹,如下面的屏幕截图所示。

     

    这些文件夹中的每一个都代表Magento 2的模块,其中模板或资产在此主题中被覆盖。可以在app/code/Magento 看到每个模块的默认版本的位置,看看典型模块的结构。

    以下是自定义主题中的结帐模块示例。正如您所看到的,它包含一个用于布局更新的文件夹(稍后会详细介绍),一个用于模板,另一个用于替换旧skin/frontend/<package>/<theme>文件夹的“web”文件夹。但是,不是在此文件夹中包含所有站点范围的资源和JS,现在按模块组织此类项目 - 在本例中为Magento Checkout模块

    那些有敏锐眼光的人也可能已经注意到该模块的web文件夹中有一个模板文件夹。这是Magento 2模块(包括Checkout)的独特之处, 其中Magento 2使用 KnockoutJS 进行模板化。我们将在后面的教程中更详细地介绍 KnockoutJS 这些模板使用.html文件和内部逻辑(即不涉及PHP)。

    如前所述,如果要覆盖/修改核心模块的模板和JS,则需要在主题中创建一个与您希望覆盖/扩展的文件的路径匹配的等效模块文件夹。 。

      再举一个例子,您将看到Magento 2核心使用的所有默认模块。例如,如果要覆盖目录模块中的某些内容,则需要在主题中创建一个名为Magento_Catalog的文件夹。这引用了<package_name>,在本例中是app / code / Magento的“Magento”部分,即app / code / <package>,然后下划线之后的部分引用了模块名称。在这种情况下,这是目录:app / code / <package> / <module>

    换句话说,要覆盖模块的内容 app/code/<package>/< module> app/code/<package>/<module>,您需要创建一个<package>_<module>在主题中命名的文件夹 。

    另请注意,您只能覆盖 view/frontend 主题中模块部分的内容(因此,app/code/Magento/Catalog/view/frontend 映射到 app/design/frontend/<your_package>/<your_theme>/Magento_Catalog如果您需要覆盖控制器和块,则 可以在不同的位置完成,通常由后端开发人员完成,本指南未对此进行介绍。

    更多:

  • 相关阅读:
    youtube视频下载
    Amazon 发送个人文档无回复
    逻辑地址、线性地址、物理地址
    niaoge.html
    Ubuntu中修改Terminal背景
    eclipse javaw.exe in your current path问题
    linux ls-al 指令详解
    sublime上配置markdown
    iOS Button按钮 热区的放大
    iOS抓包Charles 操作
  • 原文地址:https://www.cnblogs.com/q1104460935/p/9481338.html
Copyright © 2011-2022 走看看