2

我在社区模块中找到的一些 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>

如您所见,该块没有我可以依赖的名称。有什么方法可以从 xml 文件中删除 <_udprod_catalog_product_edit> 句柄?

谢谢

4

1 回答 1

1

我不确定这是否可能,但我有一个工作可以用来修复有问题的第 3 方扩展:

创建一个新模块

很简单的一个,只需要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,在那里您可以做正确的事情并将 a 添加name到块中并在您想要的任何地方调用它。

于 2014-02-04T12:43:21.593 回答