Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF]Konflikt routerów z nawigacją
IceManSpy
post
Post #1





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Witam

Zrobiłem proste menu (bez okruszków chleba (IMG:style_emoticons/default/smile.gif) ) z bloga Batman'a:
http://blog.wilgucki.pl/2009/10/zendnaviga...ymy-menu-i.html
Tylko trochę prostsze:
  1. <?php
  2. return array(
  3. 'label' => 'Lista artykułów',
  4. 'module' => 'admin',
  5. 'controller' => 'article',
  6. 'action' => 'index'
  7. ),
  8. 'label' => 'Dodaj artykuł',
  9. 'module' => 'admin',
  10. 'controller' => 'article',
  11. 'action' => 'add'
  12. ),
  13. 'label' => 'Edytuj artykuł',
  14. 'module' => 'admin',
  15. 'controller' => 'article',
  16. 'action' => 'edit'
  17. ),
  18. 'label' => 'Usuń artykuł',
  19. 'module' => 'admin',
  20. 'controller' => 'article',
  21. 'action' => 'delete'
  22. ),
  23. 'label' => 'Wyloguj się',
  24. 'module' => 'admin',
  25. 'controller' => 'index',
  26. 'action' => 'logout'
  27. )
  28. );
  29. ?>

Dodałem odpowiednie dane do boostrapa i layout'u. Wszystko działa super. Czas na naukę routerów (IMG:style_emoticons/default/biggrin.gif)
Więc w boostrapie dopisałem takie coś:
  1. public function _initRoutes()
  2. {
  3. $router = Zend_Controller_Front::getInstance()->getRouter();
  4. $router->addRoute('lista',new Zend_Controller_Router_Route
  5. ('admin/lista',
  6. array('action'=>'index','controller'=>'article','module'=>'admin')));
  7. return $router;
  8. }

Router działa, ja wpiszę się w adresie admin/lista , tylko że zastępuje on wszystkie linki w menu. Czyli wszystkie mają w sobie admin/lista . Jak i gdzie to naprawić? (IMG:style_emoticons/default/sad.gif)

P.S. Menu lepiej trzymać w pliku php, czy XML? Czy to bez różnicy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




W przypadku tras/ścieżek wystarczy w konfiguracji nawigacji podać samą nazwę trasy. Nie trzeba podawać modułu, kontrolera ani akcji.

Odnośnie przechowywania konfiguracji nawigacji, to nie ma to większego znaczenia. PHP będzie szybsze, ale tylko w przypadku rozbudowanych nawigacji. Dla kilkunastu elementów menu, różnica w wydajności jest pomijalna. Po za tym zawsze można skorzystać z cache'u.
Go to the top of the page
+Quote Post
IceManSpy
post
Post #3





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Dziękuję bardzo pawv za pomoc (IMG:style_emoticons/default/smile.gif)

Cytat(batman @ 13.06.2011, 09:18:49 ) *
W przypadku tras/ścieżek wystarczy w konfiguracji nawigacji podać samą nazwę trasy. Nie trzeba podawać modułu, kontrolera ani akcji.

Tylko jeśli ustawiłem w nawigacji jakiś link bez modułu, akcji i kontrolera, to wtedy nie działało ustawianie da tego linku klasy active. Działa tylko, jeśli zadeklarowane są powyższe wartości.

Ten post edytował IceManSpy 13.06.2011, 10:51:44
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 21:13