Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
...
</TMPL_LOOP>
В программе для вывода такого цикла нужно сформировать массив и сопоставить его с именем повторяющегося блока. Каждый элемент массива соответствует включению HTML-кода, описанному внутри <TMPL_LOOP> … </TMPL_LOOP>. Элемент массива представляет собой хэш (наборы пар вида «ключ – значение»). То есть если в шаблоне мы описываем подстановку вида <TMPL_VAR NAME=имя_параметра_подстановки> внутри повторяющегося блока, то в хэше, описывающем элемент массива для подстановки, мы должны создать пару (имя_параметра_подстановки => значение_для_подстановки).
Создатели библиотеки внедрили в шаблон условный оператор. Мы будем использовать его только там, где нужно указать отдельный, вложенный блок HTML-кода, который будет подключаться в зависимости от условия, сформированного в программе:
<TMPL_IF NAME=имя_блока>
...
</TMPL_IF>
Подключение вывода блока зависит от значения, присвоенного обработчиком шаблона имени_блока. Если мы проинициализируем переменную блока значением «истина» – HTML-код, описанный внутри <TMPL_IF> … </TMPL_IF>, будет включен в результат разбора шаблона.
Если мы не определим никакого значения для блока, или определим его как «ложь», блок не будет включен в результаты разбора шаблона.
Как и в традиционном синтаксисе языков программирования, у условного блока (оператора) может существовать «альтернативная часть»:
<TMPL_IF NAME=имя_блока>
...
<TMPL_ELSE>
...
</TMPL_IF>
Если переменная блока получила из программы значение «ложь», то HTML-код между <TMPL_ELSE> и </TMPL_IF> будет включаться в результат разбора.
Код для обработки этого шаблона будет выглядеть так:
#!/usr/bin/perl
use strict;
# Путь к каталогу библиотеки
use lib $ENV{DOCUMENT_ROOT}."/../lib";
# Подключение библиотеки
use HTML::Template;
# Создание нового объекта. В данном случае мы отдельно
# указываем в конструкторе краткое имя файла шаблона
# ex2.html и путь к каталогу htdocs/../data/htmltemp,
# где размещен шаблон
my $template = HTML::Template->new(
filename => "ex2.html",
path => $ENV{DOCUMENT_ROOT}."/../data/htmltemp/"
);
# Простая подстановка значения в <TMPL_VAR NAME=TOPIC>.