magento中的新模块不更新布局

时间:2010-11-09 10:59:09

标签: xml layout magento

我正在尝试在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();
 }

}

请帮忙!我错过了什么。 感谢

2 个答案:

答案 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更新被插入到布局中。