我有一个 Magento 安装运行两个不同的网站。一个销售电子书,另一个不销售,因此业务团队希望看到“我的下载”链接从应用程序“我的帐户”区域的客户导航块中删除。
我可以看到 design/frontend/base/layout/downloadable.xml 中定义的链接,但看不到任何定义的方式,可以让我仅在其中一个网站上禁用该链接。显然,我可以覆盖此 XML 以全局关闭,但我需要将更改限制在范围内。
如何在多站点 Magento 安装中的单个网站或商店上定义布局覆盖?
根据以下回复,我做了以下工作:
创建了 app/local/Mage/Customer/Block/Account/Navigation.php 并添加了一个不在核心代码中的方法removeLink()。
如果我在 local.xml 中进行以下更改,下载链接将被删除:
<?xml version="1.0" encoding="UTF-8"?>
<layout>
<default>
<remove name="catalog.compare.sidebar"/>
</default>
<customer_account>
<reference name="customer_account_navigation">
<action method="removeLink" translate="label" module="downloadable"> <name>downloadable_products</name></action>
</reference>
</customer_account>
</layout>
但是,如果尝试针对特定商店,则不然。例如。
<?xml version="1.0" encoding="UTF-8"?>
<layout>
<default>
<remove name="catalog.compare.sidebar"/>
</default>
<STORE_mm>
<customer_account>
<reference name="customer_account_navigation">
<action method="removeLink" translate="label" module="downloadable"> <name>downloadable_products</name></action>
</reference>
</customer_account>
</STORE_mm>
</layout>
正如安东建议的那样,为您的商店设置一个新的布局主题。对于站点范围+商店范围的任何内容的另一种方法是使用商店布局句柄 - 它就像<default>
每个商店应用的句柄。如果您的商店代码(在“管理商店”>“商店视图”下)是“foo”,则商店布局句柄将为<STORE_foo>
.
Ref. Mage_Core_Controller_Varien_Action::addActionLayoutHandles()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)