Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana] Template i widoki - jak to się robi?
Forum PHP.pl > Forum > PHP > Frameworki
croc
Witajcie,

ciągle nie rozumiem jak powinno się prawidłowo używać template i widoków w kohanie. Załóżmy, że robię stronę z recenzjami aparatów fotograficznych (bo robię). Mam już template z szablonem całej strony, którego kontroler dziedziczy po Controller_Template. Teraz chciałbym porobić poszczególne podstrony, np. podstronę samej recenzji. Domyślam się, że najlepiej, by miała swój własny kontroler i widok. Ale jak połączyć je z template? Czy kontroler tego widoku powinien dziedziczyć po moim template? Bardzo proszę o wytłumaczenie mi tego, bo tutoriale, które znalazłem, odnoszą się do zbyt prostych przykładów i nie rozwiewają moich wątpliwości. Zatem mam:

  • kontroler main.php, który dziedziczy po Controller_Template. Kontroler ten ustawia kilka zmiennych w metodzie before() na zasadzie $this->template->title = 'Tytuł';
  • widok template - treść środkową podaję w zmiennej $content
  • kontroler review.php
  • widok review.php, zawierający kod, który ma się znaleźć w $content


Jako że raczkuję w tej tematyce, proszę o wytłumaczenie mi jak to się robi na moim przykładzie smile.gif Odwdzięczę się punktem "pomógł".
nmts
W main.php w klasie dziedziczącej po Controller_Template definiujesz za pomocą $template swój szablon czyli:
  1. protected $template = 'nazwa_szablonu';


W innych kontrolerach dziedziczących po Twojej klasie z main.php czy w samym main.php ładujesz widok do zmiennej i przekazujesz do szablonu czyli np.

  1. $podstrona = view::factory('review')->set('zmienna_dla_review', $zmienna_dla_review);
  2. $this->template->content= $podstrona;

Teraz w nazwa_szablonu.php umieszczasz $content, która wyświetli widok z review.php , natomiast w review.php możesz umieścić zmienną $zmienna_dla_review.

Powyższe oczywiście dla włączonego automatycznego renderowania widoków. Nie ma tu żadnej skomplikowanej filozofii.
croc
Czyli powszechnie spotykaną praktyką jest to, że wszystkie kontrolery widoków (które mają zostać przekazane do szablonu) dziedziczą po kontrolerze template?
kbsucha
Ogólnie tak. Polecam, w przypadku takich FW jak Kohana, posiłkować się kodem z przykładowych projektów Open Source np. Kohanut (oni dziedziczą po Admin, ale to to samo bo on zajmuje się także widokiem). Kod w przypadku młodych projektów nie jest tam zbyt skomplikowany i można popatrzyć jak inni rozwiązują pewne sprawy.
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.