HTML::Template
Стиль этой статьи неэнциклопедичен или нарушает нормы русского языка. Статью следует исправить согласно стилистическим правилам Википедии.
|
HTML::Template — небольшая по объёму Perl-библиотека для работы с шаблонами, позволяющая разделять код, данные и представление.
Возможности. Преимущества. Специфика
В HTML::Template используется свой мини-язык, по написанию схожий с HTML-тегами.
Пример шаблона:
<html>
<head><title> <TMPL_VAR NAME="title"> </title></head>
<body>
Вывод списка:
<ul>
<TMPL_LOOP NAME="items">
<li> <TMPL_VAR NAME="item"> </li>
</TMPL_LOOP>
</ul>
</body>
</html>
И вызывающий его скрипт:
#!/usr/bin/perl
use HTML::Template;
my $template = HTML::Template->new(filename => 'test.tmpl');
$template->param(title => "Заголовок страницы");
$template->param(items => [
{item => 'один'},
{item => 'два'},
{item => 'три'},
]);
print "Content-type: text/html\n\n";
print $template->output();
- Может кэшировать шаблоны в память, общую память (shared memory) или на диск.
Недостатки
- Не позволяет обращаться напрямую ко вложенным структурам, таким как хэши массивов и тому подобным.
- Шаблоны можно вкладывать один в другой по схемам сверху-вниз и снаружи-внутрь. Строить шаблоны изнутри-наружу нельзя.
- Переменным нельзя присваивать значения, и вообще, производить с ними какие-либо операции, с них можно только считывать. Из-за этого не получится реализовать шаблонную логику уровня сложности выше простого.
- Из циклов присутствует только foreach, что позволяет вывести только последовательный список.
- Если внутри цикла присутствует переменная с таким же именем, как и вне цикла, то к последней изнутри цикла обратиться нельзя.
- Цикл не позволяет производить итерацию по хэшам.
- HTML::Template не позволяет обращаться к методам объектов.
Теги
HTML::Template обладает следующим набором тегов.
TMPL_VAR
<TMPL_VAR NAME="PARAMETER_NAME">
Самый простой тег. Выводит значение переменной, значение которой вы присвоили через $template->param(PARAMETER_NAME => «VALUE»).
Позволяет делать HTML-экранирование, при помощи ESCAPE=HTML:
<input name=param type=text value="<TMPL_VAR ESCAPE=HTML NAME="PARAM">">
Позволяет делать URL-экранирование ESCAPE=URL, обрабатывать строки, которые впоследствии будут строками кода JavaScript ESCAPE=JS. Позвляет так же устанавливать значение переменной по умолчанию DEFAULT='SOME VALUE'.
TMPL_LOOP
<TMPL_LOOP NAME="LOOP_NAME"> ... </TMPL_LOOP>
Цикл по массиву. Переменная LOOP_NAME должна содержать массив хэшей.
<TMPL_LOOP> могут быть вложенными.
По умолчанию, переменные снаружи цикла не видны внутри него. Для изменения этого свойства следует использовать опцию global_vars в конструкторе объекта.
TMPL_INCLUDE
<TMPL_INCLUDE NAME="filename.tmpl">
Вставляет на место этого тега указанный шаблон.
TMPL_IF
<TMPL_IF NAME="BOOL"> Some text that only gets displayed if BOOL is true! </TMPL_IF>
TMPL_ELSE
<TMPL_IF BOOL> Some text that is included only if BOOL is true <TMPL_ELSE> Some text that is included only if BOOL is false </TMPL_IF>
TMPL_UNLESS
<TMPL_UNLESS BOOL> Some text that is output only if BOOL is FALSE. <TMPL_ELSE> Some text that is output only if BOOL is TRUE. </TMPL_UNLESS>
Тег, обратный по действию тегу <TMPL_IF>
Автор
Ссылки
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....