Наверх

Парсер шаблонных тегов

Шаблонные теги вызывают исполнение функций или подключают файлы. Разбор файлов шаблона и логика подключения описана в файле 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 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');

Ваши комментарии и дополнения

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.