From ac1c1dabc8e2dd47bac5bc6b372cefec5466f14f Mon Sep 17 00:00:00 2001 From: sinan-evanshunt Date: Thu, 6 Sep 2018 09:43:05 -0600 Subject: [PATCH 1/2] Update WidgetAreaEditor.php --- code/form/WidgetAreaEditor.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/code/form/WidgetAreaEditor.php b/code/form/WidgetAreaEditor.php index 8c7363b..1bb9cdf 100644 --- a/code/form/WidgetAreaEditor.php +++ b/code/form/WidgetAreaEditor.php @@ -50,15 +50,17 @@ class WidgetAreaEditor extends FormField unset($classes[0]); } - foreach ($classes as $class) { - $available = Config::inst()->get($class, 'only_available_in'); - - if (!empty($available) && is_array($available)) { - if (in_array($this->Name, $available)) { + if( isset($classes) ){ + foreach ($classes as $class) { + $available = Config::inst()->get($class, 'only_available_in'); + + if (!empty($available) && is_array($available)) { + if (in_array($this->Name, $available)) { + $widgets->push(singleton($class)); + } + } else { $widgets->push(singleton($class)); } - } else { - $widgets->push(singleton($class)); } } } From 4c79f68b023c34a969e965e831606ea17743730f Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Mon, 10 Sep 2018 17:00:15 +0200 Subject: [PATCH 2/2] FIX Cast subclassesFor as array and remove isset nesting --- code/form/WidgetAreaEditor.php | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/code/form/WidgetAreaEditor.php b/code/form/WidgetAreaEditor.php index 1bb9cdf..d5139f7 100644 --- a/code/form/WidgetAreaEditor.php +++ b/code/form/WidgetAreaEditor.php @@ -42,29 +42,27 @@ class WidgetAreaEditor extends FormField $widgets= new ArrayList(); foreach ($this->widgetClasses as $widgetClass) { - $classes = ClassInfo::subclassesFor($widgetClass); + $classes = ClassInfo::subclassesFor($widgetClass) ?: array(); if (isset($classes['Widget'])) { unset($classes['Widget']); } elseif (isset($classes[0]) && $classes[0] == 'Widget') { unset($classes[0]); } - - if( isset($classes) ){ - foreach ($classes as $class) { - $available = Config::inst()->get($class, 'only_available_in'); - if (!empty($available) && is_array($available)) { - if (in_array($this->Name, $available)) { - $widgets->push(singleton($class)); - } - } else { + foreach ($classes as $class) { + $available = Config::inst()->get($class, 'only_available_in'); + + if (!empty($available) && is_array($available)) { + if (in_array($this->Name, $available)) { $widgets->push(singleton($class)); } + } else { + $widgets->push(singleton($class)); } } } - + return $widgets; }