2

我有一个多商店 Magento 设置(Magento 1.7.0.2),我想为不同的商店提供两个不同的模板。安装第二个后,第一个模板中的菜单消失。我认为这是因为模板实现的自定义菜单模块

如何编辑模块以两种不同的方式覆盖 Magento 导航(对于两个不同的模板)?

干杯!

4

2 回答 2

0

根据您的描述,我猜这个问题是由菜单模块覆盖的默认块、控制器或模型引起的。在当前版本的 Magento 中处理这个问题并不容易。我可以针对您遇到的情况提出解决方案。

检查哪个类被覆盖

您可以检查菜单模块下的 config.xml,路径应该是

/MAGENT_ROOT/app/code/{local,community}/Custom/Menu/etc/config.xml

检查标签

/config/global/models/xxxx/rewrite        # for model rewrite
/config/global/rewrite/xxxx/{from, to}    # for controller rewrite
/config/global/blocks/xxxx/rewrite        # for block rewrite

然后,您可以查看模块覆盖的内容。

创建基于商店视图的选项

/MAGENT_ROOT/app/code/{local,community}/Custom/Menu/etc/system.xml

添加一个名为Enable the extension的选项。(部分片段如下)

# the xml should insert into /config/sections/xxxx/groups/general/fields/
<enabled>
    <label>Enable the extension</label>
    <frontend_type>select</frontend_type>
    <source_model>adminhtml/system_config_source_yesno</source_model>
    <sort_order>10</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>1</show_in_store>
</enabled>

检查班级

良好的编程应该覆盖默认类。所以我们可以使用以下逻辑:

if (Mage::getStoreConfig('xxxx/general/enabled') === '1') {
    # the original module logic
} else {
    parent::some_method($_args);
}

这是我可以根据我的假设提出的解决方案。希望它可以帮助你。

于 2014-02-13T05:30:47.797 回答
0

在创建第二家商店时,只需为该商店选择相同的类别根或您的自定义类别列表,您将在第二家、第三家商店中使用菜单。

System > Manage Stores:

选择Store Name现在不显示菜单的那个,然后选择默认Root Category *

希望这对您有所帮助。

于 2014-02-14T10:08:53.857 回答