从xml中删除布局句柄

时间:2014-02-04 11:48:05

标签: magento layout handles

我在社区模块中找到的某个xml文件中定义了一个布局。不知何故,我想添加一个条件(ifconfig),通过该条件呈现块的内容或完全删除该句柄并自己创建一个,以便我可以访问该块。

更具体地说,这是我在udprod.xml中的句柄

    <_udprod_catalog_product_edit>
        <reference name="content">
            <block type="core/template" template="udprod/product_edit.phtml" />
        </reference>
    </_udprod_catalog_product_edit>
    <adminhtml_catalog_product_edit>
        <update handle="_udprod_catalog_product_edit" />
    </adminhtml_catalog_product_edit>

如您所见,该块没有我可以依赖的名称。有什么办法可以删除&lt; _udprod_catalog_product_edit&gt;从xml文件处理?

谢谢

1 个答案:

答案 0 :(得分:0)

我不确定这是否可行,但我有一个工作,我用它来修复错误的第三方扩展:

创建新模块

非常简单,只需要2个文件。

app/etc/modules/Namespace_Fixer.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_Fixer>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Broken_Module/>
            </depends>
        </Namespace_Fixer>
    </modules>
</config>

注意依赖,这非常重要,以便在之后加载。

app/code/local/Namespace/Fixer/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_Fixer>
            <version>0.1.0</version>
        </Namespace_Fixer>
    </modules>
    <global>
    </global>
    <frontend>
        <layout>
            <updates>
                <broken_module> <!-- update this -->
                    <file>namespace/module_fixed.xml</file>
                </broken_module>
            </updates>
        </layout>
    </frontend>
</config>

覆盖布局文件以指向我们的新文件。

复制布局XML

你想指向新的XML,在那里你可以做正确的事情并在块中添加name并在任何你想要的地方调用它。