Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Zend] sposób na różnego rodzaju menu
Forum PHP.pl > Forum > PHP > Frameworki
Fluke
Witam.

Piszę skromnego CMS`a. Mam pytanie odnośnie menu po prawej,lewej czy tam na górze strony. Chciałbym aby użytkownik mógł sobie dobierać menu jakie i gdzie chce. Np: Chce mieć menu z samymi linkami na górze, menu z kategoriami oraz najnowsze newsy po lewej stronie a po prawej tylko panel do logowania. Po pewnym czasie stwierdza że panel logowania zrobi na górze a newsy po prawej a kategorie i linki po lewej.

Teraz nie wiem czy Zend posiada jakieś rozwiązanie tego. Trochę już siedzę w Zend ale nie wiem jak to mogło by być rozwiązane za pomocą tego frameworka.
Moje rozwiązanie na dzień dzisiejszy jest takie:

Mamy katalog np: Extensions. Tam są przechowywane same komponenty menu.
Np:
\Extensions
\\Links
\\\Links.php [class]
\\\views
\\\\index.phtml
\\Category
\\\Category.php [class]
\\\views
\\\\index.phtml
...

I teraz w IndexController lub jakimś innym, pobieramy z bazy danych dane dotyczące tych menu czyli: IdController,IdExtension,IdLocalization, ...
Teraz w widoku kontrolera wyświetlamy wszystkie te "extensions" które użytkownik sobie ustawił za pomocą view helpera.
View helper ładuje nam klasę odpowiednią i ta klasa ładuje sówj widok tak że w widok wygląda tak:
  1. <div id="menu-lewe">
  2. <? foreach($this->menu["menu-lewe"] as $menu) : ?>
  3. <div class="menu-item">
  4. <?=$this->getMenu(new $Menu)->load()->display(); ?>
  5. </div>
  6. <? endforeach; ?>
  7. </div>

Metoda display zwraca nam Zend_View::render.

Chciałbym wiedzieć czy to jest jakieś rozwiązanie, pewnie każdy ma swoje ale chciałbym usłyszeć czyjeś zdanie. Ja do tego się przyzwyczaiłem i jest całkiem spoko.

Pozdrawiam smile.gif
Pilsener
Cytat
Po pewnym czasie stwierdza że panel logowania zrobi na górze a newsy po prawej a kategorie i linki po lewej.
Teraz nie wiem czy Zend posiada jakieś rozwiązanie tego
- a co ma do tego Zend? To tylko framework. Klientowi dajesz możliwość edycji szablonów albo wybór kilku albo jedno i drugie. Jak nie podoba się PHP template to nic nie stoi na przeszkodzie, by użyć np. Smarty.

A co do menu to jest coś takiego jak Zend_Navigation
Fluke
Tak, tylko że Smarty tu nie ma nic do rzeczy, chodzi mi głównie o to czy lepiej jakoś tworzyć menu w kontrolerach czy też właśnie jak mówiłem w extensions. I w Zend layout dać $this->action("kontroller", "akcja", "moduł");.

Chodzi mi o to czy ten sposób jest okey. Bo chcę się nauczyć a nie robić koło. smile.gif
Pilsener
To poeksperymentuj z Zend_Navigation.

Z mojego doświadczenia wiem, że najlepiej menu trzymać w bazie jako drzewo, łatwo wtedy jest to wrzucić do Zend_Navigation i użyć cache żeby było wydajnie.

Kontrolery ani extensions nie są od tworzenia menu. Jak już to model.
macpain1982
Witam,
Mozesz tez spojrzec na Partial Helper http://framework.zend.com/manual/en/zend.view.helpers.html

Pozdrawiam
Fluke
Dzisiaj po eksperymentuje z Zend_Navigation oraz Partial Helper i napiszę swoje spostrzeżenia 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.