html4perl

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ProFTPD
проходил мимо

html4perl

Непрочитанное сообщение ProFTPD » 2008-04-23 21:16:49

короче, как лучше всего использовать штмл с прелом? какими модулями или методами лучше?

1) если грузить html файлы, отделять от кода то получаеться, все равно, будет 50 файлов - не удо0бно
2) когда разделить <--1--> <--2--> то в одном файле будет много станиц

можно как-то повставлять переменные в один шаблон, точнее в 5 полных страниц (они для того чтобы дизайн был и...) и работать только с ними?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: html4perl

Непрочитанное сообщение hizel » 2008-04-23 22:20:45

В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: html4perl

Непрочитанное сообщение Alex Keda » 2008-04-23 23:10:48

а я сам такие писать начал...
под пхп
=========
оказалось реально удобно разобрать страницу на три десятка мелких кусочков и str_replace`ом заменять массивы...
тока вот приходиться ворочть в памяти пачку массивов и кучу переменных.
а так - весьма удобно.
(не только в оперативной - но и в своей =))
Убей их всех! Бог потом рассортирует...

ProFTPD
проходил мимо

Re: html4perl

Непрочитанное сообщение ProFTPD » 2008-04-24 2:16:35

http://www.template-toolkit.org/ тут в самом низу если я правильно понял, можно не разделять на кусочки а прямо на одно сделать..??

можно нескольок масивов, но лучше хэш...

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: html4perl

Непрочитанное сообщение ProFTP » 2008-06-29 8:39:39

HTML::Template

больше всего


[center]HTML::Template
[/center]

HTML::Template — небольшая по объёму перл-библиотека для работы с шаблонами, позволяющая разделять код, данные и представление.

Template Toolkit — наиболее удачное решение для работы с шаблонами в Perl. Template Toolkit более прост в изучении, написании, но обладает гораздо большими возможностями чем HTML::Template. Описываемая в этой статье библиотека позволяет писать лишь простейшие шаблоны, почти лишённые программной логики.
Содержание


* 1 Возможности. Преимущества. Специфика
* 2 Недостатки
* 3 Тэги
o 3.1 TMPL_VAR
o 3.2 TMPL_LOOP
o 3.3 TMPL_INCLUDE
o 3.4 TMPL_IF
o 3.5 TMPL_ELSE
o 3.6 TMPL_UNLESS
* 4 Автор
* 5 Ссылки

Возможности. Преимущества. Специфика

В 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>

Автор


Sam Tregar

Ссылки

* http://search.cpan.org/dist/HTML-Template/Template.pm
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение