修改Magento 1.9布局的最佳方法是什么?我一直在使用admin后端更新布局,但现在需要以编程方式执行此操作。有几篇文章提到过使用layout.xml,但出于某种原因,我的系统没有采用布局更新。
具体来说,这就是我要修改的内容:
原始布局
<block type="catalog/product_view_options" name="product.info.options" as="product_options" template="catalog/product/view/options.phtml">
<action method="addOptionRenderer">
<type>text</type>
<block>catalog/product_view_options_type_text</block>
<template>catalog/product/view/options/type/text.phtml</template>
</action>
...
</block>
修改后的布局
<block type="catalog/product_view_options" name="product.info.options" as="product_options" template="catalog/product/view/options.phtml">
<action method="addOptionRenderer">
<type>text</type>
<block>catalog/product_view_options_type_text</block>
<template>catalog/product/view/options/type/newfile.phtml</template>
</action>
...
</block>
我的修改后的布局位于:app / design / frontend / default /(公司名称)/(模块名称)/layout/layout.xml
layout.xml (只是检查它是否会添加块,“test”):
<layout>
<default>
<block type="core/text_list" name="test"/>
</default>
</layout>
app / code / local /(公司名称)/(模块名称)/etc/config.xml :
<config>
<modules>
...
</modules>
<frontend>
<layout>
<updates>
<(module name)>
<file>local.xml</file>
</(module name)>
</updates>
</layout>
</frontend>
</config>
有人能指出我正确的方向吗?谢谢!
答案 0 :(得分:1)
以下是我注意到应该改变的两件事:
config.xml
您已指定<file>local.xml</file>
。问题是,local.xml
已经是loaded automatically by Magento。因此,如果您尝试添加特定于模块的新文件,则不应将该文件名用于布局更新文件,但是您可以向该文件添加其他更新,这些更新将自动获取并最后应用到最终合并的布局。在幕后,全局配置的
<updates />
部分包含要加载所有文件名的节点。一旦组合中列出的文件合并,Magento将合并到最后一个xml文件local.xml
中。
app/design/frontend/default/(company name)/(module name)/layout/layout.xml
似乎不在正确的位置。您应该在app/design/frontend/base/default/layout/(company name)/(module_name).xml
处创建your new layout update file。然后,您需要更新config.xml
以指向此文件:<file>(company name)/(module name).xml</file>
。由于能够在Magento及其后备机制中使用不同的主题,所有与扩展相关的主题文件都放在前端的“base / default”包中...