CakePHP - Manual/Developing/Views/Layouts /wiki/Manual/Developing/Views/Layouts History/revisions of CakePHP/Manual/Developing/Views/Layouts en-us 2009-03-08 20:14:41 /wiki/Manual/Developing/Views/Layouts/show?time=2009-03-08+20%3A14%3A41 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a name=".manual.developing.views.layouts" href="/wiki/Manual/Developing/Views/Layouts" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Views&nbsp;/&nbsp;Layouts</a> за <a href="/wiki/Manual/Developing/Views/Layouts?time=2009-03-08+20%3A14%3A41">2009-03-08 20:14:41</a> и <a href="/wiki/Manual/Developing/Views/Layouts">2009-03-08 20:29:51</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">$content_for_layout содержит отображение. Это&nbsp;то&nbsp;место, где&nbsp;код отображения будет расположен.<br /> $title_for_layout содержит заголовок страницы.<br /> Самый простой способ установить заголовок для&nbsp;вашего отображения – это&nbsp;использование переменной $pageTitle из&nbsp;контроллера.<br /> &lt;?php<br /> class <span class="missingpage">Users&nbsp;Controller</span><a href="/wiki/UsersController/edit?add=1" title="Создать эту страницу">?</a> extends <span class="missingpage">App&nbsp;Controller</span><a href="/wiki/AppController/edit?add=1" title="Создать эту страницу">?</a> {<br /> <div class="indent"><div class="indent">function viewActive() {<br /> <div class="indent"><div class="indent">$this-&gt;pageTitle = 'View Active Users';<br /> </div></div>}</div></div> }<br /> ?&gt;<br /> Вы&nbsp;можете создать столько видов верстки сколько пожелаете: просто поместите их&nbsp;в директорию app/views/layouts, и&nbsp;переключайтесь между ними в&nbsp;действиях вашего контроллера, используя переменную контроллера $layout, или&nbsp;функцию setLayout().<br /> Например, если раздел моего сайта включает место для&nbsp;малейшего рекламного баннера, я&nbsp;могу создать новую верстку с&nbsp;маленьким местом для&nbsp;рекламы и&nbsp;объявить эту&nbsp;верстку для&nbsp;всех действий контроллера, использовав что-то вроде:<br /> var $layout = 'default_small_ad';<br /> &lt;?php<br /> class <span class="missingpage">Users&nbsp;Controller</span><a href="/wiki/UsersController/edit?add=1" title="Создать эту страницу">?</a> extends <span class="missingpage">App&nbsp;Controller</span><a href="/wiki/AppController/edit?add=1" title="Создать эту страницу">?</a> {<br /> <div class="indent"><div class="indent">function viewActive() {<br /> <div class="indent"><div class="indent">$this-&gt;pageTitle = 'View Active Users';<br /> $this-&gt;layout = 'default_small_ad';<br /> </div></div>}<br /> function viewImage() {<br /> <div class="indent"><div class="indent">$this-&gt;layout = 'image';<br /> //output user image<br /> </div></div>}</div></div> }<br /> ?&gt;<br /> В&nbsp;<!--notypo-->CakePHP<!--/notypo--> есть два&nbsp;встроенных типа верстки (между прочим, верстки по&nbsp;умолчанию), которые вы&nbsp;можете использовать в&nbsp;вашем приложении: 'ajax' и&nbsp;'flash'. Верстка Ajax удобна для&nbsp;работы с&nbsp;Ajax-ответами. Это&nbsp;пустая верстка (большинство ajax вызовов требуют небольшое количество разметки для&nbsp;возврата, в&nbsp;отличие от&nbsp;полностью отрисованных интерфейсов). Верстка flash используется для&nbsp;сообщений, отображаемых методом контроллеров flash().<br /> Три&nbsp;других типа верстки – xml, js, и&nbsp;rss созданы для&nbsp;быстрой и&nbsp;легкой работы с&nbsp;содержимым, не&nbsp;являющимся text/html.<br /> <span class="missingpage">&lt;&lt; Отображения</span><a href="/wiki/Templates/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Элементы &gt;&gt;</span><a href="/wiki/Elements/edit?add=1" title="Создать эту страницу">?</a></div></div> 2009-03-08 20:14:22 /wiki/Manual/Developing/Views/Layouts/show?time=2009-03-08+20%3A14%3A22 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/Developing/Views/Layouts" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Views&nbsp;/&nbsp;Layouts</a> за <a href="/wiki/Manual/Developing/Views/Layouts?time=2009-03-08+20%3A14%3A22">2009-03-08 20:14:22</a> и <a href="/wiki/Manual/Developing/Views/Layouts?time=2009-03-08+20%3A14%3A41">2009-03-08 20:14:41</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Когда используете $html-&gt;css() или $javascript-&gt;link() в&nbsp;файлах отображений, определяйте 'false' <br /> для&nbsp;'in-line' аргумента, для&nbsp;размещения источника html в $scripts_for_layout. <br /> (Дополнительную информацию по&nbsp;использованию смотрите в&nbsp;API).</div><br /> <b>Удалено:</b><br /> <div class="deletions">Когда используете $html-&gt;css() или $javascript-&gt;link() в&nbsp;файлах отображений, определяйте 'false' для&nbsp;'in-line' аргумента, <br /> для&nbsp;размещения источника html в $scripts_for_layout. (Дополнительную информацию по&nbsp;использованию смотрите в&nbsp;API).</div></div> 2009-03-08 12:34:11 /wiki/Manual/Developing/Views/Layouts/show?time=2009-03-08+12%3A34%3A11 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/Developing/Views/Layouts" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Views&nbsp;/&nbsp;Layouts</a> за <a href="/wiki/Manual/Developing/Views/Layouts?time=2009-03-08+12%3A34%3A11">2009-03-08 12:34:11</a> и <a href="/wiki/Manual/Developing/Views/Layouts?time=2009-03-08+20%3A14%3A22">2009-03-08 20:14:22</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><br /> Верстка содержит представляемый код, который обволакивает отображение. Все, что&nbsp;вы&nbsp;хотите увидеть в&nbsp;ваших отображениях, должно быть размещено в&nbsp;верстке.<br /> <br /> Файлы верстки должны быть расположены в&nbsp;/app/views/layouts. Верстка <!--notypo-->CakePHP<!--/notypo--> по&nbsp;умолчанию может быть заменена на&nbsp;созданную в&nbsp;/app/views/layouts/default.ctp. Когда новая верстка по&nbsp;умолчанию создана, то&nbsp;код отображения, сгенерированный контроллером, помещается внутрь верстки, когда страница рендерится. <br /> <br /> Когда вы&nbsp;создаете верстку, необходимо сообщить <!--notypo-->CakePHP<!--/notypo--> где&nbsp;разместить код&nbsp;для ваших отображений. Чтобы сделать это, убедитесь, что&nbsp;ваша верстка влючает место для $content_for_layout (и опционально $title_for_layout). Вот&nbsp;пример того, как&nbsp;может выглядеть верстка по&nbsp;умолчанию:<br /> <br /> <!--notypo--><div class="code"><code><span style="color: #000000"> &lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN"<br />"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />&lt;html&nbsp;xmlns="http://www.w3.org/1999/xhtml"&gt;<br />&lt;head&gt;<br />&lt;title&gt;<span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">$title_for_layout?&gt;</span>&lt;/title&gt;<br />&lt;link&nbsp;rel="shortcut&nbsp;icon"&nbsp;href="favicon.ico"&nbsp;type="image/x-icon"&gt;<br />&lt;!--&nbsp;Подключаем&nbsp;внешние&nbsp;файлы&nbsp;и&nbsp;скрипты&nbsp;здесь&nbsp;(Смотрите&nbsp;HTML-хелпер&nbsp;для&nbsp;доп.&nbsp;информации)&nbsp;--&gt;<br /><span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">$scripts_for_layout&nbsp;?&gt;<br /></span>&lt;/head&gt;<br />&lt;body&gt;<br /><br />&lt;!--&nbsp;Если&nbsp;вы&nbsp;желаете,&nbsp;чтобы&nbsp;какое-либо&nbsp;меню&nbsp;<br />показывалось&nbsp;во&nbsp;всех&nbsp;ваших&nbsp;отображениях,&nbsp;включите&nbsp;его&nbsp;сюда&nbsp;--&gt;<br />&lt;div&nbsp;id="header"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;id="menu"&gt;...&lt;/div&gt;<br />&lt;/div&gt;<br /><br />&lt;!--&nbsp;Я&nbsp;хочу,&nbsp;чтобы&nbsp;мои&nbsp;отображения&nbsp;выводились&nbsp;здесь--&gt;<br /><span style="color: #0000BB">&lt;?php&nbsp;</span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">$content_for_layout&nbsp;?&gt;<br /></span><br />&lt;!--&nbsp;Добавить&nbsp;нижний&nbsp;колонтитул&nbsp;для&nbsp;каждой&nbsp;отображаемой&nbsp;страницы&nbsp;--&gt;<br />&lt;div&nbsp;id="footer"&gt;...&lt;/div&gt;<br /><br />&lt;/body&gt;<br />&lt;/html&gt;</span> </code></div><!--/notypo--><br /> <br /> $scripts_for_layout содержит любые внешние файлы и&nbsp;скрипты, подключенные с&nbsp;помощью встроенного HTML хелпера. Полезно для&nbsp;подключения javascript и&nbsp;CSS файлов из&nbsp;отображений.<br /> <br /> <!--notypo--><div class="code"><code><span style="color: #000000"> Когда&nbsp;используете&nbsp;$html-&gt;css()&nbsp;или&nbsp;$javascript-&gt;link()&nbsp;в&nbsp;файлах&nbsp;отображений,&nbsp;определяйте&nbsp;'false'&nbsp;для&nbsp;'in-line'&nbsp;аргумента,&nbsp;<br />для&nbsp;размещения&nbsp;источника&nbsp;html&nbsp;в&nbsp;$scripts_for_layout.&nbsp;(Дополнительную&nbsp;информацию&nbsp;по&nbsp;использованию&nbsp;смотрите&nbsp;в&nbsp;API).</span> </code></div><!--/notypo--><br /> <br /> <br /></div></div> 2009-03-08 12:29:49 /wiki/Manual/Developing/Views/Layouts/show?time=2009-03-08+12%3A29%3A49 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/Developing/Views/Layouts" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Views&nbsp;/&nbsp;Layouts</a> за <a href="/wiki/Manual/Developing/Views/Layouts?time=2009-03-08+12%3A29%3A49">2009-03-08 12:29:49</a> и <a href="/wiki/Manual/Developing/Views/Layouts?time=2009-03-08+12%3A34%3A11">2009-03-08 12:34:11</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><a name="h844-1"></a><h1>Верстка</h1></div><br /> <b>Удалено:</b><br /> <div class="deletions"><a name="h844-1"></a><h1>Макеты</h1></div></div>