Новый модуль в magento не обновляет макет - PullRequest
3 голосов
/ 09 ноября 2010

Я пытаюсь создать новый пользовательский модуль в 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 ]

3 голосов
/ 09 ноября 2010

Да, я получил это работает. Я понял, что проблема не в файле макета после указания файла макета какого-либо другого модуля. Дело в том, что при определении маршрутизатора для модуля упоминается пространство имен:

Я обновил этот блок кода: -

<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> 

и все работало нормально.

Спасибо.

2 голосов
/ 09 ноября 2010

Где вы сохранили test.xml?Он должен быть в текущей активной теме:

app/design/frontend/default/activetheme/layout/test.xml

Я также рекомендую установить расширение LayoutViewer из блога Alan Storm, чтобы вы могли отладить, какие из ваших обновлений xml вставляются в макет.

...