Парсер шаблонных тегов
Шаблонные теги вызывают исполнение функций или подключают файлы. Разбор файлов шаблона и логика подключения описана в файле includes/parser_theme.php, класс Parser_theme. В модуле объект этого класса доступен через переменную
$this->diafan->_parser_theme
, в общих шаблонных тегах (файлы из папки themes/functions) объект класса доступен через переменную $this
.
Свойства
var current_module – текущий модуль, для котого вызвана шаблонная функция.
var is_tag – в текущий момент исполняется шаблонный тег.
Методы
void show_theme () – Подключает шаблон.
Пример:
// подключает шаблон страницы в файле includes/init.php
$this->_parser_theme->show_theme();
string get_function_in_theme (string $text, [boolean $php = false]) – Парсит шаблон.
- string $text: содержание шаблона
- boolean $php: исполнять PHP-код
Пример:
$text = 'Здесь выводиться блок новостей: <insert name="show_block" module="news">';
echo $this->diafan->_parser_theme->get_function_in_theme($text);
/* Результат:
Здесь выводиться блок новостей:
1 мая
Начало майских праздников
2 мая
Продолжение майских праздников
*/
void start_element (array $attributes) – Выполняет действие, заданное в шаблонном теге: выводит информацию или подключает шаблонную функцию.
- array $attributes: атрибуты шаблонного тега
void functions (string $name, [array $attributes = array()]) – Подключает файл, описывающий общий шаблонны тег.
- string $name: название шаблонного тега
- array $attributes: атрибуты шаблонного тега
Пример:
// подключаем шаблонный тег <insert name="show_h1">
// в теге <insert name="show_body">
// файл themes/functions/show_body.php
$this->functions('show_h1');
// подключаем шаблонный тег <insert name="show_year" year="2009">
$this->functions('show_year', array('year' => 2009));
array get_attributes (array &$attributes) – Задает неопределенным атрибутам шаблонного тега значение по умолчанию.
- array $attributes: массив определенных атрибутов
Пример:
// задает атрибуты для тега <insert name="show_href">
//файл themes/functions/show_href.php
$attributes = $this->get_attributes($attributes, 'rewrite', 'img', 'img_act', 'width', 'height', 'alt');
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.
Ваш комментарий будет первым.