/** * Handle delete event * * called by ilTaskScheduler * * @param ilECSSetting $a_server * @param int $a_econtent_id * @param int $a_mid * @return boolean */ public function handleDelete(ilECSSetting $a_server, $a_econtent_id, $a_mid = 0) { global $tree, $ilLog; include_once './Services/WebServices/ECS/classes/class.ilECSImport.php'; // there is no information about the original mid anymore. // Therefor delete any remote objects with given econtent id $obj_ids = ilECSImport::_lookupObjIds($a_server->getServerId(), $a_econtent_id); $ilLog->write(__METHOD__ . ': Received obj_ids ' . print_r($obj_ids, true)); foreach ($obj_ids as $obj_id) { $references = ilObject::_getAllReferences($obj_id); foreach ($references as $ref_id) { if ($tmp_obj = ilObjectFactory::getInstanceByRefId($ref_id, false)) { $ilLog->write(__METHOD__ . ': Deleting obsolete remote course: ' . $tmp_obj->getTitle()); $tmp_obj->delete(); $tree->deleteTree($tree->getNodeData($ref_id)); } unset($tmp_obj); } } return true; }
/** * Handle delete event * * called by ilTaskScheduler * * @param ilECSSetting $a_server * @param int $a_econtent_id * @param int $a_mid * @return boolean */ public function handleDelete(ilECSSetting $a_server, $a_econtent_id, $a_mid = 0) { global $tree, $ilLog; include_once './Services/WebServices/ECS/classes/class.ilECSImport.php'; // if mid is zero delete all obj_ids if (!$a_mid) { $obj_ids = ilECSImport::_lookupObjIds($a_server->getServerId(), $a_econtent_id); } else { $obj_ids = (array) ilECSImport::_lookupObjId($a_server->getServerId(), $a_econtent_id, $a_mid); } $ilLog->write(__METHOD__ . ': Received obj_ids ' . print_r($obj_ids, true)); foreach ($obj_ids as $obj_id) { $references = ilObject::_getAllReferences($obj_id); foreach ($references as $ref_id) { if ($tmp_obj = ilObjectFactory::getInstanceByRefId($ref_id, false)) { $ilLog->write(__METHOD__ . ': Deleting obsolete remote course: ' . $tmp_obj->getTitle()); $tmp_obj->delete(); $tree->deleteTree($tree->getNodeData($ref_id)); } unset($tmp_obj); } } return true; }