макет не загружается


Я создаю модуль под названием Mdeprojects_Discount. Я добавил следующие папки

app/local/Mdeprojects/Discount/[plus all relevant folders required]

app/design/frontend/mdediscount/default/layout/

app/design/frontend/mdediscount/default/template/discount/

В папке макета, которую я добавил local.xml и это работает так, как и ожидалось. Мой другой файл макета, который у меня есть в папке, не загружается при вызове, это было проверено неправильным форматированием файла макета, но я не получил никаких ошибок. (кэширование отключено, ошибки включены).

В моем контроллере я выполнили var_dump($this->getLayout()->getUpdate()->getHandles()) это возвращает пустой массив. Но я использую Commercebug, и на вкладке Макет и в заголовке "Дескрипторы для этого запроса" один из возвращаемых дескрипторов <mdeprojects_discount_remainder_remainder />

Почему ошибка commerce возвращает дескриптор, а моя команда ничего не возвращает? (я надеюсь, что если это будет решено, это также решит, почему мой файл макета не загрузка)

App/local/Mdeprojects/Discount/etc/config.xml

<config>
<frontend>
    <routers>
        <mdeprojects_discount>
            <use>standard</use>
            <args>
                <module>Mdeprojects_Discount</module>
                <frontName>discount</frontName>
            </args>
        </mdeprojects_discount>
    </routers>
    <layout>
        <updates>
            <mdeprojects_remainder>
                <file>mdeprojects/remainder.xml</file>
            </mdeprojects_remainder>
        </updates>
    </layout>
</frontend>
</config>

App/local/Mdeprojects/Discount/controllers/RemainderController.php

class Mdeprojects_Discount_RemainderController
    extends Mage_Core_Controller_Front_Action
{
    public function remainderAction()
    {
        var_dump($this->getLayout()->getUpdate()->getHandles());
        $this->loadLayout()->renderLayout();
    }
}

===

РЕДАКТИРОВАТЬ

===

Я попытался изменить свой файл контроллера на

    public function remainderAction()
{
    $this->loadLayout()->renderLayout();
    Zend_Debug::dump($this->getLayout()->getUpdate()->getHandles());
}

Это также говорит мне о том, что вызывается дескриптор mdeprojects_discount_remainder_remainder. Но я все еще не могу понять, почему мой файл макета не загружается?

 1
Author: tony09uk, 2013-12-03

2 answers

Я думаю, что это должно быть remainder вместо mdeprojects_remainder. По крайней мере, это то, что я использую для своих расширений

<config>
<frontend>
    [...]
    <layout>
        <updates>
            <remainder>
                <file>mdeprojects/remainder.xml</file>
            </remainder>
        </updates>
    </layout>
</frontend>
</config>
 2
Author: Sander Mangel, 2013-12-03 12:00:50

Я решил свою проблему благодаря этому ответу.

Макет не вызывался, потому что я установил неправильный путь, поэтому я изменил это

<layout>
    <updates>
        <mdeprojects_remainder>
            <file>mdeprojects/remainder.xml</file>
        </mdeprojects_remainder>
    </updates>
</layout>

К этому

<layout>
    <updates>
        <mdeprojects_remainder>
            <file>remainder.xml</file>
        </mdeprojects_remainder>
    </updates>
</layout>
 2
Author: tony09uk, 2017-05-23 12:37:12