макет не загружается
Я создаю модуль под названием 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
. Но я все еще не могу понять, почему мой файл макета не загружается?
2 answers
Я думаю, что это должно быть remainder
вместо mdeprojects_remainder
. По крайней мере, это то, что я использую для своих расширений
<config>
<frontend>
[...]
<layout>
<updates>
<remainder>
<file>mdeprojects/remainder.xml</file>
</remainder>
</updates>
</layout>
</frontend>
</config>
Я решил свою проблему благодаря этому ответу.
Макет не вызывался, потому что я установил неправильный путь, поэтому я изменил это
<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>