HTML::Template

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>

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "HTML::Template" в других словарях:

  • Template Toolkit — Template Toolkit  мощная «легковесная» perl библиотека для работы с шаблонами, позволяющая разделять код, данные и представление. «Легковесная» в данном случае обозначает, что взаимодействие с пользователем, работа с базой данных, вызов… …   Википедия

  • Template Engine — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Template metaprogramming — is a metaprogramming technique in which templates are used by a compiler to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled. The output of these templates include compile time… …   Wikipedia

  • Template matching — is a technique in Digital image processing for finding small parts of an image which match a template image. It can be used in manufacturing as a part of quality control, [Aksoy, M. S., O. Torkul, and I. H. Cedimoglu. An industrial visual… …   Wikipedia

  • Template-Toolkit — Entwickler Andy Wardley Aktuelle Version 2.22 (21. Juli 2009) Betriebssystem Linux, Mac OS X, Windows, u. a. Kategorie Programm und Bibliothekssammlun …   Deutsch Wikipedia

  • Template:Cite news —   [ …   Wikipedia

  • Template:Navbox — [edit] [ …   Wikipedia

  • Template:Cite web — [edit] [purge] …   Wikipedia

  • Template engine (web) — A (web) template engine is software that is designed to process web templates and content information to produce output web documents. It runs in the context of a template system.pecific types of template engines Template engine is ordinarily… …   Wikipedia

  • Template processor — A template processor (also known as a template engine or a template parser )is software or a software component that is designed to combine one or more templates with a data model to produceone or more result documents.cite book last = Niemeyer… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»