我正在尝试在magento中创建一个新的自定义模块但是没有加载布局。它总是加载三列布局,在page.xml文件中定义为默认布局。我认为它不考虑我的模块操作的布局设置,即使它在config.xml文件中提到了这样 -
<frontend>
<routers>
<mynamespace_test>
<use>standard</use>
<args>
<module>Mynamespace_Test</module>
<frontName>test</frontName>
</args>
</mynamespace_test>
</routers>
<layout>
<updates>
<test><file>test.xml</file></test>
</updates>
</layout>
</frontend>
我的test.xml看起来像这样: -
<?xml version="1.0"?>
<layout version="0.1.0">
<test_index_index translate="label">
<label>Test module</label>
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
</reference>
<reference name="content">
<block type="test/this" name="test.this" template="test/test.phtml" />
</reference>
</test_index_index>
</layout>
我的控制器定义如下: -
class mynamespace_Test_IndexController extends Mage_Core_Controller_Front_Action
{
function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
}
请帮忙!我错过了什么。 感谢
答案 0 :(得分:3)
是的,我搞定了。我明白在指向其他模块的布局文件后问题与布局文件不存在。在为模块定义路由器时,提到命名空间是错误的:
我更新了这段代码: -
<routers>
<mynamespace_test>
<use>standard</use>
<args>
<module>Mynamespace_Test</module>
<frontName>test</frontName>
</args>
</mynamespace_test>
</routers>
到
<routers>
<test>
<use>standard</use>
<args>
<module>Mynamespace_Test</module>
<frontName>test</frontName>
</args>
</test>
</routers>
它工作正常。
感谢。
答案 1 :(得分:2)
你在哪里保存test.xml
?它需要处于当前活跃的主题中:
app/design/frontend/default/activetheme/layout/test.xml
我还建议你从Alan Storm的博客安装LayoutViewer扩展,这样你就可以调试哪些xml更新被插入到布局中。