Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Zend_Navigation + Zend_Db_Table - helper
Forum PHP.pl > Forum > PHP > Frameworki
mitring
Cześć jako początkujący napotykam same problemy tongue.gif

Stworzyłem sobie helpera:
  1. class Zend_View_Helper_NavigationMenu extends Zend_View_Helper_Abstract
  2. {
  3. public function navigationMenu()
  4. {
  5. $dbAdapter = Zend_Db_Table::getDefaultAdapter();
  6. $menuArray = $dbAdapter->fetchAll("SELECT * FROM menu");
  7.  
  8. $navContainer = new Zend_Navigation();
  9.  
  10. foreach ( $menuArray as $value )
  11. {
  12. $navContainer->addPage(
  13. Zend_Navigation_Page::factory( array(
  14. 'uri' => $value['url'],
  15. 'label' => $value['name']
  16. )
  17. )
  18. );
  19. }
  20.  
  21. return $navContainer;
  22. }
  23. }


Kompletnie nie wiem jak jak stworzyć menu przy pomocy Zend_Navigation w helperze i wyświetlić go... mogę prosić o pomoc. Kompletnie się zagubiłem czytając manual zenda

-- edit --
  1. <?php echo $this->navigation($this->navigationMenu())->menu(); ?>


Działa - wyświetla się ale czy jest to poprawne rozwiązanie czy można o jakoś łatwiej zrobić?
irmidjusz
Każdy użyty w szablonie phtml view helper ma ustawiony aktualny obiekt Zend_View_Interface (dostępny jako $this->view w helperze), więc możesz to samo zrobić też w ten sposób:

  1. class Zend_View_Helper_NavigationMenu extends Zend_View_Helper_Abstract
  2. {
  3. public function navigationMenu()
  4. {
  5. $dbAdapter = Zend_Db_Table::getDefaultAdapter();
  6. $menuArray = $dbAdapter->fetchAll("SELECT * FROM menu");
  7.  
  8. $navContainer = new Zend_Navigation();
  9.  
  10. foreach ( $menuArray as $value )
  11. {
  12. $navContainer->addPage(
  13. Zend_Navigation_Page::factory( array(
  14. 'uri' => $value['url'],
  15. 'label' => $value['name']
  16. )
  17. )
  18. );
  19. }
  20.  
  21. return (string) $this->view->navigation($navContainer)->menu();
  22. }
  23. }


I wtedy wywołanie w phtml będzie takie:

  1. <?php echo $this->navigationMenu(); ?>

siuda
Cześć,

Dzięki wielkie! Właśnie sam szukałem jak dodać dynamiczne menu z bazy do widoku, ale nadal nie wiem jak dodać style do tak stworzonego menu? Wiem, że można parametrem 'class', ale odnosić się to będzie tylko do pojedyńczego elementu, a nie całości.


Pozdrawiam,
mitring
Aby zmienić całość <ul>
  1. ->menu()->setUlClass('')


Jeśli chodzi o elementy <li> to jak wspomniałeś class
siuda
Dzięki bardzo. Jak rozumiem przy tworzeniu drugiego menu powinienem utworzyć nowy helper, czy mogę działać w obrębie jednego?
mitring
Możesz korzystać z jednego, w helperze możesz podawać paramert jakie menu ma być wczytanie i tyle smile.gif
Fluke
Masz:
  1. function nav($nav)
  2. {
  3.  
  4. //Pobierasz jakimś swoim sposobem nawigację po przez zmienną nav
  5. ...
  6. $this->view->navigation()->menu()->render($myNav);
  7. }


Pozdrawiam smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.