Template Toolkit(русская редакция) |
|
||
|
Template::Plugin::URL |
|
ОБЗОР |
[ Индекс ] [ Модули ] [ Наверх ] |
[% USE url('/cgi-bin/foo.pl') %] [% url(debug = 1, id = 123) %] # ==> /cgi/bin/foo.pl?debug=1&id=123 [% USE mycgi = url('/cgi-bin/bar.pl', mode='browse', debug=1) %] [% mycgi %] # ==> /cgi/bin/bar.pl?mode=browse&debug=1 [% mycgi(mode='submit') %] # ==> /cgi/bin/bar.pl?mode=submit&debug=1 [% mycgi(debug='d2 p0', id='D4-2k[4]') %] # ==> /cgi-bin/bar.pl?mode=browse&debug=d2%20p0&id=D4-2k%5B4%5D |
ОПИСАНИЕ |
[ Индекс ] [ Модули ] [ Наверх ] |
Плагин URL можно использовать для конструирования составных URL из базового адреса и хеша дополнительных параметров запроса. Конструктору необходимо передать базовый URL и опционально хеш параметров и значений по умолчанию. При использовании в шаблонах это выглядит примерно так: [% USE url('http://www.somewhere.com/cgi-bin/foo.pl') %] [% USE url('/cgi-bin/bar.pl', mode='browse') %] [% USE url('/cgi-bin/baz.pl', mode='browse', debug=1) %] Далее когда плагин вызывается без аргументов, он возвращает отформатированную строку запроса, составленную из базового URL и параметров по умолчанию. [% url %] Для приведенных выше трёх примеров, это приведет к следующему выводу: http://www.somewhere.com/cgi-bin/foo.pl /cgi-bin/bar.pl?mode=browse /cgi-bin/baz.pl?mode=browse&debug=1 Также можно указать дополнительные параметры: [% url(mode='submit', id='wiz') %] Что для тех же трёх примеров приведет к: http://www.somewhere.com/cgi-bin/foo.pl?mode=submit&id=wiz /cgi-bin/bar.pl?mode=browse&id=wiz /cgi-bin/baz.pl?mode=browse&debug=1&id=wiz В качестве первого параметра можно указать новый базовый URL: [% url('/cgi-bin/waz.pl', test=1) %] выводит /cgi-bin/waz.pl?test=1 /cgi-bin/waz.pl?mode=browse&test=1 /cgi-bin/waz.pl?mode=browse&debug=1&test=1 Порядок параметров не предопределён, поскольку хеши Perl сами по себе никак не упорядочены. Это не является проблемой поскольку порядок параметров CGI неважен (насколько я знаю). Все значения правильно кодируются в URL-encoded благодаря коду, позаимствованному в CGI.pm Линкольна Стейна (Lincoln Stein), например [% USE url('/cgi-bin/woz.pl') %] [% url(name="Elrich von Benjy d'Weiro") %] Здесь в выоде кодируются пробелы и символ "'": /cgi-bin/woz.pl?name=Elrich%20von%20Benjy%20d%27Weiro Плагину можно назначить другое имя в момент создания согласно принятому синтаксису Template Toolkit. [% USE mycgi = url('cgi-bin/min.pl') %] [% mycgi(debug=1) %] Обратите внимание, что параметры строки запроса разделены '&', хотя в Сети чаще используется только '&'. '&' в настоящий момент считается правильным способом. Дополнительную информацию об этом можно получить по ссылке: http://ppewww.ph.gla.ac.uk/~flavell/www/formgetbyurl.html /cgi-bin/waz.pl?mode=browse&debug=1&test=1 |
АВТОР |
[ Индекс ] [ Модули ] [ Наверх ] |
Энди Уардли (Andy Wardley <abw@andywardley.com>) |
ВЕРСИЯ |
[ Индекс ] [ Модули ] [ Наверх ] |
2.65, поставляется в составе Template Toolkit версии 2.14, дата релиза - 4 октября 2004. |
АВТОРСКИЕ ПРАВА |
[ Индекс ] [ Модули ] [ Наверх ] |
Copyright (C) 1996-2004 Andy Wardley. All Rights Reserved. Copyright (C) 1998-2002 Canon Research Centre Europe Ltd. Этот модуль является свободно-распространяемым программным обеспечением; вы можете распространять и/или модифицировать его на тех же условиях, что и Perl. |
СМОТРИ ТАКЖЕ |
[ Индекс ] [ Модули ] [ Наверх ] |