X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FPackages%2FTemplate.pm;h=be71d154ffbcaf890d8e0fc8cec583e90a5ade81;hp=0fe24813ee9bad83afbf1999a4213f3c7ab9f451;hb=08aa87adaf6c59131d01f8a4a078dc4e78475788;hpb=3d001d13e938fe3dc712e777e01804f8187c32f4 diff --git a/lib/Packages/Template.pm b/lib/Packages/Template.pm index 0fe2481..be71d15 100644 --- a/lib/Packages/Template.pm +++ b/lib/Packages/Template.pm @@ -5,6 +5,9 @@ use warnings; use Template; use Locale::gettext; +use URI (); +use HTML::Entities (); +use URI::Escape (); use Benchmark ':hireswallclock'; use Packages::CGI; @@ -19,6 +22,7 @@ use constant COMPILE => 1; sub new { my ($classname, $include, $format, $vars, $options) = @_; + $vars ||= {}; $options ||= {}; my $self = {}; @@ -29,6 +33,19 @@ sub new { year => $timestamp[5]+1900, string => scalar gmtime() .' UTC', }; + $vars->{make_search_url} = sub { return &Packages::CGI::make_search_url(@_) }; + $vars->{make_url} = sub { return &Packages::CGI::make_url(@_) }; + $vars->{g} = sub { return &Packages::I18N::Locale::tt_gettext(@_) }; + $vars->{extract_host} = sub { my $uri = URI->new($_[0]); + my $host = $uri->host; + $host .= ':'.$uri->port if $uri->port != $uri->default_port; + return $host; + }; + # needed to work around the limitations of the the FILTER syntax + $vars->{html_encode} = sub { return HTML::Entities::encode_entities(@_,'<>&"') }; + $vars->{uri_escape} = sub { return URI::Escape::uri_escape(@_) }; + $vars->{quotemeta} = sub { return quotemeta($_[0]) }; + $vars->{string2id} = sub { return &Packages::CGI::string2id(@_) }; $self->{template} = Template->new( { PRE_PROCESS => [ 'config.tmpl' ],