GetModels: Disablen von Plugins auch für undef
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 3 Jul 2015 08:23:14 +0000 (10:23 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 3 Jul 2015 08:23:14 +0000 (10:23 +0200)
Die Dokumentation sagt Folgendes zum Deaktivieren von Plugins:

> Configuration for plugins. If the option for any plugin is omitted,
> it defaults to enabled and is configured by default. Giving a
> falsish value as first argument will disable the plugin.

Das bisherige Verhalten war aber, dass bei Übergabe von
undef (z.B. »paginated => undef«) die Standardeinstellungen gegriffen
haben.

SL/Controller/Helper/GetModels.pm

index 861834b..cb73ab3 100644 (file)
@@ -95,7 +95,9 @@ sub init {
 
   my @plugins;
   for my $plugin (qw(filtered sorted paginated)) {
-    next unless my $spec = delete $params{$plugin} // {};
+    next if exists($params{$plugin}) && !$params{$plugin};
+
+    my $spec         = delete $params{$plugin} // {};
     my $plugin_class = "SL::Controller::Helper::GetModels::" . ucfirst $plugin;
     push @plugins, $self->$plugin($plugin_class->new(%$spec, get_models => $self));
   }