CGI::Application и Template Toolkit. Использование плагина CGI::Application::Plugin::TT

Публикация — в значительной мере — перевод официальной документации CGI::Application::Plugin::TT.
Все примеры — оригинальные, разработанные специально для данного документа и проверенные на работоспособность.

Оглавление

CGI::Application поддерживает работу с шаблонами Template Toolkit с помощью CGI::Application::Plugin::TT .

Методы

tt_process

tt_process() — это «обертка» вокруг стандартного метода process() от Template Toolkit. Использование tt_process() похоже на использование process(). Методу tt_process можно передать до двух параметров. Первый — это имя вызываемого шаблона, второй — ссылка на хэш с передаваемыми в шаблон данными. Оба параметра являются не обязательными.

Если не указано имя шаблона, имя будет сгенерировано автоматически, с помощью функции $self->tt_template_name .

tt_process() возвращает скалярную ссылку на готовый к выводу пользователю код шаблона.

Пример:

Вывод:

Фактически, полученный код не обязательно отправлять на вывод пользователю. Можно сохранить данные в файл, или разместить и отправить в электронном письме.

tt_config

Метод tt_config() позволяет задать некоторые параметры работы плагина CGI::Application::Plugin::TT и Template Toolkit. Рекомендуется вызывать метод tt_config() до того, как будут выполнены первые обращения к методам tt_process() и tt_obj(). Если хотите получить ошибку — сделайте наоборот.

TEMPLATE_OPTIONS

TEMPLATE_OPTIONS позволяет определить параметры для объекта Template. В списке можно указывать все классические конфигурационные опции Template Toolkit.

TEMPLATE_NAME_GENERATOR

TEMPLATE_NAME_GENERATOR позволяет указать ссылку на функцию, которая будет генерировать имя файла шаблона. Данная функция будет выполняться, если метод tt_process() будет вызван без указания имени шаблона.

Если специальная функция не назначена, а tt_process() все-таки вызван без параметров — по-умолчанию будет сгенерировано имя шаблона на основе имен текущего модуля и метода.

tt_obj

Метод tt_obj() возвращает ссылку на основной объект Template Toolkit. Используется, в основном, в процессе отладки приложения.

tt_params

Метод tt_params() определяет список параметров, которые будут
передаваться в каждый вызываемый шаблон.

Как правило, при вызове метода tt_process(), ему передается ссылка
на хэш с параметрами. Параметры, определенные с помощью tt_params() будут добавляться в этот хэш.

Если один и тот же параметр определен дважды — преимуществом будет пользоваться
параметр, который входит в хэш, передаваемый непосредственно tt_process().

Пример:

В результате выполнения данного блока кода, в шаблоне будет использоваться параметр block со значением: «show_form».

tt_clear_params

Метод tt_clear_params() удалит все сохранившиеся до текущего времени параметры, установленные методом tt_params().

tt_pre_process

Метод tt_pre_process() действует аналогично методу cgiapp_prerun(). tt_pre_process() вызывается и отрабатывается непосредственно перед началом обработки шаблона.

Выполнение tt_pre_process() будет запущено автоматически, а на вход будут переданы те же параметры, которые передаются методу tt_process(). При желании, можно внести последние изменения в список передаваемых шаблону параметров.

tt_post_process

Метод tt_post_process() аналогичен методу cgiapp_postrun(). Вызывается автоматически после завершения обработки шаблона, но до отправления результата клиенту. На вход принимает скалярную ссылку на обработанный шаблон — готовый к выводу html-код.

tt_template_name

Метод генерирует название шаблона на основе имени вызывающих его класса и метода.

Например:

Результат: Для вывода будет запрошен шаблон App/start.tmpl .

tt_template_name() позволяет формировать и использовать определенную иерархию шаблонов, зависимую от структуры самого приложения.

Можно заставить tt_template_name() сгенерировать название шаблона на основе не вызывающего метода, а вышестоящего по уровню. На сколько уровней выше — задается с помощью
числа в качестве параметра.

Пример:

Результат в файле error.log:

tt_template_name() вызывается автоматически, если при вызове метода tt_process() не было указано имя шаблона.

tt_include_path

Метод tt_include_path() позволяет указать путь к месторасположению шаблонов. Причем, на этапе, когда объект TT уже существует. Обычно для указания пути используют INCLUDE_PATH.

Вызов tt_include_path() внесет изменения в INCLUDE_PATH, что можно использовать во всех последующих вызовах объекта TT.

Полезные ссылки

http://search.cpan.org/~ceeshek/CGI-Application-Plugin-TT-1.04/lib/CGI/Application/Plugin/TT.pm
Примеры работ на CGI::Application
http://search.cpan.org/~abw/Template-Toolkit-2.22/lib/Template.pm

CGI::Application и Template Toolkit. Использование плагина CGI::Application::Plugin::TT: 1 комментарий

Комментарии запрещены.