Probuje rozwiazac nastepujacy problem. W bootstrap.php mam:
<?php $frontController = Zend_Controller_Front::getInstance(); 'default' => ROOT_DIR . '/application/controllers', 'admin' => ROOT_DIR . '/application/admin/controllers' )); $frontController->registerPlugin(new ZFTest_Controller_Plugin_ActionSetup()); $frontController->registerPlugin(new ZFTest_Controller_Plugin_ViewSetup(), 98); 'layoutPath' => ROOT_DIR . '/application/views/layouts', 'pluginClass' => 'ZFTest_Layout_Controller_Plugin_Layout' )); ?>
ZFTest_Layout_Controller_Plugin_Layout sluzy do przelaczania layout'ow w zaleznosci od modulow. Czyli inny layout dla 'default' i inny dla 'admin'.
Chcialbym moc robic $frontController->registerPlugin rowniez dla odpowiedniego modulu, tj rejestrowac inne pluginy dla 'default' i 'admin'. W chwilii obecnej oba pluginy są dostepne w obu modułach.
Próbowałem umieścić rejestrowanie pluginów w ZFTest_Layout_Controller_Plugin_Layout gdzie przelaczam sie miedzy layoutami, ale wówczas nie działają mi te pluginy, dostaje np komunikat:
Fatal error: Call to a member function headTitle() on a non-object in C:\wamp\www\Zend\test\library\ZFTest\Controller\Plugin\ViewSetup.php on line 54
Czyli tak, jakbym nie mogl rejestrowac pluginów poza bootstrap'em.
Jak rozwiązać ten problem?
Chcialbym uzyskac cos takiego:
<?php // dla module 'default' $frontController->registerPlugin(new ZFTest_Controller_Plugin_ActionSetup()); $frontController->registerPlugin(new ZFTest_Controller_Plugin_ViewSetup(), 98); // dla module 'admin' $frontController->registerPlugin(new ZFTest_Admin_Controller_Plugin_ActionSetup()); $frontController->registerPlugin(new ZFTest_Admin_Controller_Plugin_ViewSetup(), 98); ?>