/** * Lookup mapping status * @param int $a_server_id * @param int $a_tree_id * @return int */ public static function lookupMappingStatus($a_server_id, $a_mid, $a_tree_id) { include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSNodeMappingAssignments.php'; if (ilECSNodeMappingAssignments::hasAssignments($a_server_id, $a_mid, $a_tree_id)) { if (ilECSNodeMappingAssignments::isWholeTreeMapped($a_server_id, $a_mid, $a_tree_id)) { return self::MAPPED_WHOLE_TREE; } return self::MAPPED_MANUAL; } return self::MAPPED_UNMAPPED; }
/** * Synchronize tree * * @return boolean */ public function sync() { include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSNodeMappingAssignments.php'; $this->default_settings = ilECSNodeMappingAssignments::lookupSettings($this->getServer()->getServerId(), $this->mid, $this->tree_id, 0); // return if setting is false => no configuration done if (!$this->getDefaultSettings()) { $GLOBALS['ilLog']->write(__METHOD__ . ': No directory allocation settings. Aborting'); return true; } // lookup obj id of root node include_once './Services/WebServices/ECS/classes/Tree/class.ilECSCmsData.php'; $root_obj_id = ilECSCmsTree::lookupRootId($this->tree_id); $this->syncNode($root_obj_id, 0); // Tree structure is up to date, now check node movements $this->checkTreeUpdates($root_obj_id); return true; }
public static function updateStatus($a_server_id, $a_mid, $a_tree_id) { // Set all status to pending unmapped self::writeAllStatus($a_server_id, $a_mid, $a_tree_id, self::MAPPING_UNMAPPED); // Set mapped for mapped and their descendent include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSNodeMappingAssignments.php'; include_once './Services/WebServices/ECS/classes/Tree/class.ilECSCmsTree.php'; foreach (ilECSNodeMappingAssignments::lookupAssignmentIds($a_server_id, $a_mid, $a_tree_id) as $assignment) { $cmsTree = new ilECSCmsTree($a_tree_id); $subIds = self::lookupCmsIds(array_merge($cmsTree->getSubTreeIds($assignment), array($assignment))); self::writeStatus($a_server_id, $a_mid, $a_tree_id, $subIds, self::MAPPING_MAPPED); } }
/** * Do mapping */ protected function dMap() { if (!$_POST['lnodes']) { ilUtil::sendFailure($this->lng->txt('select_one'), true); $this->ctrl->redirect($this, 'dEditTree'); } $ref_id = end($_POST['lnodes']); include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSNodeMappingAssignments.php'; ilECSNodeMappingAssignments::deleteDisconnectableMappings($this->getServer()->getServerId(), $this->getMid(), (int) $_REQUEST['tid'], $ref_id); $nodes = (array) $_POST['rnodes']; $nodes = (array) array_reverse($nodes); include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSNodeMappingAssignment.php'; include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSNodeMappingAssignments.php'; include_once './Services/WebServices/ECS/classes/Tree/class.ilECSCmsTree.php'; foreach ($nodes as $cms_id) { $assignment = new ilECSNodeMappingAssignment($this->getServer()->getServerId(), $this->getMid(), (int) $_REQUEST['tid'], (int) $cms_id); $assignment->setRefId($ref_id); $assignment->setObjId(ilObject::_lookupObjId($ref_id)); $assignment->enablePositionUpdate(false); $assignment->enableTreeUpdate(false); $assignment->enableTitleUpdate(ilECSNodeMappingAssignments::lookupDefaultTitleUpdate($this->getServer()->getServerId(), $this->getMid(), (int) $_REQUEST['tid'])); $assignment->update(); // Delete subitems mappings for cms subtree $cmsTree = new ilECSCmsTree((int) $_REQUEST['tid']); $childs = $cmsTree->getSubTreeIds($cms_id); ilECSNodeMappingAssignments::deleteMappingsByCsId($this->getServer()->getServerId(), $this->getMid(), (int) $_REQUEST['tid'], $childs); } ilECSCmsData::updateStatus($this->getServer()->getServerId(), $this->getMid(), (int) $_REQUEST['tid']); // Save parameter cid $this->ctrl->setParameter($this, 'lid', (int) $ref_id); ilUtil::sendSuccess($this->lng->txt('settings_saved'), true); $this->ctrl->redirect($this, 'dEditTree'); }
/** * Handle delete * @param ilECSSetting $server * @param type $a_content_id */ public function handleDelete(ilECSSetting $server, $a_content_id) { include_once './Services/WebServices/ECS/classes/Tree/class.ilECSCmsData.php'; $data = new ilECSCmsData(); $data->setServerId($this->getServer()->getServerId()); $data->setMid($this->mid); $data->setTreeId($a_content_id); $data->deleteTree(); include_once './Services/WebServices/ECS/classes/Tree/class.ilECSCmsTree.php'; $tree = new ilECSCmsTree($a_content_id); $tree->deleteTree($tree->getNodeData(ilECSCmsTree::lookupRootId($a_content_id))); include_once './Services/WebServices/ECS/classes/Mapping/class.ilECSNodeMappingAssignments.php'; ilECSNodeMappingAssignments::deleteMappings($this->getServer()->getServerId(), $this->mid, $a_content_id); return true; }