У меня, похоже, проблема с отображением моего макета дважды. Мне было интересно, вызвано ли это чем-то в моем плагине переднего контроллера (см. Ниже), который использует макет Zend только для определенного модуля, а не в основном приложении. Любые ответы будут высоко оценены. БлагодаряМакет визуализируется дважды
class My_Controller_Plugin_AdoptLayout extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$moduleName = $request->getModuleName();
if ($moduleName == 'some-module') {
if (!Zend_Layout::isEnabled()) {
$view = new Zend_View(array('encoding' => 'UTF-8'));
$view->addScriptPath(ROOT_DIR . '/modules/some-module/views/scripts/');
$view->doctype('XHTML1_STRICT');
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
Zend_Layout::startMvc();
$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('default');
$layout->setLayoutPath(APPLICATION_PATH . '/modules/some-module/views/scripts/layouts/');
$layout->setView($view);
}
}
}
}
Спасибо andho. Я задавался вопросом, может ли это быть на самом деле, но мне действительно нужно использовать его, поскольку я должен передавать значения форм между действиями и не могу заставить его работать с $ this -> _ helper-> redirector. Мне пришлось создать новый объект вида, потому что основное приложение использует гибрид Zend_View/Smarty, и я не хочу менять все мои шаблоны, поскольку они являются чистым Zend_View. – somekindofusernamegoeshere
Зачем вам нужно передавать данные формы другому действию? Является ли действие одним и тем же контроллером. Если так вы не можете назвать $ this-> otherAction(); Или используйте цепочку действий, но это может потенциально отобразить другое представление, если вы не отключите рендеринг для одного из действий – andho