Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MVC - wspólny kod html
Ziels
post
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?
Go to the top of the page
+Quote Post
sf
post
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.

  1. <?php
  2. class Main extends aIdxAction
  3. {
  4. public function run(iRequest $oRequest, iResponse $oResponse)
  5. {
  6. //$oDB = HPDO::getInstance($this->sDSN); 
  7.  
  8. $oResponse->content = $oResponse->fetch($this->sModule . '/incMain.tpl');
  9. $oResponse->setTemplate('center.tpl');
  10.  
  11. return 0;
  12. }
  13. }
  14. ?>


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.
Go to the top of the page
+Quote Post
Kowalikus
post
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.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 21:15