Пишем простой шаблонизатор (Рейтинг: +8)
Создаем класс который мы назовем Template
Т.е мы в массив пишем все указанные переменные.
Для чего это нам необходимо увидите ниже =)
Следующим шагом у нас будет парсинг.
Когда у нас все готово, мы пишем метод для вывода шаблона, и сразу обрабатываем его.
Используем шаблон так:
# Nu3oN
Готовый пример можно скачать тут: Example
Добавил: Nu3oN
20.08.2010 / 00:32<?php class Template { } ?>Теперь мы укажем свойства которые нам пригодятся!
<?php class Template { private $_arr = array(); private $_content; public $template_dir = 'templates/'; } ?>Теперь мы объявляем метод, который нам позволяет присваивать значения переменным, доступным в шаблоне.
Т.е мы в массив пишем все указанные переменные.
Для чего это нам необходимо увидите ниже =)
<?php public function __set($var, $name) { $this -> _arr[$var] = $name; } ?>
Следующим шагом у нас будет парсинг.
<?php private function parsing($tpl) { /* * Открываем шаблон. */ $this -> _content = file_get_contents($this -> template_dir.$tpl); /* * И вот теперь можно увидеть для чего нам нужен был метод __set() * как видите в свойстве _arr у нас хранится то что нам надо заменить. * Теперь мы обрабатываем переменные в шаблоне, такого вида {$name} */ foreach ($this -> _arr as $key => $name) { $tpl = str_replace('{$'.$key.'}', $name, $this -> _content); } return $tpl; } ?>
Когда у нас все готово, мы пишем метод для вывода шаблона, и сразу обрабатываем его.
<?php public function display($tpl) { /* * Проверяем существует ли заданный шаблон или нет. */ if (is_file($this -> template_dir.$tpl)) { $this -> _content = parsing($this -> template_dir.$tpl); /* * И теперь выводим шаблон */ echo $this -> _content; /* * В случае если файла с шаблоном не найдено, выводим ошибку. */ } else { echo '<p> Неверный путь к шаблону </p>'; } } ?>
Используем шаблон так:
<?php /* * Создаем объект */ $template = new Template; /* * При необходимости указываем категорию с шаблонами. * По умолчанию стоит категория templates/ */ $template -> template_dir = 'my_dir/templates/'; /* * Указываем какую переменную на что заменить. */ $template -> name = 'Hello world =)'; /* * Выводим шаблон. */ $template -> display('template.tpl'); ?>
# Nu3oN
Готовый пример можно скачать тут: Example
Рейтинг:
+8
Просмотры: 3732Комментарии (10) »