Showing posts with label render. Show all posts
Showing posts with label render. Show all posts

Saturday, May 28, 2011

Függyvény hívása Nézetből

Néha előfordul, hogy valamilyen bonyolultabb kimenetet kell produkálnunk Nézetünkben - például egy táblát. A legtöbben azt tanácsolják, hogy az MVC szabályainak megfelelően a Nézet az legyen egyszerű, ne legyen benne túl sok ciklus stb. Tehát valahogy a kódunkat máshová kell helyeznünk. Erre fogunk néhány példát bemutatni.


  1. Függvényünket betehetjük a Modellünkbe, így a Nézetben elérhetővé válik a modellen keresztül  mint osztály metódus. A hátulütője ennek az, hogy a modellbe nem igazán szép nézettel/kimenettel kapcsolatos függvényeket tenni. Tehát ez a módszer egyáltalán nem tanácsolt.


  2. Használjunk Widget-et. Készíthetünk egy osztályt, ami a CWidget-et bővíti ki, ebben az esetben a Nézetből csak meghívjuk a Widget-ünket és kész is. Ez akkor is nagyon hasznos, ha például több nézetben szeretnénk megjeleníteni ugyanazt a tartalmat.


  3. Tegyük a függvényünket a Kontrollerbe. Ha csak egyetlen Nézet használja a függvényünket (és nem tartalmaz nagyon összetett logikát) elég lehet, hogy a Kontrollerbe helyezzük el.
  4. Használjunk Nézet file-t. Mert a CController render() és renderPartial() metódusai visszaadhatnak értéket is megjelenítés helyett. Ez azt jelenti, hogy a függvényünket betehetjuük egy speciális Nézet file-ba, lehetőleg ugyanabba a mappába ahol maga a hívó file helyezkedik el. Ezt úgy érhetjük el, hogy a render() - vagy renderPartial()) - harmadik paraméterét true-ra állítjuk be.



Eredeti cikk: http://www.yiiframework.com/wiki/125/putting-function-to-be-called-in-view/

UI: Yii-s widget-ekrol meg itt olvashattok bovebben (magyarul!): Nosza irjunk widget-et tyuklepesrol tyuklepesre