Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [OOP] menu
Forum PHP.pl > Forum > Przedszkole
dachu
Witam,
pomoże ktoś zapisać menu w OOP?

Coś kombinuje ale nie chce działać, tzn to objęte komentarzami nie działa (submenu)... reszta działa.
(lub może ma ktoś przykład? to bym coś podpatrzyłsmile.gif
dzięki

  1. <?php
  2.  
  3. class Navigator
  4. {
  5.  
  6. public $menu, $submenu;
  7.  
  8. /*$links =
  9. array(
  10. 'tytul 1' => '1a',
  11. 'tytul 2' => '1b',
  12. 'tytul 3' => '1c'
  13. );*/
  14.  
  15. public function subMenu($links)
  16. {
  17. $submenu.= '<ul>';
  18. foreach ($links as $name => $url) {
  19. $submenu.= '<li id="nav-r">'.$name.'</li>';
  20. }
  21. $submenu.= '</ul>';
  22.  
  23. return $submenu;
  24. }
  25.  
  26. public function Menu($lang)
  27. {
  28. $links =
  29. 'start' => 0,
  30. 'produkty' => 1,
  31. 'oferta' => 2,
  32. 'galeria' => 3,
  33. 'kontakt' => 4
  34. );
  35.  
  36. $menu.= '<ul id="navigator">';
  37. foreach ($links as $name => $url) {
  38. $menu.= '<li onclick="java script:parent.location.href=\'?p='.$url.'\'">'.$name;
  39. //$menu. = subMenu($links1);
  40. $menu.= '</li>';
  41. }
  42. $menu.= '</ul>';
  43.  
  44. return $menu;
  45. }
  46. }
  47.  
  48. ?>
nospor
Z oop nie ma to żadnego związku - przenosze. A ze poziom przedszkolny to przenosze na przedszkole.

Co do problemu: o $this nie słyszał?
bastard13
Jeżeli chcesz robić menu z podmenu (i podmenu podmenu itd. ewentualnie) to zainteresuj się wzorcem composite.

A co do tego kodu, no cóż tak jak napisał @nospor, to z OOP niewiele ma wspólnego. Ogólnie powinno być mniej więcej tak:
- Menu to klasa, której atrybut to kolekcja obiektów ElementMenu (każdy posiada jakieś tam swoje atrybut m.in. link, nazwę)
- Menu powinno posiadać informacje, który element jest aktualnie aktywny
- Każdy ElementMenu może być rownież Menu (i tutaj dochodzimy do wzorca:)
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.