ГЛАВА 12. Шаблоны
Обработка файла
После того как файлы и переменные будут зарегистрированы в системе шаблонов, можно переходить к обработке зарегистрированных файлов и замене всех ссылок на переменные с соответствующими значениями. Метод file_parser() приведен в листинге 12.4.
Листинг 12.4. Метод обработки файла
function file_parser($file_id) {
// Сколько переменных зарегистрировано для данного файла?
$varcount = count($this->variables[$file_id]);
// Сколько файлов зарегистрировано?
$keys = array_keys($this->files):
// Если файл $file_id существует в массиве
$this->files
// и с ним связаны зарегистрированные переменные
If((in_array($file_id. $keys)) &&($varcount > 0) ) :
// Сбросить $x
$x = 0:
// Пока остаются переменные для обработки...
while($x < sizeof($this->variables[$file_id])) :
// Получить имя очередной переменной
$string = $this->variables[$file_id][$x];
// Получить значение переменной. Обратите внимание:
// для получения значения используется конструкция $$.
// Полученное значение подставляется в файл вместо
// указанного имени переменной.
GLOBAL $$string:
// Построить точный текст замены вместе с ограничителями
$needle = $this->opening_escape.$string.$this->closing_escape;
// Выполнить замену.
$this->files[$file_id] = str_replace($needle.$$string.$this->files[$file_id]);
// Увеличить $х
$x++;
endwhile;
endif;
}
Сначала мы проверяем, присутствует ли указанное имя файла в массиве $this->files. Если файл был зарегистрирован, мы также проверяем, были ли для него зарегистрированы переменные, и если были — значения этих переменных подставляются в содержимое $file_id. Пример:
// Включить класс шаблона
include("template. class");
$page_title = "Welcome to your homepage!";
$bg_color = "white"; $user_name = "Chef Jacques";
// Создать новый экземпляр класса
$template = new template;
// Зарегистрировать файл "homepage.html", II присвоив ему псевдоним "home"
$template->register_file( "home", "homepage.html");
// Зарегистрировать несолько переменных
$template->register_variables("home", "page_titie, bg_color, user_name");
$template->file_parser("home");
Поскольку переменные page_title, bg_color и user_name были зарегистрированы, значения каждой переменной(присвоенные в начале сценария) подставляются в страницу homepage.html, хранящуюся в массиве files(атрибуте объекта-шаблона). На этом предварительная подготовка завершается, остается лишь вывести полученный шаблон в браузере. Эта операция рассматривается в следующем разделе.
Назад |
Содержание раздела |
Общее Содержание |
Вперед
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|