Главная страница статей --> Хитрости при программировании php, заметки по базам данных

Использование модуля для работы с шаблонами. Часть 2.

Источник: realcoding.net

Разобравшись с основными принципами работы с шаблонами в perl, рассмотрим еще один способ облегчения жизни программисту. Основной инструментарий - новая версия модуля STemplate.


Очень удобно, было бы обрабатывать шаблоны на лету, по аналогии с JSP, PHP и ASP. Это можно осуществить двумя способами: в случае с mod_perl описать модуль как handler(сам модуль потребует некоторого изменения, возможно в следующей статье я опишу это), и второй способ - с помощью .htaccess установить обработчик, в котором будет загружен модуль STemplate. Рссмотрим более подробно второй способ.


Для начала выберем расширение для наших шаблонов. Пусть это будет .psp (perl server pages). Таким образом .htaccess будет выглядеть следующим образом.

AddType application/x-psp psp

Action application
/x-psp /cgi-bin/psp_parser.cgi

DirectoryIndex index
.psp

Первая строка устанавливает тип mime для нового типа файлов. Во второй описан скрипт-обработчик шаблонов. Важный момент! Полный путь запрашиваемого файла *.psp для psp_parser.cgi будет находиться в $ENV{PATH_TRANSLATED}. Третья строка устанавливает файл загружаемый по умолчанию.


Теперь рассмотрим psp_parser.cgi

use STemplate;

my $temp = new STemplate;

print
Content-type: text/htmlnn;

$ENV{PATH_TRANSLATED} =~ m([w/]+)/([^/].*?)$;

my $dir = $1;

my $file = $2;

my %data = (ID => 1);

$temp->template($dir,$file,%data);


Модуль должен находится в той же директории, что и psp_parser.cgi.


В шаблонах psp можно подключать модули, соединяться с БД и т.д. При открытии файлов рекомендуется задавать абсолютный путь. Вместо заключения приведу пример простейшей psp страницы. А уже просмотрев код, Вы сами сможете сделать вывод о применении данной технологии.

<%


use
CGI;


$query = new CGI;

$hello = $query->param(hello);



%>



<
HTML>


<
TITLE>test psp</TITLE>

<
BODY bgcolor=#000000 text=#ffffff>


<CENTER><H1><% print Hello: .$hello.<BR> %></H1></CENTER>



<
psp: [for ($j = 1; $j <= 25; $j++)]>

<
h1> $j: It Worked!- $hello </h1>

</
psp>



<
psp: [ ]>

<
h3> OK </h3>

</
psp>



</
BODY>

</
HTML>



Похожие статьи:
- Краткое описание регулярных выражений: POSIX и PCRE
- Установка и конфигурация веб сервера Apache с поддержкой PHP, JSP и MySQL на Windows XP
- Subsys_JsHttpRequest: подкачка данных без перезагрузки страницы (AJAX)
- Доступ к базам данных под управлением СУБД POSTGRES95
- Perl & XML. Библиотека программиста
- Генерация контента сайта с использованием Template Toolkit
- Создание приложения, работающего с XML-данными
- Модуль Apache mod_rewrite
- Пишем правильный online WYSIWYG-редактор
- Хороший дизайн
- Создание динамических элементов страницы с помощью CSS.
- Поиск по сайту - статичный контент (Perl)
- Аспектно-ориентированная веб-разработка и PHP


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[0.001]