]> git.decadent.org.uk Git - maypole.git/commitdiff
fixed multiple value handling
authorSebastian Riedel <sri@labs.kraih.com>
Fri, 10 Sep 2004 10:17:15 +0000 (10:17 +0000)
committerSebastian Riedel <sri@labs.kraih.com>
Fri, 10 Sep 2004 10:17:15 +0000 (10:17 +0000)
git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@173 48953598-375a-da11-a14b-00016c27c3ee

Changes
lib/CGI/Maypole.pm

diff --git a/Changes b/Changes
index 1b2bc7626e78eb5248c8d46714b1782eb1a8c6af..ac6493ac28de92eff325fa28351b46cf8b96bd00 100644 (file)
--- a/Changes
+++ b/Changes
@@ -7,6 +7,7 @@ Revision history for Perl extension Maypole
     - added Maypole::Application universal loader
     - config parameter handling for Maypole::Model::CDBI
     - $r->{query} is now deprecated, use $r->{params} for GET and POST
+    - fixed multiple value handling (Simon Flack)
 
 1.7   Sat Jul 17 20:15:26 BST 2004
     - Emergency release - we lost the "use Maypole::Constants" from
index 88995ef0401e84d18030bca8a56ddf840b3fb323..e112913c0d5b5f55d214892868ad36b191ad4983 100644 (file)
@@ -6,45 +6,50 @@ use warnings;
 our $VERSION = "0.3";
 
 sub run {
-       my $self = shift;
-       return $self->handler();
+    my $self = shift;
+    return $self->handler();
 }
 
 sub get_request {
-       require CGI::Simple;
-       shift->{cgi} = CGI::Simple->new();
+    require CGI::Simple;
+    shift->{cgi} = CGI::Simple->new();
 }
 
 sub parse_location {
-     my $self = shift;
-     $self->{path} = $self->{cgi}->url(-absolute=>1, -path_info=>1);
-     my $loc = $self->{cgi}->url(-absolute=>1);
-     no warnings 'uninitialized';
-     $self->{path} =~ s/^($loc)?\///;
-     $self->parse_path;
-     $self->parse_args;
+    my $self = shift;
+    $self->{path} = $self->{cgi}->url( -absolute => 1, -path_info => 1 );
+    my $loc = $self->{cgi}->url( -absolute => 1 );
+    no warnings 'uninitialized';
+    $self->{path} =~ s/^($loc)?\///;
+    $self->parse_path;
+    $self->parse_args;
 }
 
 sub parse_args {
-     my $self = shift;
-     $self->{params} = { $self->{cgi}->Vars };
-     $self->{query}  = { $self->{cgi}->Vars };
+    my $self = shift;
+    my (%vars) = $self->{cgi}->Vars;
+    while ( my ( $key, $value ) = each %vars ) {
+        my @values = split "\0", $value;
+        $vars{$key} = @values == 1 ? $values[0] : \@values;
+    }
+    $self->{params} = {%vars};
+    $self->{query}  = {%vars};
 }
 
 sub send_output {
-     my $r = shift;    
-       print $r->{cgi}->header(-type => $r->{content_type},
-                                         -content_length => length $r->{output},
-                                         );
-     print $r->{output};
+    my $r = shift;
+    print $r->{cgi}->header(
+        -type           => $r->{content_type},
+        -content_length => length $r->{output},
+    );
+    print $r->{output};
 }
 
 sub get_template_root {
-     my $r = shift;
-     $r->{cgi}->document_root . "/". $r->{cgi}->url(-relative=>1);
+    my $r = shift;
+    $r->{cgi}->document_root . "/" . $r->{cgi}->url( -relative => 1 );
 }
 
-
 1;
 
 =head1 NAME