西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

Magento2通用布局定制任务经验(2)

时间:2016-09-14 14:00来源:未知 作者:好模板 点击:
使用块对象方法来设置块性能 有两种方式访问块对象方法: 对block或referenceBlock使用argument指令 使用action指令。不推荐使用该方法,不过可以用来调用未被
使用块对象方法来设置块性能

有两种方式访问块对象方法:

  • 对<block>或<referenceBlock>使用<argument>指令
  • 使用<action>指令。不推荐使用该方法,不过可以用来调用未被重构,不能用<argument>的方法。

示例1:使用<argument>为产品页面设置CSS类并添加一个属性

扩展布局:

<referenceBlock name="page.main.title">
		<arguments>
		    <argument name="css_class" xsi:type="string">product</argument>
		    <argument name="add_base_attribute" xsi:type="string">itemprop="name"</argument>
		</arguments>
	</referenceBlock>

示例2:使用<action>设置页面标题

扩展布局:

...
	<referenceBlock name="page.main.title">
	    <action method="setPageTitle">
	        <argument translate="true" name="title" xsi:type="string">Catalog Advanced Search</argument>
	    </action>
	</referenceBlock>
	...

元素重新排序

在布局文件中你可以改变页面中元素的顺序,使用下面的方法即可实现:

  • <move>指令:允许改变元素的顺序和父亲。
  • <block>的before和after属性:允许改变有同一父亲的元素的顺序。

<move>使用示例:将产品页面中的stock availability和SKU块放在产品价格旁边。

在Magento Blank主题中这些元素的位置如下:

magento2 layout customization before

让我们将产品库存和SKU块放到产品价格块的后面,将review块从product-info-price容器中移出。要实现这些,在app/design/frontend/OrangeCo/orange/Magento_Catalog/layout/目录下添加catalog_product_view.xml。

<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <move element="product.info.stock.sku" destination="product.info.price" after="product.price.final"/>
        <move element="product.info.review" destination="product.info.main" before="product.info.price"/>
    </body>
</page>

这将使得产品页面看起来像这样:

magento2 layout customization after

移除元素

使用<referenceBlock>和<referenceContainer>的remove属性可移除元素。

示例:移除店铺页面中的Compare Products侧边栏

这个块在app/code/Magento/Catalog/view/frontend/layout/default.xml中被声明:

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
...
        <referenceContainer name="sidebar.additional">
            <block class="Magento\Catalog\Block\Product\Compare\Sidebar" name="catalog.compare.sidebar" template="product/compare/sidebar.phtml"/>
        </referenceContainer>
...
    </body>
</page>

要移除这个块,你需要在你的主题中扩展default.xml:

<theme_dir>/Magento_Catalog/layout/default.xml

在这个文件中,引用已被添加了remove属性的元素:

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
...
        <referenceBlock name="catalog.compare.sidebar" remove="true" />
...
    </body>
</page>

替换元素

要替换元素,你可以移除它然后添加一个新的。

(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容