Отображение это с страница-шаблон, обычно названная так же как и действие. Например, отображение для Posts Controller::add() будет /app/views/posts/add.thtml. Отображения Cake это довольно простые PHP-файлы, так что вы можете использовать любой PHP-код внутри них. Хотя большинство ваших файлов отображений и будут включать в себя HTML, но отображение может быть чем угодно: XML, изображения и т.д.
В файле отображения, вы можете использовать данные из соответствующей модели. Эти данные вставляются как вызванный масив $data. Любые данные переданные в отображение использованием set() в контроллере, теперь также доступны и в вашем отображении.
HTML Хелпер доступен в любом отображении по умолчанию, и является самым частоиспользуемым хелпером в отображениях. Он очень полезен при создании форм, включающий скрипты и медиа, связывающий и вспомогательный в проверке данных. Более подробно можете посмотреть в главе «Хелперы».
Большинство функций доступных в отображениях предоставлены Хелперами. Cake снабжен большим набором хелперов (о них в главе «Хелперы») и вы можете также включать собственные. Поскольку отображения не должны содержать много кода, есть немного используемых функций в классе отображений. Одна из полезных это renderElement(), о которой речь пойдет в разделе 1.2.
Верстка содержит в себе весь предъявляемый код, который обволакивает отображение. Все что вы хотите увидеть во всех ваших отображениях должно быть размещено в вашей верстке.
Файлы верстки находятся в /app/views/layouts. Верстка по умолчанию Cake может быть заменена на новую в /app/views/layouts/default.thtml. Когда новая верстка по умолчанию создана, код отображения контроллера помещается внутрь верстки, когда страница рендерится.
Когда вы создаете верстку, вам нужно сообщать Cake'у где разместить код отображения вашего контроллера: чтобы сделать это, убедитесь, что ваша верстка влючает место для $content_for_layout (и опционально $title_for_layout). Вот пример того как может выглядить верстка по умолчанию:
Самый простой способ установить заголовок для вашего отображения – это использование переменной $pageTitle из контроллера.
<?class UsersController extends AppController{ function
viewActive() {
$this->pageTitle = 'View Active Users'; }
}
?>
Вы можете создать столько видов верстки сколько только пожелаете для вашего сайта в Cake, просто поместите их в директорию app/views/layouts, и переключайтесь между ними в действиях вашего контроллера, используя переменную контроллера $layout, или функцию setLayout().
Например, если раздел моего сайта включает место для малейшего рекламного баннера, я могу создать новую верстку с маленьким местом для рекламы и объявить эту верстку для всех действий контроллера, использовав что-то вроде:
var $layout = 'default_small_ad';
Элементы обитают в каталоге /app/views/elements/, имеют расширение .thtml.
Элемент по умолчанию не имеет никакого доступа к данным. Чтобы дать им доступ к данным, вы посылаете их с проименованым параметром в масив.
<?php echo $this->renderElement('helpbox'); ?>
<?php echo$this->renderElement('helpbox', array("helptext" => "Oh, this text is very helpful."));
?>
Внутри файла элемента, все вставленные переменные доступны как имена ключей вставленного масива (больше похоже на set() в работе контроллеров с отображениями). В предыдушем примере, файл /app/views/elements/helpbox.thtml мог использовать переменную $helptext. Конечно, лучше вставлять масив в элемент.
Элементы можно использовать для того, чтобы делать отображения более удобчитаемыми, помещая в них повторяющиеся элементы. Они также могут помочь вам в переиспользовании фрагментов контента вашего веб-сайта.