В настоящее время я работаю над расширением Magento, и я переопределил основной контроллер, который отлично работает.
Теперь я добавил новое действие в свой контроллер. Проблема в том, что всякий раз, когда я вызываю действие, создается пустая страница. Если я повторяю что-то, оно отображается правильно.
Поэтому я углубился в суть модуля Заказчика и контроллеров. Я видел там, что такие методы, как indexAction()
, реализуют макет следующим образом:
<?php
public function indexAction()
{
$this->loadLayout();
$this->_initLayoutMessages('customer/session');
$this->_initLayoutMessages('catalog/session');
$this->getLayout()->getBlock('content')->append(
$this->getLayout()->createBlock('customer/account_dashboard')
);
$this->getLayout()->getBlock('head')->setTitle($this->__('My Account'));
$this->renderLayout();
}
Я перенес это в свое действие, и теперь макет отображается правильно. Теперь вопрос:
Независимо от того, что я ввожу в вызов ->createBlock('...')
, ничего не отображается в области содержимого.
Как указать местоположение моего собственного блока, который будет отображаться как содержимое страницы, при этом украшая его макетом?
Я пробовал возиться с XML-файлами в /design/frontend/base/default/layout/myaddon.xml, но не смог заставить его работать.