L/P.select_tag: Collection, die aus einem leeren Wert besteht, ignorieren
authorMoritz Bunkus <m.bunkus@linet.de>
Mon, 16 Nov 2020 16:15:41 +0000 (17:15 +0100)
committerMoritz Bunkus <m.bunkus@linet.de>
Mon, 16 Nov 2020 16:15:41 +0000 (17:15 +0100)
Unter Umständen kann es durch wantarray & Durchschieben in Templates
passieren, dass der $collection-Parameter nicht leer ist (obwohl er
leer sein sollte), und statt dessen ein leerer String ist. Bisher
wurde daraus eine Liste mit einem leeren Eintrag, auch wenn
`with_empty` nicht angegeben war.

Ab sofort solche Einträge einfach als leere Liste werten.

SL/Presenter/Tag.pm

index 3129437..5b261e6 100644 (file)
@@ -111,6 +111,8 @@ sub select_tag {
 
   _set_id_attribute(\%attributes, $name);
 
+  $collection         = [] if defined($collection) && !ref($collection) && ($collection eq '');
+
   my $value_key       = delete($attributes{value_key})   || 'id';
   my $title_key       = delete($attributes{title_key})   || $value_key;
   my $default_key     = delete($attributes{default_key}) || 'selected';