![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Jezeli utworzylem sobie widok dla danej akcji danego kontrolera, to czy w jakis sposob moge wyswietlic ten szablon w innym kontrolerze dla innej akcji?
Chodzi o to by nie powielac widoku kontrolera, ktory jest identyczny, a tylko generuje inne dane. -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie używam Cake'a, ale zajrzałem do ich SVN. Zwróć uwagę na metodę View::render()
i to chyba jedyny sposób, by podmienić szablon. Nie ma żadnej metody View::setTemplate() itp. Co ciekawe, nie wydaje mi się, żeby można było wybrać szablon z innego modułu/kontrolera za pomocą render(). Bardzo, bardzo niedobrze. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jezeli utworzylem sobie widok dla danej akcji danego kontrolera, to czy w jakis sposob moge wyswietlic ten szablon w innym kontrolerze dla innej akcji? Chodzi o to by nie powielac widoku kontrolera, ktory jest identyczny, a tylko generuje inne dane. Nie wiem czy dobrze cię rozumiem, bo troszkę mieszasz pojęcia (widok, szablon), ale jeśli chodzi Ci o użycie widoku jakiejś akcji w innym widoku to można to bez problemu zrobić za pomocą $this->requestAction(/jakas/akcja, array('return')). Zwykle mechanizm ten wykorzystuję w elementach. Dlaczego? Ponieważ można je łatwo cache'ować, a każdy request action powoduje jakby nowe wywołanie całego Cake'a - co bardzo obciąża system. Prosty przykład wykorzystania tego mechanizmu to wyświetlanie menu trzymanego w BD: 1) Tworzymy element menu i wstawiamy go do widoku: Kod <?php echo $this->element('menu',array('cache'=>'1 day')) ?> 2) W elemencie wywołujemy akcje, która zwróci nam widok z menu Kod <?php echo $this->requestAction('/menus/index',array('return')) ?> Standardowo requestAction zwraca wywoływany widok bez żadnego layout'u. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Z cała pewnością mogę powiedzieć, że koledze chodziło o szablon.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 20:02 |