Я установил новый contentkey для отображения меню в правом столбце моего сайта. Вот так:
public function menuAction()
{
$this->view->layout()->setContentKey('menu');
}
Это код макета:
<div class="center_col"><?php echo $this->layout()->content; ?></div>
<div class="right_col"><?php echo $this->layout()->menu; ?></div>
Но есть проблема!! после настройки меню contentKey результат каждого действия отображается в правом столбце (контент не работает!)
У меня есть плагин для действий в меню, я думаю, это причина!
Это мой плагин:
class Places_Controller_Plugin_ActionSetup extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopStartup( Zend_Controller_Request_Abstract $request)
{
$front = Zend_Controller_Front::getInstance();
if (!$front->hasPlugin('Zend_Controller_Plugin_ActionStack')) {
$actionStack = new Zend_Controller_Plugin_ActionStack();
$front->registerPlugin($actionStack, 97);
} else {
$actionStack = $front->getPlugin('Zend_Controller_Plugin_ActionStack');
}
$menuAction = clone($request);
$menuAction->setActionName('menu')->setControllerName('index');
$actionStack->pushStack($menuAction);
}}
Мне нужен вызов действия меню на всех страницах, поэтому я использую этот плагин!
Есть ли способ решить мою проблему?!
Ответьте с помощью Марцина и SMka:
public function menuAction()
{
$this->view->placeholder("menu")
->append($this->view->render("menu/menu.phtml" ));
}
1 ответ
В вашем действии меню просто сделайте рендеринг в именованный сегмент
// Renders my/login.phtml to the 'form' segment of the
// response object
$this->render('login', 'form');
Нет необходимости layout()->setContentKey
, этот метод для других целей
Похожие вопросы
Новые вопросы
zend-framework
Zend Framework - это объектно-ориентированная среда веб-приложений с открытым исходным кодом, реализованная в PHP 7.1 и лицензированная по новой лицензии BSD. Zend Framework был заархивирован 1 января 2020 года одновременно с миграцией и запуском Laminas Project, официального продолжения под управлением The Linux Foundation.
t manage in action method (or i couldn
ничего найти для этого), я должен использовать файл начальной загрузки для управления этим! я предпочитаю управлять меню в методе действия