Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF] Menedzer pluginow frontControllera
Skyline
post 26.05.2008, 23:04:51
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

Ostrzeżenie: (0%)
-----


Witam

Probuje rozwiazac nastepujacy problem. W bootstrap.php mam:

  1. <?php
  2. $frontController = Zend_Controller_Front::getInstance();
  3. $frontController->setControllerDirectory(array(
  4. 'default' => ROOT_DIR . '/application/controllers',
  5. 'admin'  => ROOT_DIR . '/application/admin/controllers'
  6. ));
  7.  
  8. $frontController->registerPlugin(new ZFTest_Controller_Plugin_ActionSetup());
  9. $frontController->registerPlugin(new ZFTest_Controller_Plugin_ViewSetup(), 98);
  10.  
  11. Zend_Layout::startMvc(array(
  12. 'layoutPath' => ROOT_DIR . '/application/views/layouts',
  13. 'pluginClass' => 'ZFTest_Layout_Controller_Plugin_Layout'
  14. ));
  15. ?>


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:
  1. <?php
  2. // dla module 'default'
  3. $frontController->registerPlugin(new ZFTest_Controller_Plugin_ActionSetup());
  4. $frontController->registerPlugin(new ZFTest_Controller_Plugin_ViewSetup(), 98);
  5.  
  6. // dla module 'admin'
  7. $frontController->registerPlugin(new ZFTest_Admin_Controller_Plugin_ActionSetup());
  8. $frontController->registerPlugin(new ZFTest_Admin_Controller_Plugin_ViewSetup(), 98);
  9. ?>
Go to the top of the page
+Quote Post
lucassus
post 15.06.2008, 08:41:34
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.01.2008

Ostrzeżenie: (0%)
-----


Cytat(Skyline @ 27.05.2008, 00:04:51 ) *
ZFTest_Layout_Controller_Plugin_Layout sluzy do przelaczania layout'ow w zaleznosci od modulow. Czyli inny layout dla 'default' i inny dla 'admin'.


Do przelączania layout'ów pomiędzy modułami nie trzeba plugin-u winksmiley.jpg
To dzieje się automatycznie jeśli masz dobrze zrobioną struktórę katalogów i nazwy plików (layout.phtml)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 08:12