В плагине Zend-Framewok, как сделать что-то подобное $ this-> view-> foo = ...; - PullRequest
0 голосов
/ 29 июля 2010

Я написал небольшой плагин, так что я смогу получить имя контроллера в каждом представлении. но не знаю, как «передать» параметр в представление (делайте сумму как $ this-> view-> foo = ...;).

class Zend_Extension_Controller_Plugin_GetControllerName extends Zend_Controller_Plugin_Abstract
{

    public function __construct()
    {

    }

    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        $this->view->controllerName = $request->getControllerName();
    }
}

что я могу написать вместо $ this-> view-> controllerName, чтобы оно работало?

Ответы [ 3 ]

1 голос
/ 29 июля 2010

Попробуйте это:

$view = Zend_Layout::getMvcInstance()->getView();
$view->controllerName = $request->getControllerName();
0 голосов
/ 29 июля 2010

Взять этот пример за основу:

class Plugin_Sidebar extends Zend_Controller_Plugin_Abstract {

    public function postDispatch(Zend_Controller_Request_Abstract $request)
    {
        if($request->getModuleName() == 'admin')
        {
            return;
        }

        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
        if (null === $viewRenderer->view) {
            $viewRenderer->initView();
        }
        $view = $viewRenderer->view;


        $Categories = new Model_DbTable_Categories();
        $view->menuItens = $Categories->getMenu();

    }
}
0 голосов
/ 29 июля 2010

Вы можете использовать вспомогательный брокер для получения экземпляра представления. Примерно так должно работать:

Zend_Controller_Action_HelperBroker::getExistingHelper('ViewRenderer')->view->foo = 'bar';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...