САМОУЧИТЕЛЬ PHP 4

Вставка страниц в единый шаблон


Раньше главный текстовый блок страницы (text) запрашивал подключения к себе двух частей шаблона— footer и header. Но, раз мы в очередной раз поменяли местами "поставщика" данных и "исполнителя", посмотрим, нельзя ли пойти дальше. Давайте поиграем в такую словесную игру: "обработаем" первое предложение этого абзаца, переставив в нем понятия, соответствующие "исполнителю" и "поставщику". Получим буквально: шаблон запрашивает подключение к себе главного текстового блока страницы. Эврика, это и есть главная задача шаблонизатора!

Не хотите ли взглянуть с этой новой позиции на шаблон страницы? Тогда изучите листинг 30.10.

Листинг 30.10. Свежий взгляд на шаблон страницы: /templ/main.tmpl

<?Block("Output"?>

<html><head><title><?=Blk("Title"title></head>

<body bgcolor=white>

<h1>Добрый день.</h1>

<table><tr>

<td width=20%>Карта раздела: . . .</td>

<td width=80%><?=Blk("Text")?></td>

</tr></table>

</body></html>

Не обращайте пока внимания на команду <?Block("Output"?>. Ее смысл поясняется немного ниже.

Мы видим, что ненужное и опасное "расщепление" шаблона на два файла ушло в прошлое, а мы опять вернулись к простой модели. Будем хранить этот шаблон в файле /templ/main.tmpl.

Но позвольте, откуда же возьмется блок с именем Text, который выводится в середине этого шаблона? Вот задачу по его получению и возьмет на себя шаблонизатор. Предположим, пользователь обратился по адресу /news/weekly/today.html. Шаблонизатор, как я уже упоминал, "перехватит" это обращение и "возьмет"

текстовый блок из файла today.html, расположенного в каталоге /news/weekly. Затем он передаст управление шаблону, который вставит этот текст в нужное место страницы и отправит последнюю браузеру.



Содержание раздела