Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]ViewRenderer
Forum PHP.pl > Forum > PHP > Frameworki
Fluke
Witam.

Krótko:

Mam plugin gdzie mam:
  1. public function routeShutdown(Zend_Controller_Request_Abstract $request)
  2. {
  3. $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
  4.  
  5. $viewRenderer->view->setScriptPath('moja/sciezka');
  6. }


Natomiast w kontrolerze i w akcji mam
  1. function init()
  2. {
  3. var_dump($this->view->getScriptPaths());
  4. }


zwraca mi:
  1. 0 => string 'D:/xampp/htdocs/asd/application/module/news/views\scripts/' (length=62)
  2. 1 => string 'moja/sciezka/' (length=13)


I tutaj czemu nie jest na pierwszym miejscu scieżka do 'moja/sciezka'....
Nie czaję tego...

Jak zmienię w pliku Zend_View_Abstract:

  1. //array_unshift($this->_path[$type], $dir); tak jak było standardowo w zend.
  2. $this->_path[$type][] = $dir; //moje


To hula, ale nie chcę nic zmieniać w plikach Zend`a...
rudi23
Nawet jak ustawisz scriptPath w Pluginie (najpierw musisz zainicjować ViewRenderer)
  1. $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
  2. if (null === $viewRenderer->view) {
  3. $viewRenderer->initView();
  4. }
  5. $viewRenderer->view->setScriptPath('moja/sciezka');


to i tak na późniejszym etapie ViewRenderer inicjowany jest przez HelperBroker podczas dispatchowania controllera i dorzuca ścieżkę dla widoków konkretnego controllera przez array_unshift()

Proponuje dodać/ustawić scriptPath w controllerze (init/preDispatch) albo napisać swojego actionHelpera - viewRenderera

Zend Flow Diagram
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.