Шаблонизатор (библиотека)

Класс site_template.

Основной класс шаблонов.

Документация будет позже, пока некоторые трюки (чтоб не вспоминать самому каждый раз).

Доступ снаружи через функцию tpl($method, $param[, $param1])

Синтаксис шаблонов

Шаблон представляет собой строку HTML вида head{{{HTML}}}tail. HTML будет использовано в качестве подстановки, при этом токены вида #key заменятся на соответствующие значения из массива данных. Если в скрипте используется массив вида [string, string1, string2], то для получения данных нужно использовать #ключ, равный названию шаблона.

В строке можно использовать условия: {{#key||true part|| false part}} — если #key не существует либо пустой, то выполняется false part, иначе true part.

Если в шаблоне имеется ключ raw (в функцию add была передана $data как строка), то содержимое ключа будет вставлено после массива данных.

Если в скрипт передать пустой шаблон, то он автоматически заменится на {{{}}}.

Основные методы:

add

Вызов: tpl("add", $object, $data); где $object — имя шаблона, $data может быть одним из следующих:

  • Строка (при этом эта строка попадёт в специальный ключ 'raw'
  • массив вида [string1, string2, string3, …]
  • набор массивов вида [key=>value, key2=>value2…];

Предназначена для заполнения шаблона данными.

show

Вызов: tpl('show', $object[, $tpl]); где $object — имя шаблона, $tpl — шаблон. Если шаблон не указан, то берётся таковой из конфига шаблона (ключ template).

Возврат: получившаяся строка.

Если настройка шаблона 'echo' выставлена в true, функция также запишет получившуюся строку в выходной поток.

getIcon

Вызов: tpl('getIcon', $iconName), где $iconName — одна из стандартных иконок kSite.

Возврат: строка содержащая полный URL к файлу иконки на сайте.

getIconText

Вызов: tpl('getIcon', $iconName), где $iconName — одна из стандартных иконок kSite.

Возврат: строка-название иконки.

getImage

Вызов: tpl('getImage', $iconName[, $text]), где $iconName — одна из стандартных иконок kSite, $text — строка название рисунка.

Возврат: полностью готовый тег img.

Примеры:

tpl("add", $tplName, array (
    "newPage"           => array ( "url" => makeURL(filter::GET('editTopic'),'index',"action=newPage&module=edit"), "title" => "Новая страница" ),
    "viewTopic"         => array ( "url" => makeURL(filter::GET('editTopic'),'index',"action=viewTopic&module=edit"), "title" => "Просмотр раздела" )
     );`
tpl("show", $tplName, '<ul>{{{<li>{{#url||<a href="#url" #add>#name</a>||<b>#name</b>}}</li>}}}</ul>');
tpl("add", $tplName, "String" );`
tpl("show", $tplName, "");
tpl("add", 'js', array('pagefunc.js', 'highlight.js', 'main_lib.js', 'pWindow.js'));`
tpl("show", 'js', '{{{<script type="text/javascript" src="'.SITE_URL.'js/#js"></script>}}}');
Теги:
Вход Регистрация