From 86f17785116334cf6d62b3f2614a92431ce1ee2b Mon Sep 17 00:00:00 2001 From: Jake Bentvelzen Date: Sun, 16 Oct 2016 20:05:35 +1100 Subject: [PATCH] fix(GridFieldAddNewMultiClass): Fix bug where class doesn't exist. (ie. ClassInfo says the class exists, but PHP itself doesn't, since ClassInfo is based on parsed tokens) --- code/GridFieldAddNewMultiClass.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/code/GridFieldAddNewMultiClass.php b/code/GridFieldAddNewMultiClass.php index a9cc8b0..e2477a6 100755 --- a/code/GridFieldAddNewMultiClass.php +++ b/code/GridFieldAddNewMultiClass.php @@ -96,12 +96,13 @@ class GridFieldAddNewMultiClass implements GridField_HTMLProvider, GridField_URL foreach($classes as $class => $title) { if(!is_string($class)) { $class = $title; - $is_abstract = (($reflection = new ReflectionClass($class)) && $reflection->isAbstract()); - if (!$is_abstract) { - $title = singleton($class)->i18n_singular_name(); - } - } else { - $is_abstract = (($reflection = new ReflectionClass($class)) && $reflection->isAbstract()); + } + if (!class_exists($class)) { + continue; + } + $is_abstract = (($reflection = new ReflectionClass($class)) && $reflection->isAbstract()); + if (!$is_abstract && $class === $title) { + $title = singleton($class)->i18n_singular_name(); } if ($ancestor_to_hide = Config::inst()->get($class, 'hide_ancestor', Config::FIRST_SET)) {