X-Git-Url: https://git.p6c8.net/selfforum.git/blobdiff_plain/ba659b53059e637777865e646f0f2a6fb7f2988e..33dc5903af2c531fdd07df0ac1591c55ea13c5d3:/selfforum-cgi/shared/Template/_query.pm diff --git a/selfforum-cgi/shared/Template/_query.pm b/selfforum-cgi/shared/Template/_query.pm index 606f4f3..8d1d8ec 100644 --- a/selfforum-cgi/shared/Template/_query.pm +++ b/selfforum-cgi/shared/Template/_query.pm @@ -1,71 +1,76 @@ -# 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 , 2001-06-16 # +# # +# Description: compose a query string # +# # +################################################################################ use strict; +use vars qw( + @EXPORT + $VERSION +); -package Template::_query; - -use vars qw(@ISA @EXPORT); - -# ==================================================== -# Funktionsexport -# ==================================================== +################################################################################ +# +# Version check +# +$VERSION = do { my @r =(q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; -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 ####################################################