Magento - 使用local.xml从产品视图中删除选项卡

时间:2011-10-18 14:42:28

标签: xml magento product

一个非常简单的问题(我打赌)一个非常简单的答案......我想从产品视图页面中删除一个产品信息标签。我想删除显示属性的选项卡,而不是在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 个答案:

答案 0 :(得分:11)

根据我对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()只是接受参数并使用它们来创建一个块实例作为制表符父块的子节点。

Zyava的评论不正确,我猜你知道。 app / etc / local.xml(配置文件)与设计设置中显式上次加载的local.xml之间存在差异。

答案 1 :(得分:3)

我正在使用我的模块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>

希望这有帮助!! (不要忘记提出这个解决方案)