L.radio_button_tag: id erhalten wenn sie schon vorher gesetzt ist.
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 5 Aug 2014 10:52:49 +0000 (12:52 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 5 Aug 2014 10:52:49 +0000 (12:52 +0200)
SL/Presenter/Tag.pm
SL/Template/Plugin/L.pm

index bd48906..552df34 100644 (file)
@@ -190,9 +190,12 @@ sub select_tag {
 }
 
 sub _set_id_attribute {
-  my ($attributes, $name) = @_;
+  my ($attributes, $name, $unique) = @_;
 
-  $attributes->{id} = name_to_id(undef, $name) if !delete($attributes->{no_id}) && !$attributes->{id};
+  if (!delete($attributes->{no_id}) && !$attributes->{id}) {
+    $attributes->{id}  = name_to_id(undef, $name);
+    $attributes->{id} .= '_' . $attributes->{value} if $unique;
+  }
 
   return %{ $attributes };
 }
index 8cc93a6..88cf4d2 100644 (file)
@@ -69,8 +69,8 @@ sub simple_format { return _call_presenter('simple_format', @_); }
 sub part_picker   { return _call_presenter('part_picker',   @_); }
 
 sub _set_id_attribute {
-  my ($attributes, $name) = @_;
-  SL::Presenter::Tag::_set_id_attribute($attributes, $name);
+  my ($attributes, $name, $unique) = @_;
+  SL::Presenter::Tag::_set_id_attribute($attributes, $name, $unique);
 }
 
 sub img_tag {
@@ -119,9 +119,9 @@ sub checkbox_tag {
 sub radio_button_tag {
   my ($self, $name, %attributes) = _hashify(2, @_);
 
-  _set_id_attribute(\%attributes, $name);
   $attributes{value}   = 1 unless exists $attributes{value};
-  $attributes{id}     .= '_' . $attributes{value};
+
+  _set_id_attribute(\%attributes, $name, 1);
   my $label            = delete $attributes{label};
 
   if ($attributes{checked}) {