Можно ли определить обновления макета Magento для каждого магазина на основе

У меня есть одна установка 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>
6
задан Andrew Rutter 20 March 2012 в 17:45
поделиться