Magento не отображает пользовательский блок - PullRequest
0 голосов
/ 31 января 2012

В моем config.xml у меня есть:

<config>
    <modules>
        <Test_Quickorder>
            <version>0.1.0</version>
        </Test_Quickorder>
    </modules>
    <global>
        <blocks>
            <quickorder>
                <rewrite>
                    <quickorder>Test_Quickorder_Block_Quickorder</quickorder>
                </rewrite>
            </quickorder>
        </blocks>
    </global>
    <frontend>
        <routers>
            <quickorder>
                <use>standard</use>
                <args>
                    <module>Test_Quickorder</module>
                    <frontName>quickorder</frontName>
                </args>
            </quickorder>
        </routers>
        <layout>
            <updates>
                <quickorder>
                    <file>quickorder.xml</file>
                </quickorder>
            </updates>
        </layout>
    </frontend>
</config>

В приложении / код / ​​сообщество / тест / Quickorder / контроллеры / IndexController.php у меня есть:

<?php
class Test_Quickorder_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        $this->loadLayout(array('default');
        $this->renderLayout();
    }
}

В приложении / design / frontend / base / default / layout / quickorder.xml у меня есть:

<layout version="0.1.0">
    <default>
        <reference name="top.links">
            <action method="addLink" translate="label title">
                <label>Quick Order</label>
                <url>quickorder</url>
                <title>Quick Order</title>
                <prepare/>
                <urlParams/>
                <position>1</position>
            </action>
        </reference>
    </default>
    <quickorder_index_index>
        <reference name="root">
            <action method="setTemplate">
                <template>page/1column.phtml</template>
            </action>
        </reference>
        <reference name="content">
            <block type="quickorder/quickorder" name="quick" template="quickorder/quickorder.phtml"/>
        </reference>          
    </quickorder_index_index>
</layout>

В приложении / design / frontend / base / default / template / quickorder / quickorder.phtml у меня есть:

<div class="content">
    <p>Hello</p>
</div>

А в приложении / код / ​​сообщество / тест / Quickorder / Block / Quickorder у меня есть:

<?php
class Test_Quickorder_Block_Quickorder extends Mage_Core_Block_Abstract
{

}

Я ожидал, что "Привет" появится прямо в середине страницы. Вместо этого я ничего не получаю. Я знаю, что какая-то часть макета работает, потому что когда я перехожу на Quickorder, я получаю

<body class="quickorder-index-index">

Кто-нибудь может указать мне в правильном направлении, где я ошибся здесь?

Заранее спасибо за любую помощь / советы / указатели: -)

1 Ответ

3 голосов
/ 31 января 2012

Я не проверил весь ваш код, но этот

class Test_Quickorder_Block_Quickorder extends Mage_Core_Block_Abstract
{

}

должно быть это

class Test_Quickorder_Block_Quickorder extends Mage_Core_Block_Template
{

}

Если вы хотите, чтобы блок отображал шаблон, он должен быть или наследоваться от Mage_Core_Block_Template.

...