![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 2 Dołączył: 30.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Dopiero uczę się MVC, czytałem tutorial do Zend Frameworka na php.pl i męczy mnie jedno pytanie: Załóżmy że jest sobie jakiś duży serwis, najlepiej CMS. Taki CMS musi mieć dynamicznie generowane pozycje w menu na podstawie tego co jest w bazie danych, a to co się wyświetli w polu na treść jest zależne od tego jaką pozycje z menu wybierzemy. A więc - jeśli każdy kontroler odpowiada tylko za to co się pojawi w polu na treść to gdzie powinno się ustawiać pokazanie szablonu całej strony oraz generowanie pozycji menu? Bardzo chciałbym uniknąć rozwiązania w którym w każdej akcji każdego kontrolera musiałbym wywoływać widok odpowiedzialny za taki szablon. Przyjmuję również że musi być gdzieś panel administratora który może wyglądać "nieco" inaczej od reszty - jak rozwiązać tą kwestię? Kontroler odpowiedzialny za wyświetlanie takiego panelu powinien zmieniać widok ze standardowego na panel? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Jak sobie to rozwiążesz to już Twoja sprawa. U mnie w każdej akcji (u Ciebie kontrolerze) mam ustawiony szablon strony, która ma być uruchomiony.
Co do panelu i strony to u mnie są to dwie osobne jakby aplikacje, powiązane ze sobą tylko niektórymi elementami, ale na pewno nie widokami, ani konrolerami. Ten post edytował sf 29.04.2007, 15:48:26 -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 25 Dołączył: 23.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
W kontrolerze powinieneś móc zmieniać sobie layout np. $this->setLayout($nazwaLayoutu) i wtedy w zależności od kontrolera (zmieniasz layout w konstruktorze kontrolera) lub od akcji (zmieniasz layout w akcji czyli metodzie kontrolera). Co do elementów stałych możesz sobie napisać sobie coś takiego co w symfony nazywa sie Component'em i wtedy template menu wywołuje sam z siebie niezależnie od kontrolera akcję generującą elementy menu.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 21:15 |