/** * @param Object_Abstract $target * @param Object_Abstract $source * @return Object_Abstract copied object */ public function copyAsChild($target, $source) { //load properties $source->getProperties(); //load all in case of lazy loading fields self::loadAllObjectFields($source); $new = clone $source; $new->o_id = null; $new->setChilds(null); $new->setKey(Element_Service::getSaveCopyName("object", $new->getKey(), $target)); $new->setParentId($target->getId()); $new->setUserOwner($this->_user->getId()); $new->setUserModification($this->_user->getId()); $new->setResource(null); $new->setLocked(false); $new->save(); $this->updateChilds($target, $new); return $new; }