我模块的config.xml的内容。
我想通过此模块更改onepage模板文件。
如果我在onepage.xml中更改代码,它是有效的,但我想用我的模块进行此操作。
这段代码怎么了?
<config>
<modules>
<Mynamespace_Mymodule>
<version>1.0</version>
</Mynamespace_Mymodule>
</modules>
<frontend>
<layout>
<checkout_onepage_index>
<reference name="checkout.onepage">
<action method="setTemplate"><template>mynamespace/mymodule/onepage.phtml</template></action>
</reference>
</checkout_onepage_index>
</layout>
</frontend>
</config>
答案 0 :(得分:1)
您无法从config.xml
调用布局你说的是:我在onepage.xml中更改了代码 - &gt;看起来你的意思是checkout.xml 这是定义的术语。我们可能有不同的模块定义。
假设您在app/code/local/[Mynamespace]/[Mymodule]
中有模块
您的[Mymodule]
正在呼叫mymodule.xml
你说它是从你的模块调用的吗?
1)如果是,那么您可以在config.xml
<config>
<modules>
<Mynamespace_Mymodule>
<version>1.0</version>
</Mynamespace_Mymodule>
</modules>
<frontend>
<layout>
<updates>
<mymodule>
<file>mymodule.xml</file>
</mymodule>
</updates>
</layout>
</frontend>
</config>
该代码将调用名为mymodule.xml
的布局
然后在app/design/frontend/[base/default]/[default/yourtheme]/layout/mymodule.xml
<?xml version="1.0"?>
<layout version="0.1.0">
<checkout_onepage_index>
<reference name="checkout.onepage">
<action method="setTemplate"><template>mynamespace/mymodule/onepage.phtml</template></action>
</reference>
</checkout_onepage_index>
</layout>
2)如果不是 - >您对模块的定义只是app/code/local/[Mynamespace]/[Mymodule]
下的文件,那么您需要重写Onepage的块
config.xml
<config>
<modules>
<Mynamespace_Mymodule>
<version>1.0</version>
</Mynamespace_Mymodule>
</modules>
<global>
<blocks>
<checkout>
<rewrite>
<onepage>Mynamespace_Mymodule_Block_Checkout_Onepage</onepage>
</rewrite>
</checkout>
</blocks>
</global>
</config>
使用该配置,Mage_Checkout_Block_Onepage
将由Mynamespace_Mymodule_Block_Checkout_Onepage
重写(只要您保持目录结构匹配,就可以更改名称。)
例如,您的文件将被放入:app/code/local/[Mynamespace]/[Mymodule]/Block/Checkout/Onepage.php
最后,您的app/code/local/[Mynamespace]/[Mymodule]/Block/Checkout/Onepage.php
将是这样的:
class Mynamespace_Mymodule_Block_Checkout_Onepage extends Mage_Checkout_Block_Onepage
{
public function __construct()
{
parent::__construct();
$this->setTemplate('mynamespace/mymodule/onepage.phtml');
}
}