Макет для модуля Magento - PullRequest
       0

Макет для модуля Magento

8 голосов
/ 17 февраля 2012

Я новичок в Magento и пытаюсь создать макет для модуля, который я построил.У меня есть простой модуль и IndexController, который выводит «Hello World.» (Я использую этот учебник).

Теперь я хочу сделать макет для этого модуля, и яиспользовал этот учебник , но он не работает.Может кто-нибудь указать мне учебник или может объяснить, как макеты работают в Magento?

Thx:)

Вот что я сделал до сих пор: у меня есть пакет под названием «Андрей» имодуль "Hello World".

Вот файл config.xml для моего модуля:

<?xml version="1.0" encoding="UTF-8"?>
<config>    
    <modules>
        <Andrei_Helloworld>
            <version>0.1.0</version>
        </Andrei_Helloworld>
    </modules>
    <frontend>
        <routers>
            <helloworld>
                <use>standard</use>
                <args>
                    <module>Andrei_Helloworld</module>
                    <frontName>helloworld</frontName>
                </args>
            </helloworld>
        </routers>  
    </frontend>
</config> 

Вот модуль Andrei_Helloworld:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Andrei_Helloworld>
            <active>true</active>
            <codePool>local</codePool>
        </Andrei_Helloworld>
    </modules>
</config> 

А вотмой контроллер:

class Andrei_Helloworld_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        echo 'Hello world';
    }
}

Это все, что я сделал до сих пор.Модуль работает правильно.И я хочу макет для моего IndexController.Thx:)

1 Ответ

21 голосов
/ 17 февраля 2012

Итак, чего-то не хватает ...

  • объявите обновление макета в вашем config.xml:

    <frontend>
        ...
        <layout>
            <updates>
                <helloworld>
                    <file>helloworld.xml</file>
                </helloworld>
            </updates>
        </layout>
        ...
    </frontend>
    
  • создайте XML-файл макета в app / design / frontend / base / default / layout / helloworld.xml и в нем вы создадите ссылку на ваш модуль / контроллер / действие:

    <?xml version="1.0"?>
    <layout>
        <helloworld_index_index>
            <reference name="content">
                <block type="core/template" name="helloworld" template="helloworld.phtml" />
            </reference>
        </helloworld_index_index>
    </layout>
    
  • создайте файл phtml, который вы только что установили в качестве шаблона в файле макета xml, например app / design / frontend / base / default / template / helloworld.phtml :

    this is the content of helloworld.phtml
    
  • загрузите и визуализируйте все эти вещи, в действии вашего контроллера замените ваш echo оператор на:

    public function indexAction()
    {
        $this->loadLayout();
        $this->renderLayout();
    }
    
  • отключить кеш, обновить браузер, расслабиться и наслаждаться
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...