X-Git-Url: https://git.p6c8.net/selfforum.git/blobdiff_plain/ba659b53059e637777865e646f0f2a6fb7f2988e..1783408d3a61b5bd23ee6e3bb637b6d92ac40490:/selfforum-cgi/shared/Template/_query.pm diff --git a/selfforum-cgi/shared/Template/_query.pm b/selfforum-cgi/shared/Template/_query.pm index 606f4f3..3fb8e2d 100644 --- a/selfforum-cgi/shared/Template/_query.pm +++ b/selfforum-cgi/shared/Template/_query.pm @@ -1,71 +1,79 @@ -# Template/_query.pm +package Template::_query; -# ==================================================== -# Autor: n.d.p. / 2000-12-30 -# lm : n.d.p. / 2001-02-04 -# ==================================================== -# Funktion: -# Erzeugen eines Querystrings -# ==================================================== +################################################################################ +# # +# File: shared/Template/_query.pm # +# # +# Authors: André Malo # +# # +# Description: compose a query string # +# # +################################################################################ use strict; +use vars qw( + @EXPORT +); -package Template::_query; - -use vars qw(@ISA @EXPORT); - -# ==================================================== -# Funktionsexport -# ==================================================== +################################################################################ +# +# Version check +# +# last modified: +# $Date$ (GMT) +# by $Author$ +# +sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'} -require Exporter; -@ISA = qw(Exporter); +################################################################################ +# +# Export +# +use base qw(Exporter); @EXPORT = qw(query_string); -################################ -# sub query_string +### url_encode () ############################################################## # -# Querystring erzeugen -################################ - -sub query_string ($) { - my $parlist=shift; - - my $string = '?'.join ('&', - map {(ref)?map{&url_encode ($_).'='.&url_encode ($parlist -> {$_})} @{$parlist -> {$_}}: - &url_encode ($_).'='.&url_encode ($parlist -> {$_})} - keys %$parlist); +# urlsafe encoding +# (more or less from CGI.pm) +# +# Params: $string - string to encode +# +# Return: encoded string +# +sub url_encode ($) { + my $string = shift; + $string=~s/([^a-zA-Z\d_.-])/uc sprintf('%%%02x' => ord($1))/eg; - # return $string; } -# ==================================================== -# Private Funktionen -# ==================================================== - -################################ -# sub url_encode +### query_string () ############################################################ # -# URL-Codierung -# (mehr oder weniger aus -# CGI.pm geklaut...) -################################ +# compose a query string +# +# Params: $parlist - hashref +# +# Return: scalar: query string +# +sub query_string ($) { + my $parlist=shift; -sub url_encode ($) { - my $string = shift; - $string=~s/([^a-zA-Z\d_.-])/uc sprintf('%%%02x',ord($1))/eg; + my $string = '?'.join ('&' => + map { + (ref) + ? map{url_encode ($_).'='.url_encode ($parlist -> {$_})} @{$parlist -> {$_}} + : url_encode ($_).'='.url_encode ($parlist -> {$_}) + } keys %$parlist + ); + # return $string; } -# ==================================================== -# Modulinitialisierung -# ==================================================== - -# making require happy +# keep 'require' happy 1; -# ==================================================== -# end of Template::_query -# ==================================================== \ No newline at end of file +# +# +### end of Template::_query #################################################### \ No newline at end of file