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();
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;
}