1 <sect1 id="zend.view.controllers">
2 <title>Skrypt kontrolera</title>
5 Kontroler jest miejscem, w którym tworzysz i konfigurujesz instancję
6 Zend_View. Potem przypisujesz do tej instancji zmienne zawierające dane,
7 a następnie wybierasz skrypt widoku, który ma być zrenderowany.
10 <sect2 id="zend.view.controllers.assign">
12 <title>Przekazywanie zmiennych</title>
15 Twój skrypt kontrolera powinien przypisać potrzebne zmienne do
16 instancji widoku, zanim przekaże kontrolę do skryptu widoku. Możesz
17 to zrobić przypisując zmienne do zmiennych instancji widoku:
20 <programlisting role="php"><![CDATA[
21 $view = new Zend_View();
29 Jednak mogłoby być niewygodnie gdy zmienne, które masz przekazać
30 są zebrane w tablicy lub obiekce.
34 Metoda assign() pozwala na automatyczne przypisanie wszystkich
35 zmiennych z tablicy lub obiektu. Poniższe przykłady dają taki sam
36 efekt jak poprzedni przykład, w którym zmienne były przypisywane
40 <programlisting role="php"><![CDATA[
41 $view = new Zend_View();
43 // przypisuje tablicę zmiennych w postaci par
44 // klucz-wartość, gdzie klucz jest nazwą przypisanej
45 // zmiennej, a wartość jest jej wartościa.
51 $view->assign($array);
53 // robi to samo z publicznymi właściwościami
54 // obiektu. zauważ jak rzutujemy obiekt na
55 // tablicę podczas przypisywania
60 $view->assign((array) $obj);
65 Oczywiście możesz także przypisywać zmienne jedna po drugiej,
66 przekazując nazwę zmiennej jako łańcuch znaków, a potem wartość
70 <programlisting role="php"><![CDATA[
71 $view = new Zend_View();
72 $view->assign('a', "Hay");
73 $view->assign('b', "Bee");
74 $view->assign('c', "Sea");
80 <sect2 id="zend.view.controllers.render">
82 <title>Wykonywanie skryptu widoku</title>
85 Kiedy już przypisałeś wszystkie zmienne, kontroler powinien przekazać
86 obiektowi Zend_View informację o wykonaniu konkretnego skryptu widoku.
87 Zrób to wywołując metodę render(). Zauważ, że ta metoda zwróci
88 wygenerowany widok zamiast wyświetlając go, więc musisz sam go wyświetlić
89 za pomocą funkcji echo() lub print().
92 <programlisting role="php"><![CDATA[
93 $view = new Zend_View();
97 echo $view->render('someView.php');
103 <sect2 id="zend.view.controllers.script-paths">
105 <title>Ścieżki skryptu widoku</title>
108 Domyślnie, Zend_View oczekuje, że skrypty widoku są umieszczone
109 względnie do skryptu wywołującego. Na przykład jeśli
110 Twój skrypt kontrolera jest w katalogu "/path/to/app/controllers"
111 i wywołuje on $view->render('someView.php'), to Zend_View będzie
112 szukać pliku "/path/to/app/controllers/someView.php".
116 Oczywiście, Twoje skrypty są pewnie umieszczone gdzieś indziej.
117 Aby poinformować Zend_View o tym, gdzie ma szukać skryptów, użyj
118 metody setScriptPath().
121 <programlisting role="php"><![CDATA[
122 $view = new Zend_View();
123 $view->setScriptPath('/path/to/app/views');
128 Teraz kiedy wywołasz metodę $view->render('someView.php'), będzie ona
129 szukać pliku "/path/to/app/views/someView.php".
133 Oczywiście możesz dodawać ścieżki na stos używająć metody addScriptPath().
134 Gdy dodajesz ścieżki na stos, Zend_View będzie szukać skryptu widoku
135 począwszy od ostatnio dodanej ścieżki. To pozwala na nadpisanie domyślnych
136 widoków za pomocą innych widoków, dzięki czemu możesz tworzyć różne
137 "motywy" czy "skórki" dla niektórych widoków, zostawiając inne bez zmian.
140 <programlisting role="php"><![CDATA[
141 $view = new Zend_View();
142 $view->addScriptPath('/path/to/app/views');
143 $view->addScriptPath('/path/to/custom/');
145 // teraz gdy wywołasz $view->render('booklist.php'), Zend_View będzie
146 // wpierw szukać pliku "/path/to/custom/booklist.php", potem
147 // "/path/to/app/views/booklist.php", a ostatecznie pliku "booklist.php"
148 // w bieżącym katalogu