From: Moritz Bunkus Date: Mon, 27 Dec 2010 12:52:13 +0000 (+0100) Subject: options_for_select: Unterstützung für multiple selected-values X-Git-Tag: release-2.6.2beta1~64^2~24 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=927ead507db9b154a18dc5d62fb89feb34aeb76c;p=kivitendo-erp.git options_for_select: Unterstützung für multiple selected-values --- diff --git a/SL/Template/Plugin/L.pm b/SL/Template/Plugin/L.pm index 205363343..f776af85c 100644 --- a/SL/Template/Plugin/L.pm +++ b/SL/Template/Plugin/L.pm @@ -203,6 +203,8 @@ 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 $access = sub { my ($element, $index, $key, $sub) = @_; my $ref = ref $element; @@ -225,7 +227,7 @@ sub options_for_select { my $code = ''; foreach my $result (@elements) { my %attributes = ( value => $result->[0] ); - $attributes{selected} = 'selected' if $options{default} && ($options{default} eq ($result->[0] || '')); + $attributes{selected} = 'selected' if $selected{ $result->[0] || '' }; $code .= $self->html_tag('option', _H($result->[1]), %attributes); } @@ -585,6 +587,10 @@ C) will be used as the first element. The title to display for this element can be set with the option C and defaults to an empty string. +The option C can be either a scalar or an array reference +containing the values of the options which should be set to be +selected. + =item C Creates a tab for C. The description will be used as displayed name.