создать плагин макета для переключения раскладки, когда модуль не по умолчанию называется:
class MyApplication_Layout_Controller_Plugin_Layout extends Zend_Layout_Controller_Plugin_Layout
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
switch ($request->getModuleName()) {
case 'admin': $this->_moduleChange('admin');
}
}
protected function _moduleChange($moduleName) {
$this->getLayout()->setLayoutPath(
dirname(dirname(
$this->getLayout()->getLayoutPath()
))
. DIRECTORY_SEPARATOR . 'layouts/scripts/' . $moduleName
);
$this->getLayout()->setLayout($moduleName);
}
}
Тогда в моем Bootstrap, я делаю это:
Zend_Layout::startMvc(
array(
'layoutPath' => self::$root . '/application/views/layouts/scripts',
'layout' => 'layout',
'pluginClass' => 'MyApplication_Layout_Controller_Plugin_Layout'
)
);
Нестандартные макеты входят в папку с именем после того, как модуль, так что моя структура каталогов выглядит следующим образом:
/path/to/application/views/layouts/scripts/layout.phtml --> default layout
/path/to/application/views/layouts/scripts/admin/admin.phtml --> admin layout
спасибо ... извините за ответ поздно –