public function getRootObjects(IRelatedObject $object) { /* @var $object FileAsset */ $rootObjects = array(); $parentObject = null; switch ($object->getObjectType()) { case FileAssetObjectType::UI_CONF: $parentObject = uiConfPeer::retrieveByPK($object->getObjectId()); break; } if ($parentObject) { /* @var $parentObject IRelatedObjectPeer */ $peer = $parentObject->getPeer(); if ($peer instanceof IRelatedObjectPeer) { $parentRoots = $peer->getRootObjects($parentObject); if (count($parentRoots)) { $rootObjects = array_merge($rootObjects, $parentRoots); } } $rootObjects[] = $parentObject; } return $rootObjects; }