]> git.p6c8.net - selfforum.git/blobdiff - selfforum-cgi/shared/Template/_query.pm
Initial release
[selfforum.git] / selfforum-cgi / shared / Template / _query.pm
diff --git a/selfforum-cgi/shared/Template/_query.pm b/selfforum-cgi/shared/Template/_query.pm
new file mode 100644 (file)
index 0000000..606f4f3
--- /dev/null
@@ -0,0 +1,71 @@
+# Template/_query.pm
+
+# ====================================================
+# Autor: n.d.p. / 2000-12-30
+# lm   : n.d.p. / 2001-02-04
+# ====================================================
+# Funktion:
+#      Erzeugen eines Querystrings
+# ====================================================
+
+use strict;
+
+package Template::_query;
+
+use vars qw(@ISA @EXPORT);
+
+# ====================================================
+# Funktionsexport
+# ====================================================
+
+require Exporter;
+@ISA    = qw(Exporter);
+@EXPORT = qw(query_string);
+
+################################
+# sub query_string
+#
+# 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);
+
+  # return
+  $string;
+}
+
+# ====================================================
+# Private Funktionen
+# ====================================================
+
+################################
+# sub url_encode
+#
+# URL-Codierung
+# (mehr oder weniger aus
+#  CGI.pm geklaut...)
+################################
+
+sub url_encode ($) {
+  my $string = shift;
+  $string=~s/([^a-zA-Z\d_.-])/uc sprintf('%%%02x',ord($1))/eg;
+
+  $string;
+}
+
+# ====================================================
+# Modulinitialisierung
+# ====================================================
+
+# making require happy
+1;
+
+# ====================================================
+# end of Template::_query
+# ====================================================
\ No newline at end of file

patrick-canterino.de