Template::Plugin::URL (3)
Leading comments
Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) Standard preamble: ========================================================================
NAME
Template::Plugin::URL - Plugin to construct complex URLsSYNOPSIS
[% 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
DESCRIPTION
The "URL" plugin can be used to construct complex URLs from a base stem and a hash array of additional query parameters.The constructor should be passed a base
[% USE url('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) %]
When the plugin is then called without any arguments, the default base and parameters are returned as a formatted query string.
[% url %]
For the above three examples, these will produce the following outputs:
www.somewhere.com/cgi-bin/foo.pl /cgi-bin/bar.pl?mode=browse /cgi-bin/baz.pl?mode=browse&debug=1
Note that additional parameters are separated by '"&"' rather than simply '"&"'. This is the correct behaviour for
Additional parameters may be also be specified to the
[% url(mode='submit', id='wiz') %]
Which, for the same three examples, produces:
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
A new base
[% url('/cgi-bin/waz.pl', test=1) %]
producing
/cgi-bin/waz.pl?test=1 /cgi-bin/waz.pl?mode=browse&test=1 /cgi-bin/waz.pl?mode=browse&debug=1&test=1
The ordering of the parameters is non-deterministic due to fact that Perl's hashes themselves are unordered. This isn't a problem as the ordering of
[% USE url('/cgi-bin/woz.pl') %] [% url(name="Elrich von Benjy d'Weiro") %]
Here the spaces and ""'"" character are escaped in the output:
/cgi-bin/woz.pl?name=Elrich%20von%20Benjy%20d%27Weiro
An alternate name may be provided for the plugin at construction time as per regular Template Toolkit syntax.
[% USE mycgi = url('cgi-bin/min.pl') %] [% mycgi(debug=1) %]
AUTHOR
Andy Wardley <abw@wardley.org> <wardley.org>COPYRIGHT
Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved.This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.