options_for_select: Default "0" ermöglichen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 24 Feb 2011 08:45:48 +0000 (09:45 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 24 Feb 2011 08:53:33 +0000 (09:53 +0100)
SL/Template/Plugin/L.pm

index 9995722..513f4a2 100644 (file)
@@ -207,7 +207,7 @@ sub options_for_select {
 
   my $value_title_sub = $options{value_title_sub};
 
-  my %selected        = map { ( $_ => 1 ) } @{ ref($options{default}) eq 'ARRAY' ? $options{default} : $options{default} ? [ $options{default} ] : [] };
+  my %selected        = map { ( $_ => 1 ) } @{ ref($options{default}) eq 'ARRAY' ? $options{default} : defined($options{default}) ? [ $options{default} ] : [] };
 
   my $access = sub {
     my ($element, $index, $key, $sub) = @_;
@@ -231,7 +231,7 @@ sub options_for_select {
   my $code = '';
   foreach my $result (@elements) {
     my %attributes = ( value => $result->[0] );
-    $attributes{selected} = 'selected' if $selected{ $result->[0] || '' };
+    $attributes{selected} = 'selected' if $selected{ defined($result->[0]) ? $result->[0] : '' };
 
     $code .= $self->html_tag('option', _H($result->[1]), %attributes);
   }