【问题标题】:Remove layout handle from xml从 xml 中删除布局句柄
【发布时间】:2014-02-28 08:57:18
【问题描述】:

我在社区模块中的某个 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> 句柄?

谢谢

【问题讨论】:

    标签: magento layout handles


    【解决方案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,在那里您可以做正确的事情并将 name 添加到块中,然后在您想要的任何地方调用它。

    【讨论】:

    • 很抱歉没有尽快回答,但我仍然无法找到不需要覆盖文件的方法。我最终复制了我的模块下的文件并更改了代码,以便我为该块添加了一个名称。不是最优雅的解决方案,而是最好的解决方案。谢谢。
    • @blackseptember 很高兴我帮助了您,如果您使用此方法解决了问题,请接受答案。
    猜你喜欢
    • 2016-09-30
    • 1970-01-01
    • 2020-11-08
    • 2014-10-30
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多