CakePHP с нуля: введение в шаблоны и темы. Часть 8 из 10

Очень важной частью в шаблоне программирования MVC являются виды (обозначены в названии буквой V). Виды отвечают за генерацию вывода ответа на запрос. Очень часто они формируются как HTML, XML, или JSON, но потоковые файлы и создание PDF документов также являются сферой действия видов.

Виды CakePHP являются обычными PHP файлами с расширением .ctp (CakePHP template — шаблон CakePHP). Они составляют презентационый слой приложения, который обрабатывает данные, полученные от моделей и контроллеров, для представления их посетителю (пользователю).

Виды могут иметь несколько различных частей. Таким частями являются шаблоны, элементы и вспомогательные классы.

шаблоныФайлы видов, которые содержат презентационный код интерфейса вашего приложения.элементыМаленькие кусочки кода вида для повторного использования, которые реализуют различные части интерфейса.вспомогательные классы (helper)Данные классы содержат фукнционал, который требуется в различных частях слоя видов. Среди прочего, вспомогательные классы CakePHP помогают строить формы, реализовывать AJAX и постраничный вывод данных, а также обслуживают фиды RSS.

Базовый шаблон выглядит следующим образом:

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»> <html xmlns=»http://www.w3.org/1999/xhtml»> <head> <title><?php echo $title_for_layout?></title> <link rel=»shortcut icon» href=»/favicon.ico» type=»image/x-icon»> <!— Включайте внешние файлы и скрипты здесь. —> <?php echo $scripts_for_layout ?> </head> <body> <!— Если вам нужно использовать меню, которое будет выводиться
во всех видах, вставьте его здесь —> <div id=»header»> <div id=»menu»>…</div> </div> <!— Здесь вставляются виды, которые будут выводиться —> <?php echo $content_for_layout ?> <!— Добавляем нижний колонтитул к каждой странице —> <div id=»footer»>…</div> </body> </html>

В шаблоне имеется несколько переменных, которые помогают вывести части вида. Самая важная из них — $content_for_layout . Она указывает действительное место, в котором выводится вид.

Шаблоны хранятся в папке /app/views/layouts.

CakePHP имеет два основных шаблона  (кроме шаблона по умолчанию) , которые вы можете использовать в своих приложениях: ajax и flash. Шаблон ajax помогает работать с ответами AJAX – это пустой шаблон (большинство вызовов AJAX почти не используют разметку в ответах). Шаблон flash используется для сообщений, которые выводит контроллер  с помощью метода flash().

Три других шаблона xml, js, и rss присутствуют в ядре CakePHP для быстрого и простого формирования содержания, которое не является кодом HTML. Мы остановимся на них в следующих уроках.

Вторая важная часть видов CakePHP — это элементы. Они хранятся в папке /app/view/elements. В презентационном слое приложения многократно используются  небольшие повторяющиеся части кода, такие как, навигация, изображения, формы ввода, рекламные блоки  и так далее. Элементы в действительности являются мини видами, которые можно включать в шаблоны, виды и даже в другие элементы.

Вспомогательные классы содержат логику презентационного слоя приложения, которая разделяется между видами, элементами или шаблонами.

CakePHP имеет отличную поддержку тем. Для использования темы нужно просто добавить ее имя в файл /app/app_controller.php:

А для вывода ее на экран нужно добавить следующий код перед вызовом метода отрисовки в  контроллере:

$this->theme = «mythemename»;

Файлы темы должны распологаться в папке /app/views/themed/. В данной папке нужно создать подпаку с таким же именем, как и у темы. Структура подпапки темы (например, /app/views/themed/example) будет такой же, как и у папки /app/views/.

Например, файл вида для действия edit контроллера Posts будет /app/views/themed/example/posts/edit.ctp. А файлы шаблона будут расоплагаться в папке  /app/views/themed/example/layouts/.

Если файл вида отсутствует в папке темы, то CakePHP попытается искать вид в папке /app/views/. Таким образом, можно создать файл основного вида и просто его модифицировать по необходимости в папке темы.

Если у вас есть файлы CSS или JavaScript, особенные для вашей темы, вы можете сохранить их в папке темы в подпапках, с соответствующими именами. Например, стили сохраняем в папке  /app/webroot/themed/example/css/, а код JavaScript  — в /app/webroot/themed/example/js/.

Все встроенные вспомогательные классы CakePHP отлично работают с темами и будут создавать правильные пути автоматически. Так же как и для файлов видов, в случае отсутствия нужных файлов в папке темы, их будут искать в основной папке.

В следующих уроках мы реализуем реальный пример использования дизайна загруженной темы для нашего учебного проекта CakePHP.

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/zKqZR_JwvgI/lessons.php

Источник: lred.ru

Оцените статью
новости для мужчин