Template Toolkit: Модули: Template::Plugin::URL

Template Toolkit

(русская редакция)

[ Пособия ] [ Руководство ] [ Модули ] [ Библиотеки ] [ Утилиты ] [ Вопросы ] [ Релиз ] [ Perl-ресурсы ] Форум ]
 
Поиск
Template Toolkit | Модули | Template::Plugin::URL

Template::Plugin::URL

[ ◄ Template::Plugin::Table ] [ Template::Plugin::View ► ]
Плагин для сборки составных 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>)

http://www.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.

СМОТРИ ТАКЖЕ

Индекс ] [ Модули ] [ Наверх ]