Magento - удалить вкладку из вида продукта, используя local.xml - PullRequest
5 голосов
/ 18 октября 2011

Очень простой вопрос с (я держу пари) очень простым ответом ... Я хочу удалить одну из вкладок информации о продукте со страницы просмотра моего продукта.Я хочу удалить вкладку, которая показывает атрибуты, но вместо того, чтобы комментировать ее в catalog.xml, я хочу удалить ее правильно через local.xml.

<action method="addTab" translate="title" module="catalog">
<alias>additional</alias><title>Additional Information</title>
<block>catalog/product_view_attributes</block>
<template>catalog/product/view/attributes.phtml</template>
</action>

Я думал, что может быть Метод removeTab , но это не сработало.Есть также method = "unsetChild" , но я не могу понять, как бы я нацелился на этот конкретный элемент, поскольку в XML нет определенного имени.

Любые идеи будут высоко оценены.

Ответы [ 2 ]

11 голосов
/ 19 октября 2011

Основываясь на моем чтении Mage_Catalog_Block_Product_View_Tabs::addTabs(), вы сможете удалить блок с рендеринга одним из следующих способов:

<!-- language: xml -->
<catalog_product_view>
    <reference name="product.info.tabs">
        <action method="unsetChild">
            <child>additional</child>
        </action>
    </reference>
</catalog_product_view>

Или:

<catalog_product_view>
    <remove name="additional" />
</catalog_product_view>

Причина, по которой я считаю, что это сработает, заключается в том, что addTab () просто принимает аргументы и использует их для создания экземпляра блока в качестве дочернего элемента родительского блока вкладки.

Комментарий Зявы неверен, как я полагаю, вы знаете. Существует разница между app / etc / local.xml (файл конфигурации) и явно загруженным в последний раз local.xml из ваших настроек проекта.

3 голосов
/ 05 сентября 2013

Я использую свой модуль adminhtml layout xml для добавления или удаления вкладок (вы можете использовать local.xml вашей темы, основываясь на этих шагах с небольшим изменением.)

Во-первых, вам нужно будет объявить свойОбновления макета (в вашем модуле config.xml), такие как:

<adminhtml>
    <layout>
        <updates>
            <mymodule>
                <file>mymodule.xml</file>
            </mymodule>
        </updates>
    </layout>
</adminhtml>

Затем в mymodule.xml добавьте следующее (здесь я использую дескриптор страницы просмотра порядка администратора)

<adminhtml_sales_order_view>
    <reference name="sales_order_tabs">
        <action method="removeTab">
            <name>order_shipments</name>
        </action>
        <action method="addTabAfter">
            <name>order_shipments_mymodule</name>
            <block>mymodule/adminhtml_order_shipments</block>
            <after>order_creditmemos</after>
        </action>
        <action method="addTab">
            <name>order_receipts</name>
            <block>mymoduled/adminhtml_order_recp</block>
        </action>
    </reference>
</adminhtml_sales_order_view>

Надеюсь, это поможет!(Не забудьте проголосовать за это решение)

...