Kod
<?php
class Application_Plugin_ModuleLayout extends Zend_Layout_Controller_Plugin_Layout
{
private $_moduleName;
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$this->_moduleName = $request->getModuleName();
if($this->_moduleName!=='default')
{
$this->_change($this->_moduleName);
}
}
private function _change($modul)
{
$this->getLayout()->setLayoutPath(
dirname(dirname(dirname($this->getLayout()->getLayoutPath())))
.'/layouts/scripts/'. $modul);
// $this->getLayout()->setLayoutPath(
// dirname(dirname($this->getLayout()->getLayoutPath())) . DIRECTORY_SEPARATOR . 'modules/' . $moduleName . '/views/layouts');
$this->getLayout()->setLayout('layout');
}
}
class Application_Plugin_ModuleLayout extends Zend_Layout_Controller_Plugin_Layout
{
private $_moduleName;
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$this->_moduleName = $request->getModuleName();
if($this->_moduleName!=='default')
{
$this->_change($this->_moduleName);
}
}
private function _change($modul)
{
$this->getLayout()->setLayoutPath(
dirname(dirname(dirname($this->getLayout()->getLayoutPath())))
.'/layouts/scripts/'. $modul);
// $this->getLayout()->setLayoutPath(
// dirname(dirname($this->getLayout()->getLayoutPath())) . DIRECTORY_SEPARATOR . 'modules/' . $moduleName . '/views/layouts');
$this->getLayout()->setLayout('layout');
}
}
Próba dodania kolejnego layoutpath w sposob jak w powyzszej funkcji konczy sie wywaleniem errora w postaci braku pliku layout w katalogach. Ile sciezek layoutpath macie u was na aplikacjach modulowych dla jakiegos modulu? U mnie sa dwie.
Kod
Fatal error: Uncaught exception 'Zend_View_Exception' with message 'script 'login/index.phtml' not found in path (D:\xampp\htdocs\mojzend\application/views/layouts/scripts/admin/;D:/xampp/htdocs/mojzend/application/modules/admin/views\scripts/)'
Gdy nie skopiuje plikow widoku dla kontrolera login do jednego z wyzej wymienionych katalogow to wywala taki blad. Problem dla mnie jest o tyle uciazliwy ze mam kilka takich rozwiazan na stronie co w przypadku modyfikacji ktoregokolwiek z plikow wymaga kopiowania tylekroć ile mam modulow co przy zwiekszajacej sie jej liczbie prowadzi do straty cennego czasu.