/** * @return ArrayList */ public function PageTypes() { $pageTypes = parent::PageTypes(); $result = new ArrayList(); $productClass = Object::getCustomClass("Product"); $productGroupClass = Object::getCustomClass("Product"); $acceptedClasses1 = ClassInfo::subclassesFor("ProductGroup"); $acceptedClasses1[$productClass] = $productClass; $acceptedClasses2 = ClassInfo::subclassesFor($productGroupClass); $acceptedClasses2[$productGroupClass] = $productGroupClass; $acceptedClasses = $acceptedClasses1 + $acceptedClasses2; foreach ($pageTypes as $type) { if (in_array($type->ClassName, $acceptedClasses)) { $result->push($type); } } return $result; }