Как установить макет на основе значения базы данных в Zend Framework - PullRequest
1 голос
/ 11 ноября 2011

Мне нужно переключить макет на основе пользовательского значения, которое хранится в базе данных. Я хотел бы установить это с помощью плагина (пробовал крючок PreDispatch). Однако, похоже, я пока не могу получить доступ к моделям там. В какой момент я могу получить доступ к значениям БД и установить макет? Я предпочитаю делать это глобально, а не устанавливать для каждого контроллера. Идеи приветствуются.

1 Ответ

1 голос
/ 12 ноября 2011

Для таких целей лучше использовать плагин контроллера

class Core_Controller_Plugin_LayoutManager extends Zend_Controller_Plugin_Abstract
{
    public function routeStartup (Zend_Controller_Request_Abstract $request)
    {
        // Get your layout name here

        $this->_layout = Zend_Layout::getMvcInstance()
            ->setLayoutPath(YOUR_PATH_HERE)
            ->setLayout(YOUR_LAYOT_NAME_HERE);
    }
}

Не забудьте добавить в конфиге:

resources.frontController.plugins.templatemanager = Core_Controller_Plugin_LayoutManager
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...