From f6a8976121c27e076afd012f3451651a7fadef56 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Thu, 1 Apr 2010 02:22:05 +0000 Subject: [PATCH] BUGFIX Fixed SiteTree::page_type_classes() removal of base class (was broken if database driver returned classes in arbitrary order, e.g. in Postgres) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@102026 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- core/model/SiteTree.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/model/SiteTree.php b/core/model/SiteTree.php index d9c67bc7a..62a7662f2 100755 --- a/core/model/SiteTree.php +++ b/core/model/SiteTree.php @@ -301,7 +301,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid */ public static function page_type_classes() { $classes = ClassInfo::getValidSubClasses(); - array_shift($classes); + if($baseClassIndex = array_search('SiteTree', $classes)) unset($classes[$baseClassIndex]); + $kill_ancestors = array(); // figure out if there are any classes we don't want to appear @@ -324,7 +325,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid unset($classes[$idx]); } } - + return $classes; }