Hi List,
I have a problem with my custom class of Zend_View.
In my bootstrap, i have instanciate a plugin wich initialize the
application like the "Pastebin" app of Matthew.
But i have a problem :
in my initView method of my plugin :
public function initView()
{
/*************************
* View
************************/
$view = new App_View_Page();
$view->setEncoding('UTF-8');
$view->doctype('XHTML1_TRANSITIONAL');
$view->strictVars(); // enables tracking/detection of typos and
misspelled variables in views
$view->headTitle('App');
$view->headTitle()->setSeparator(' - ');
$view->addHelperPath(BASE_PATH .
'/application/library/ZymFramework/Zym/View/Helper', 'Zym_View_Helper');
$view->addHelperPath(BASE_PATH .
'/application/library/ZymFrameworkIncubator/Zym/View/Helper',
'Zym_View_Helper');
$view->addHelperPath(BASE_PATH .
'/application/library/My/Lib/View/Helper', 'My_Lib_View_Helper');
$view->addHelperPath(BASE_PATH .
'/application/application/code/App/View/Helper', 'App_View_Helper');
$view->locale = Zend_Registry::get('locale');
Zend_Dojo::enableView($view);
$view->dojo()->enable()
->addStyleSheetModule('dijit.themes.tundra')
->setCdnBase(Zend_Dojo::CDN_BASE_GOOGLE)
->setDjConfigOption('parseOnLoad', true)
->setDjConfigOption('usePlainJson', true)
->setDjConfigOption('locale', (string) ResaSystem::getLocale())
->setDjConfigOption('isDebug', ($this->env == 'production')
? false : true);
/*************************
* ViewRenderer
************************/
$viewRenderer = new
Zend_Controller_Action_Helper_ViewRenderer($view);
$viewRenderer
->setViewBasePathSpec(BASE_PATH . '/application/design/views')
->setViewScriptPathSpec(':module/:controller/:action.:suffix')
->setViewSuffix('phtml');
Zend_Debug::dump(get_class($viewRenderer->view));
$viewRenderer->init();
Zend_Debug::dump(get_class($viewRenderer->view));
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
/*************************
* Layout
************************/
$layout = Zend_Layout::startMvc($this->config->layout);
$layout->setView($view);
return $this;
}
But i met an error like this :
Error
exception 'Zend_View_Exception' with message 'script 'error/failure.phtml' not
found in path (/var/htdocs/app/application/modules/default/views/scripts/)' in
/var/htdocs/app/library/ZendFramework/Zend/View/Abstract.php:875
Stack trace:
#0
/var/htdocs/resasystem.com/light/library/ZendFramework/Zend/View/Abstract.php(783):
Zend_View_Abstract->_script('error/failure.p...')
#1
/var/htdocs/resasystem.com/light/library/ZendFramework/Zend/Controller/Action/Helper/ViewRenderer.php(921):
Zend_View_Abstract->render('error/failure.p...')
#2
/var/htdocs/resasystem.com/light/library/ZendFramework/Zend/Controller/Action/Helper/ViewRenderer.php(942):
Zend_Controller_Action_Helper_ViewRenderer->renderScript('error/failure.p...',
NULL)
#3
/var/htdocs/resasystem.com/light/library/ZendFramework/Zend/Controller/Action/Helper/ViewRenderer.php(981):
Zend_Controller_Action_Helper_ViewRenderer->render()
#4
/var/htdocs/resasystem.com/light/library/ZendFramework/Zend/Controller/Action/HelperBroker.php(171):
Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#5
/var/htdocs/resasystem.com/light/library/ZendFramework/Zend/Controller/Action.php(512):
Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#6
/var/htdocs/resasystem.com/light/library/ZendFramework/Zend/Controller/Dispatcher/Standard.php(293):
Zend_Controller_Action->dispatch('failureAction')
#7
/var/htdocs/resasystem.com/light/library/ZendFramework/Zend/Controller/Front.php(946):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http),
Object(Zend_Controller_Response_Http))
#8 /var/htdocs/resasystem.com/light/application/ResaSystem.php(195):
Zend_Controller_Front->dispatch()
#9 /var/htdocs/resasystem.com/light/public/index.php(9):
Bootstrap::run('development')
#10 {main}
In my Bootstrap :
$initPlugin = new App_Controller_Plugin_Initialize(APPLICATION_ENV);
/***********************
* Le front controller
***********************/
Zend_Controller_Front::getInstance()
->registerPlugin($initPlugin, 1)
->registerPlugin($localePlugin, 2)
->registerPlugin($navigationPlugin, 3);
In few words, it seems that my view renderer is destruct and replace by
a new one.
Can someone helps me ?
Thanks :)