FIX Cast subclassesFor as array and remove isset nesting

This commit is contained in:
Robbie Averill 2018-09-10 17:00:15 +02:00
parent ac1c1dabc8
commit 4c79f68b02
1 changed files with 9 additions and 11 deletions

View File

@ -42,29 +42,27 @@ class WidgetAreaEditor extends FormField
$widgets= new ArrayList(); $widgets= new ArrayList();
foreach ($this->widgetClasses as $widgetClass) { foreach ($this->widgetClasses as $widgetClass) {
$classes = ClassInfo::subclassesFor($widgetClass); $classes = ClassInfo::subclassesFor($widgetClass) ?: array();
if (isset($classes['Widget'])) { if (isset($classes['Widget'])) {
unset($classes['Widget']); unset($classes['Widget']);
} elseif (isset($classes[0]) && $classes[0] == 'Widget') { } elseif (isset($classes[0]) && $classes[0] == 'Widget') {
unset($classes[0]); unset($classes[0]);
} }
if( isset($classes) ){
foreach ($classes as $class) {
$available = Config::inst()->get($class, 'only_available_in');
if (!empty($available) && is_array($available)) { foreach ($classes as $class) {
if (in_array($this->Name, $available)) { $available = Config::inst()->get($class, 'only_available_in');
$widgets->push(singleton($class));
} if (!empty($available) && is_array($available)) {
} else { if (in_array($this->Name, $available)) {
$widgets->push(singleton($class)); $widgets->push(singleton($class));
} }
} else {
$widgets->push(singleton($class));
} }
} }
} }
return $widgets; return $widgets;
} }