php – Magento布局覆盖!

前端之家收集整理的这篇文章主要介绍了php – Magento布局覆盖!前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很喜欢Magento,所以原谅我的愚蠢的问题!据了解,Magento的整体概念基于超越了Magento中提供的基本组件.

所以基于我的理解,我已经决定更新Magento中的页面结帐的布局.我已经创建了自己的布局,并在配置文件集中,我的布局更新了结帐模块布局.但是问题是它实际上不会更新基本布局,它会用基本布局来替代它自己!应该这样做还是我错了?

实际上,你的config.xml文件中的节点没有做“更新”.
事实上,我认为你已经在你的config.xml中完成了这一点:
<config>
    <frontend>
        <layout>
             <updates>
                  <checkout>
                        <file>mylayout.xml</file>
                  </checkout>
             </updates>
        </layout>
    </frontend>
</config>

您已经在mylayout.xml中进行了修改.

其实你必须做:

<config>
    <frontend>
        <layout>
             <updates>
                  <mymodule>
                        <file>mylayout.xml</file>
                  </mymodule>
             </updates>
        </layout>
    </frontend>
</config>

然后,在mylayout.xml中:

<checkout_cart_index> <!-- this corresponds to the section where you want to add your block (or modify an existing block -->
       <reference name="content">
            <reference name="checkout.cart">
                <block type="mymodule/myblock" name="checkout.mymodule.myblock"></block>
            </reference>
        </reference>
</checkout_cart_index>

通过查看我的代码并将文件相互比较,您将更好地了解它的工作原理.

实际上,不要忘记所有的xml文件都连接在magento中.
所以,所有配置文件中的所有节点,遵循相同的顺序,将被并置.

例如,在我们的例子中,magento的config.xml文件将被连接,结果是一个文件,包含:

<config>
<!-- some nodes... -->
<!-- some nodes... -->
<!-- some nodes... -->
    <frontend>
        <layout>
             <updates>
                  <mymodule>
                        <file>mylayout.xml</file>
                  </mymodule>
                  <checkout> <!-- this is the node from the config.xml of the Checkout Module-->
                        <file>checkout.xml</file>
                  </checkout>
                  <!-- some layout updates nodes from other config files... -->
             </updates>
        </layout>
    </frontend>
<!-- some nodes... -->
<!-- some nodes... -->
</config>

如果您已经替换了< mymodule>由< checkout>生成文件将会看到:

<config>
<!-- some nodes... -->
<!-- some nodes... -->
<!-- some nodes... -->
    <frontend>
        <layout>
             <updates>
                  <checkout>
                        <file>mylayout.xml</file>
                  </checkout>
                  <!-- some layout updates nodes from other config files... -->
             </updates>
        </layout>
    </frontend>
<!-- some nodes... -->
<!-- some nodes... -->
</config>

注意mylayout.xml.
这就是为什么原来的布局文件完全被你自己的布局所取代:)

希望这一点很清楚,在法语中,我更容易解释;)

雨果.

猜你在找的PHP相关文章