Can someone please confirm if this is the expected behaviour please or simply
if I am doing something wrong? Thanks. :)
drj201 wrote:
>
> I have a front controller plugin to override the default behavior of
> Zend_Layout via Zend_Layout::startMvc like so:
>
> class MyApp_Layout_Controller_Plugin_Layout extends
> Zend_Layout_Controller_Plugin_Layout
> {
>
> public function preDispatch(Zend_Controller_Request_Abstract $request)
> {
>
> switch ($request->getModuleName())
> {
> case 'admin':
> $this->_moduleChange('admin');
> break;
> case 'module2':
> $this->_moduleChange('module2');
> break;
> // Use default Layout
> }
> }
>
> protected function _moduleChange($moduleName)
> {
>
>
> $this->getLayout()->setLayoutPath(dirname(dirname($this->getLayout()->getLayoutPath()))
> . DIRECTORY_SEPARATOR . 'modules/' . $moduleName . '/views/layouts');
> $this->getLayout()->setLayout($moduleName);
>
> return;
> }
>
> }
>
> Im experiencing unexpected behaviour with the above and the use of
> modules. The above works fine for calls to http://my-app/controller-name
> (controllers in the default directory) and works fine for modules (and
> their controllers) that exist i.e. http://my-app/module-name or
> http://my-app/module-name/controller-name.
>
> When navigating to http://my-app/does-not-exist or
> http://my-app/module-name/does-not-exist I am getting the wrong path
> returned in the setLayoutPath. It seems that when the Error Controller is
> called the Zend_Layout::startMvc plugin is called again (calling the
> plugin on preDispatch twice builds an incorrect path to use for the layout
> script)!
>
> Investigating further by simply echoing some text in the preDispatch
> function of the plugin (crude test I know) it appears that when navigating
> to a path that does not exist (i.e. no controller) the text is echoed
> twice! Is this default behaviour i.e. when ErrorController is called so is
> the plugin?
>
> Thanks in advance for any insight! However small!
>
> Regards,
>
> Dave
>
--
View this message in context:
http://www.nabble.com/Default-behavior-of-Zend_Layout%3A%3AstartMvc-and-plugin-use--tp20031977p20164288.html
Sent from the Zend Framework mailing list archive at Nabble.com.