/** * @param Concrete $object * @return AbstractObject */ public static function hasInheritableParentObject(Concrete $object) { if ($object->getClass()->getAllowInherit()) { if ($object->getParent() instanceof AbstractObject) { $parent = $object->getParent(); while ($parent && $parent->getType() == "folder") { $parent = $parent->getParent(); } if ($parent && ($parent->getType() == "object" || $parent->getType() == "variant")) { if ($parent->getClassId() == $object->getClassId()) { return $parent; } } } } }