/** * Constructor */ public function __construct($a_parent_obj, $a_parent_cmd, $a_slm) { global $ilUser; $this->slm = $a_slm; $tree = new ilTree($this->slm->getId()); $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node'); $tree->setTreeTablePK("slm_id"); parent::__construct("scorm_ed_exp", $a_parent_obj, $a_parent_cmd, $tree); //$this->setTypeWhiteList(array("du", "chap", "page")); $this->setSkipRootNode(false); $this->setAjax(false); }
function __construct() { parent::__construct(1); // only one skill tree, with ID 1 $this->setTreeTablePK("skl_tree_id"); $this->setTableNames('skl_tree', 'skl_tree_node'); }
public function __construct($a_tree_id) { parent::__construct($a_tree_id, self::lookupRootId($a_tree_id)); $this->setObjectTablePK('obj_id'); $this->setTableNames('ecs_cms_tree', 'ecs_cms_data'); $this->useCache(false); }
/** * Constructor * * @param integer $a_tree_id tree id */ private function __construct($a_tree_id) { parent::ilTree($a_tree_id); $this->setTableNames('lm_tree', 'lm_data'); $this->setTreeTablePK("lm_id"); $this->useCache(true); }
public function parentHasSeqTemplate($a_slm_id) { require_once "./Modules/Scorm2004/classes/seq_editor/class.ilSCORM2004SeqTemplate.php"; global $ilDB, $ilLog; $has_template = false; $mtree = new ilTree($a_slm_id); $mtree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node'); $mtree->setTreeTablePK("slm_id"); //get all parents for current node $parents = $this->getParentsForNode($a_parents = array(), $this->id); for ($i = 0; $i < count($parents); $i++) { $template = ilSCORM2004SeqTemplate::templateForChapter($parents[$i]); if ($template) { $has_template = true; break; } } return $has_template; }
public function getPossibleItems($a_ref_id) { if (!isset(self::$possible_items[$a_ref_id])) { $obj_id = ilObject::_lookupObjectId($a_ref_id); $items = array(); // only top-level chapters include_once "Services/MetaData/classes/class.ilMDEducational.php"; $tree = new ilTree($obj_id); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); foreach ($tree->getChilds($tree->readRootId()) as $child) { if ($child["type"] == "st") { $child["tlt"] = ilMDEducational::_getTypicalLearningTimeSeconds($obj_id, $child["obj_id"]); $items[$child["obj_id"]] = $child; } } self::$possible_items[$a_ref_id] = $items; } return self::$possible_items[$a_ref_id]; }
public function __construct($a_tree_id, $a_root_id = 0) { parent::__construct($a_tree_id, $a_root_id); $this->setTableNames('tree_workspace', 'object_data', 'object_reference_ws'); $this->setTreeTablePK('tree'); $this->setObjectTablePK('obj_id'); $this->setReferenceTablePK('wsp_id'); // ilTree sets it to ROOT_FOLDER_ID if not given... if (!$a_root_id) { $this->readRootId(); } }
public function __construct() { parent::__construct(self::ROOT_UNIT_ID); $this->tree_id = self::TREE_ID; $this->table_tree = 'org_unit_tree'; $this->table_obj_data = 'org_unit_data'; $this->table_obj_reference = ''; $this->tree_pk = 'tree'; $this->obj_pk = 'ou_id'; $this->ref_pk = ''; $this->gap = 0; }
protected function addAdminLocatorItems() { $path = $this->tree->getPathFull($_GET["ref_id"], ilObjOrgUnit::getRootOrgRefId()); // add item for each node on path foreach ((array) $path as $key => $row) { if ($row["title"] == "__OrgUnitAdministration") { $row["title"] = $this->lng->txt("objs_orgu"); } $this->ctrl->setParameterByClass("ilobjorgunitgui", "ref_id", $row["child"]); $this->ilLocator->addItem($row["title"], $this->ctrl->getLinkTargetByClass("ilobjorgunitgui", "view"), ilFrameTargetInfo::_getFrame("MainContent"), $row["child"]); $this->ctrl->setParameterByClass("ilobjorgunitgui", "ref_id", $_GET["ref_id"]); } }
public function __construct($a_tree_id, $a_root_id = 0) { parent::__construct($a_tree_id, $a_root_id); $this->table_tree = 'tree_workspace'; $this->table_obj_data = 'object_data'; $this->table_obj_reference = 'object_reference_ws'; $this->ref_pk = 'wsp_id'; $this->obj_pk = 'obj_id'; $this->tree_pk = 'tree'; // ilTree sets it to ROOT_FOLDER_ID if not given... if (!$a_root_id) { $this->root_id = $this->readRootId(); } }
/** * Call this before using getHTML() * @access public * @return ilMailFolderTableGUI * @final * */ public final function prepareHTML() { global $ilUser; $this->addColumn('', '', '1px', true); $this->addColumn($this->lng->txt('personal_picture'), '', '10%'); if ($this->isDraftFolder() || $this->isSentFolder()) { $this->addColumn($this->lng->txt('recipient'), 'rcp_to', '25%'); } else { $this->addColumn($this->lng->txt('sender'), 'from', '25%'); } $this->addColumn($this->lng->txt('subject'), 'm_subject', '40%'); $this->addColumn($this->lng->txt('date'), 'send_time', '20%'); // init folder data $mtree = new ilTree($ilUser->getId()); $mtree->setTableNames('mail_tree', 'mail_obj_data'); $this->_folderNode = $mtree->getNodeData($this->_currentFolderId); // command buttons $this->initCommandButtons(); // mail actions $this->initMultiCommands($this->_parentObject->mbox->getActions($this->_currentFolderId)); // fetch table data $this->fetchTableData(); return $this; }
/** * @param integer $poolId * @return string */ public function getQuestionPoolPathString($poolId) { $nodePath = $this->tree->getNodePath(current(ilObject::_getAllReferences($poolId))); $questionPoolPathString = ''; $i = 0; $j = count($nodePath) - 2; foreach ($nodePath as $node) { if ($i > 0) { $questionPoolPathString .= ' > '; } $questionPoolPathString .= $node['title']; if ($i == $j) { break; } $i++; } return $questionPoolPathString; }
/** * Create new admin object node * * @param string $a_id * @param string $a_title */ public static function addAdminNode($a_obj_type, $a_title) { global $ilDB, $tree; if (self::getObjectTypeId($a_obj_type)) { return; } $obj_type_id = self::addNewType($a_obj_type, $a_title); $obj_id = $ilDB->nextId('object_data'); $ilDB->manipulate("INSERT INTO object_data " . "(obj_id, type, title, description, owner, create_date, last_update) VALUES (" . $ilDB->quote($obj_id, "integer") . "," . $ilDB->quote($a_obj_type, "text") . "," . $ilDB->quote($a_title, "text") . "," . $ilDB->quote($a_title, "text") . "," . $ilDB->quote(-1, "integer") . "," . $ilDB->now() . "," . $ilDB->now() . ")"); $ref_id = $ilDB->nextId('object_reference'); $ilDB->manipulate("INSERT INTO object_reference " . "(obj_id, ref_id) VALUES (" . $ilDB->quote($obj_id, "integer") . "," . $ilDB->quote($ref_id, "integer") . ")"); // put in tree $tree = new ilTree(ROOT_FOLDER_ID); $tree->insertNode($ref_id, SYSTEM_FOLDER_ID); $rbac_ops = array(self::RBAC_OP_EDIT_PERMISSIONS, self::RBAC_OP_VISIBLE, self::RBAC_OP_READ, self::RBAC_OP_WRITE); self::addRBACOperations($obj_type_id, $rbac_ops); }
/** * removes objects from system * * @access private * @param array list of objects * @return boolean */ function purgeObjects($a_nodes) { global $ilias, $ilLog; // Get purge limits $count_limit = $ilias->account->getPref("systemcheck_count_limit"); if (!is_numeric($count_limit) || $count_limit < 0) { $count_limit = count($a_nodes); } $timestamp_limit = time(); $age_limit = $ilias->account->getPref("systemcheck_age_limit"); if (is_numeric($age_limit) && $age_limit > 0) { $timestamp_limit -= $age_limit * 60 * 60 * 24; } $type_limit = $ilias->account->getPref("systemcheck_type_limit"); if ($type_limit) { $type_limit = trim($type_limit); if (strlen($type_limit) == 0) { $type_limit = null; } } // handle wrong input if (!is_array($a_nodes)) { $this->throwError(INVALID_PARAM, WARNING, DEBUG); return false; } // start delete process $this->writeScanLogLine("action\tref_id\tobj_id\ttype\telapsed\ttitle"); $count = 0; foreach ($a_nodes as $node) { if ($type_limit && $node['type'] != $type_limit) { $this->writeScanLogLine("skip\t" . $node['child'] . "\t\t" . $node['type'] . "\t\t" . $node['title']); continue; } $count++; if ($count > $count_limit) { $this->writeScanLogLine("Stopped purging after " . ($count - 1) . " objects, because count limit was reached: " . $count_limit); break; } if ($node["deleted_timestamp"] > $timestamp_limit) { $this->writeScanLogLine("Stopped purging after " . ($count - 1) . " objects, because timestamp limit was reached: " . date("c", $timestamp_limit)); continue; } $ref_id = $node["child"] ? $node["child"] : $node["ref_id"]; $node_obj =& $ilias->obj_factory->getInstanceByRefId($ref_id, false); if ($node_obj === false) { $this->invalid_objects[] = $node; continue; } $message = sprintf('%s::purgeObjects(): Removing object (id:%s ref:%s)', get_class($this), $ref_id, $node_obj->getId()); $ilLog->write($message, $ilLog->WARNING); $startTime = microtime(true); $node_obj->delete(); ilTree::_removeEntry($node["tree"], $ref_id); $endTime = microtime(true); $this->writeScanLogLine("purged\t" . $ref_id . "\t" . $node_obj->getId() . "\t" . $node['type'] . "\t" . round($endTime - $startTime, 1) . "\t" . $node['title']); } $this->findInvalidChilds(); $this->removeInvalidChilds(); return true; }
/** * get path ids (adjacenca and nested set) * @group IL_Init * @param * @return */ public function testAllOthers() { $tree = new ilTree(ROOT_FOLDER_ID); $d = $tree->getDepth(24); $this->assertEquals($d, 4); $node = $tree->getNodeData(24); $this->assertEquals($node['title'], 'Public chat'); $bool = $tree->isInTree(24); $this->assertEquals($bool, true); $bool = $tree->isInTree(24242424); $this->assertEquals($bool, false); /* ref_id 14 => obj_id 98 does not exist $node = $tree->getParentNodeData(24); $this->assertEquals($node['title'],'Chat-Server'); */ $bool = $tree->isGrandChild(9, 24); $this->assertEquals($bool, 1); /* see above $node = $tree->getNodeDataByType('chac'); $this->assertEquals($node[0]['title'],'Chat-Server'); */ $bool = $tree->isDeleted(24); $this->assertEquals($bool, false); $id = $tree->getParentId(24); $this->assertEquals($id, 14); $lft = $tree->getLeftValue(24); $this->assertEquals($lft, 14); $seq = $tree->getChildSequenceNumber($tree->getNodeData(24)); $this->assertEquals($seq, 1); $tree->getNodePath(9, 1); $max_depth = $tree->getMaximumDepth(); // Round trip $tree = new ilTree(ROOT_FOLDER_ID); $suc = $tree->fetchSuccessorNode(16); // cals $cals = $tree->fetchPredecessorNode($suc['child']); $this->assertEquals($cals['child'], 16); }
/** * Delete chapters/scos/pages */ function confirmedDelete($a_redirect = true) { global $ilCtrl; $tree = new ilTree($this->object->getId()); $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node'); $tree->setTreeTablePK("slm_id"); // delete all selected objects include_once "./Modules/Scorm2004/classes/class.ilSCORM2004NodeFactory.php"; foreach ($_POST["id"] as $id) { if ($id != IL_FIRST_NODE) { $obj = ilSCORM2004NodeFactory::getInstance($this->object, $id, false); $node_data = $tree->getNodeData($id); if (is_object($obj)) { $obj->setSLMId($this->object->getId()); /*include_once("./Services/History/classes/class.ilHistory.php"); ilHistory::_createEntry($this->object->getId(), "delete_".$obj->getType(), array(ilLMObject::_lookupTitle($id), $id), $this->object->getType());*/ $obj->delete(); } if ($tree->isInTree($id)) { $tree->deleteTree($node_data); } } } // check the tree // $this->object->checkTree(); // feedback ilUtil::sendInfo($this->lng->txt("info_deleted"), true); if ($a_redirect) { $ilCtrl->redirect($this, "showOrganization"); } }
?> <#2745> <?php // media object and media pool settings // register new object type 'mobs' for media pool and media object settings $id = $ilDB->nextId("object_data"); $ilDB->manipulateF("INSERT INTO object_data (obj_id, type, title, description, owner, create_date, last_update) " . "VALUES (%s, %s, %s, %s, %s, %s, %s)", array("integer", "text", "text", "text", "integer", "timestamp", "timestamp"), array($id, "typ", "mobs", "Media Object/Pool settings", -1, ilUtil::now(), ilUtil::now())); $typ_id = $id; // create object data entry $id = $ilDB->nextId("object_data"); $ilDB->manipulateF("INSERT INTO object_data (obj_id, type, title, description, owner, create_date, last_update) " . "VALUES (%s, %s, %s, %s, %s, %s, %s)", array("integer", "text", "text", "text", "integer", "timestamp", "timestamp"), array($id, "mobs", "__MediaObjectSettings", "Media Object/Pool Settings", -1, ilUtil::now(), ilUtil::now())); // create object reference entry $ref_id = $ilDB->nextId('object_reference'); $res = $ilDB->manipulateF("INSERT INTO object_reference (ref_id, obj_id) VALUES (%s, %s)", array("integer", "integer"), array($ref_id, $id)); // put in tree $tree = new ilTree(ROOT_FOLDER_ID); $tree->insertNode($ref_id, SYSTEM_FOLDER_ID); // add rbac operations // 1: edit_permissions, 2: visible, 3: read, 4:write $ilDB->manipulateF("INSERT INTO rbac_ta (typ_id, ops_id) VALUES (%s, %s)", array("integer", "integer"), array($typ_id, 1)); $ilDB->manipulateF("INSERT INTO rbac_ta (typ_id, ops_id) VALUES (%s, %s)", array("integer", "integer"), array($typ_id, 2)); $ilDB->manipulateF("INSERT INTO rbac_ta (typ_id, ops_id) VALUES (%s, %s)", array("integer", "integer"), array($typ_id, 3)); $ilDB->manipulateF("INSERT INTO rbac_ta (typ_id, ops_id) VALUES (%s, %s)", array("integer", "integer"), array($typ_id, 4)); ?> <#2746> <?php $ilCtrlStructureReader->getStructure(); ?> <#2747> <?php $ilDB->createTable("mep_item", array('id' => array('type' => 'integer', 'length' => 4, 'notnull' => true), 'type' => array('type' => 'text', 'length' => 10, 'notnull' => false), 'title' => array('type' => 'text', 'length' => 128, 'notnull' => false), 'foreign_id' => array('type' => 'integer', 'length' => 4, 'notnull' => false)));
/** * delete page object or structure objects * * @param int $a_parent_subobj_id id of parent object (structure object) * of the objects, that should be deleted * (or no parent object id for top level) */ function confirmedDelete($a_parent_subobj_id = 0) { $tree = new ilTree($this->object->getId()); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); // check number of objects if (!$_POST["id"]) { $this->ilias->raiseError($this->lng->txt("no_checkbox"), $this->ilias->error_obj->MESSAGE); } // delete all selected objects foreach ($_POST["id"] as $id) { if ($id != IL_FIRST_NODE) { $obj =& ilLMObjectFactory::getInstance($this->object, $id, false); $node_data = $tree->getNodeData($id); if (is_object($obj)) { $obj->setLMId($this->object->getId()); include_once "./Services/History/classes/class.ilHistory.php"; ilHistory::_createEntry($this->object->getId(), "delete_" . $obj->getType(), array(ilLMObject::_lookupTitle($id), $id), $this->object->getType()); $obj->delete(); } if ($tree->isInTree($id)) { $tree->deleteTree($node_data); } } } // check the tree $this->object->checkTree(); // feedback ilUtil::sendSuccess($this->lng->txt("info_deleted"), true); if ($a_parent_subobj_id == 0) { $this->ctrl->redirect($this, $_GET["backcmd"]); } }
/** * split page to next page at hierarchical id * * the main reason for this method being static is that a lm page * object is not available within ilPageContentGUI where this method * is called */ function _splitPageNext($a_page_id, $a_pg_parent_type, $a_hier_id) { // get content object (learning module / digilib book) $lm_id = ilLMObject::_lookupContObjID($a_page_id); $type = ilObject::_lookupType($lm_id, false); switch ($type) { case "lm": include_once "./Modules/LearningModule/classes/class.ilObjLearningModule.php"; $cont_obj = new ilObjLearningModule($lm_id, false); break; case "dbk": include_once "./Modules/LearningModule/classes/class.ilObjDlBook.php"; $cont_obj = new ilObjDlBook($lm_id, false); break; } $tree = new ilTree($cont_obj->getId()); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); $source_lm_page =& new ilLMPageObject($cont_obj, $a_page_id); $source_page =& $source_lm_page->getPageObject(); // get next page $succ = $tree->fetchSuccessorNode($a_page_id, "pg"); if ($succ["child"] > 0) { $target_lm_page =& new ilLMPageObject($cont_obj, $succ["child"]); $target_page =& $target_lm_page->getPageObject(); $target_page->buildDom(); $target_page->addHierIds(); // move nodes to target page $source_page->buildDom(); $source_page->addHierIds(); ilLMPage::_moveContentAfterHierId($source_page, $target_page, $a_hier_id); //$source_page->deleteContentFromHierId($a_hier_id); return $succ["child"]; } }
public function switchTree() { $set = new ilSetting('common'); $type = $set->get('main_tree_impl', 'ns') == 'ns' ? 'ns' : 'mp'; if ($type == 'ns' and $_POST['tree_impl_type'] == 'mp') { // To mp include_once './Services/Tree/classes/class.ilMaterializedPathTree.php'; ilMaterializedPathTree::createFromParentReleation(); $set->set('main_tree_impl', 'mp'); } elseif ($type == 'mp' and $_POST['tree_impl_type'] == 'ns') { include_once './Services/Tree/classes/class.ilTree.php'; $GLOBALS['ilSetting'] = $set; $tree = new ilTree(1); $tree->renumber(1); $set->set('main_tree_impl', 'ns'); } ilUtil::sendInfo($this->lng->txt("tree_implementation_switched"), true); $this->displayTools(); }
/** * get last accessed page * * @param int $a_obj_id content object id * @param int $a_user_id user object id */ function _getLastAccessedPage($a_ref_id, $a_user_id = "") { global $ilDB, $ilUser; if ($a_user_id == "") { $a_user_id = $ilUser->getId(); } if (isset(self::$lo_access[$a_ref_id])) { $acc_rec["obj_id"] = self::$lo_access[$a_ref_id]; } else { $q = "SELECT * FROM lo_access WHERE " . "usr_id = " . $ilDB->quote($a_user_id, "integer") . " AND " . "lm_id = " . $ilDB->quote($a_ref_id, "integer"); $acc_set = $ilDB->query($q); $acc_rec = $ilDB->fetchAssoc($acc_set); } if ($acc_rec["obj_id"] > 0) { $lm_id = ilObject::_lookupObjId($a_ref_id); $mtree = new ilTree($lm_id); $mtree->setTableNames('lm_tree', 'lm_data'); $mtree->setTreeTablePK("lm_id"); if ($mtree->isInTree($acc_rec["obj_id"])) { return $acc_rec["obj_id"]; } } return 0; }
function exportXMLPageObjects($a_target_dir, &$a_xml_writer, $a_inst, &$expLog) { global $ilBench; include_once "./Modules/Scorm2004/classes/class.ilSCORM2004PageNode.php"; include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Page.php"; $tree = new ilTree($this->slm_id); $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node'); $tree->setTreeTablePK("slm_id"); $pages = $tree->getSubTree($tree->getNodeData($this->getId()), true, 'page'); foreach ($pages as $page) { $expLog->write(date("[y-m-d H:i:s] ") . "Page Object " . $page["obj_id"]); // export xml to writer object $page_obj = new ilSCORM2004Page($page["obj_id"]); $page_obj->exportXML($a_xml_writer, "normal", $a_inst); //collect media objects $mob_ids = $page_obj->getMediaObjectIds(); foreach ($mob_ids as $mob_id) { $this->mob_ids[$mob_id] = $mob_id; } // collect all file items $file_ids = $page_obj->getFileItemIds(); foreach ($file_ids as $file_id) { $this->file_ids[$file_id] = $file_id; } include_once "./Services/COPage/classes/class.ilPCQuestion.php"; $q_ids = ilPCQuestion::_getQuestionIdsForPage("sahs", $page["obj_id"]); if (count($q_ids) > 0) { include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php"; foreach ($q_ids as $q_id) { $q_obj =& assQuestion::_instanciateQuestion($q_id); $qti_file = fopen($a_target_dir . "/qti_" . $q_id . ".xml", "w"); fwrite($qti_file, $q_obj->toXML()); fclose($qti_file); } } unset($page_obj); } }
/** * export (sub)structure objects of structure object (see ilias_co.dtd) * * @param object $a_xml_writer ilXmlWriter object that receives the * xml data */ static function getChapterList($a_lm_id) { $tree = new ilTree($a_lm_id); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); $chapters = array(); $ndata = $tree->getNodeData($tree->readRootId()); $childs = $tree->getSubtree($ndata); foreach ($childs as $child) { if ($child["type"] == "st") { $chapters[] = $child; } } return $chapters; }
/** * presentation title doesn't have to be page title, it may be * chapter title + page title or chapter title only, depending on settings * * @param string $a_mode IL_CHAPTER_TITLE | IL_PAGE_TITLE | IL_NO_HEADER */ function _getPresentationTitle($a_pg_id, $a_mode = IL_CHAPTER_TITLE, $a_include_numbers = false, $a_time_scheduled_activation = false, $a_force_content = false) { global $ilDB; // select $query = "SELECT * FROM lm_data WHERE obj_id = " . $ilDB->quote($a_pg_id, "integer"); $pg_set = $ilDB->query($query); $pg_rec = $ilDB->fetchAssoc($pg_set); if ($a_mode == IL_NO_HEADER && !$a_force_content) { return ""; } $tree = new ilTree($pg_rec["lm_id"]); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); if ($a_mode == IL_PAGE_TITLE) { $nr = ""; return $nr . $pg_rec["title"]; } if ($tree->isInTree($pg_rec["obj_id"])) { $pred_node = $tree->fetchPredecessorNode($pg_rec["obj_id"], "st"); $childs = $tree->getChildsByType($pred_node["obj_id"], "pg"); $cnt_str = ""; if (count($childs) > 1) { $cnt = 0; foreach ($childs as $child) { include_once "./Services/COPage/classes/class.ilPageObject.php"; $active = ilPageObject::_lookupActive($child["obj_id"], ilObject::_lookupType($pg_rec["lm_id"]), $a_time_scheduled_activation); if (!$active) { $act_data = ilPageObject::_lookupActivationData((int) $child["obj_id"], ilObject::_lookupType($pg_rec["lm_id"])); if ($act_data["show_activation_info"] && ilUtil::now() < $act_data["activation_start"]) { $active = true; } } if ($child["type"] != "pg" || $active) { $cnt++; } if ($child["obj_id"] == $pg_rec["obj_id"]) { $cur_cnt = $cnt; } } if ($cnt > 1) { $cnt_str = " (" . $cur_cnt . "/" . $cnt . ")"; } } require_once "./Modules/LearningModule/classes/class.ilStructureObject.php"; //$struct_obj =& new ilStructureObject($pred_node["obj_id"]); //return $struct_obj->getTitle(); return ilStructureObject::_getPresentationTitle($pred_node["obj_id"], $a_include_numbers) . $cnt_str; //return $pred_node["title"].$cnt_str; } else { return $pg_rec["title"]; } }
function getContextPath($a_endnode_id, $a_startnode_id = 1) { $path = ""; include_once "./Services/Tree/classes/class.ilTree.php"; $tree = new ilTree(1); if (!$tree->isInTree($a_startnode_id) or !$tree->isInTree($a_endnode_id)) { return ''; } $tmpPath = $tree->getPathFull($a_endnode_id, $a_startnode_id); // count -1, to exclude the learning module itself for ($i = 1; $i < count($tmpPath) - 1; $i++) { if ($path != "") { $path .= " > "; } $path .= $tmpPath[$i]["title"]; } return $path; }
/** * checks if rolefolder contains any roles. if not the rolefolder is deleted * @access public * @return boolean true if rolefolder is deleted */ function purge() { global $rbacreview, $rbacadmin, $tree; $local_roles = $rbacreview->getRolesOfRoleFolder($this->getRefId()); if (count($local_roles) == 0) { $rbacadmin->revokePermission($this->getRefId()); if ($tree_id = $this->isDeleted()) { $deleted_tree = new ilTree($tree_id, -(int) $tree_id); $deleted_tree->deleteTree($deleted_tree->getNodeData($this->getRefId())); } else { $tree->deleteTree($tree->getNodeData($this->getRefId())); } $this->delete(); return true; } return false; }
/** * Get scorm module editing tree * * @param int scorm module object id * * @return object tree object */ static function getTree($a_slm_obj_id) { $tree = new ilTree($a_slm_obj_id); $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node'); $tree->setTreeTablePK("slm_id"); $tree->readRootId(); return $tree; }
function getObjectTypeStatistics() { global $ilDB, $objDefinition; // re-use add new item selection (folder is not that important) $types = array_keys($objDefinition->getCreatableSubObjects("root", ilObjectDefinition::MODE_REPOSITORY)); include_once "Services/Tree/classes/class.ilTree.php"; $tree = new ilTree(1); $sql = "SELECT " . $tree->table_obj_data . ".obj_id," . $tree->table_obj_data . ".type," . $tree->table_tree . "." . $tree->tree_pk . "," . $tree->table_obj_reference . ".ref_id" . " FROM " . $tree->table_tree . " " . $tree->buildJoin() . " WHERE " . $ilDB->in($tree->table_obj_data . ".type", $types, "", "text"); $set = $ilDB->query($sql); $res = array(); while ($row = $ilDB->fetchAssoc($set)) { $res[$row["type"]]["type"] = $row["type"]; $res[$row["type"]]["references"]++; $res[$row["type"]]["objects"][] = $row["obj_id"]; if ($row[$tree->tree_pk] < 0) { $res[$row["type"]]["deleted"]++; } } foreach ($res as $type => $values) { $res[$type]["objects"] = sizeof(array_unique($values["objects"])); } return $res; }
/** * Get pages of chapter * * @param * @return */ static function getPagesOfChapter($a_lm_id, $a_chap_id) { // update structure entries: if at least one page of a chapter is public set chapter to public too $lm_tree = new ilTree($a_lm_id); $lm_tree->setTableNames('lm_tree', 'lm_data'); $lm_tree->setTreeTablePK("lm_id"); $lm_tree->readRootId(); $childs = $lm_tree->getChildsByType($a_chap_id, "pg"); return $childs; }
/** * put chapter into tree */ function putInTree() { //echo "st:putInTree"; // chapters should be behind pages in the tree // so if target is first node, the target is substituted with // the last child of type pg if ($_GET["target"] == IL_FIRST_NODE) { $tree = new ilTree($this->content_object->getId()); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); // determine parent node id $parent_id = !empty($_GET["obj_id"]) ? $_GET["obj_id"] : $tree->getRootId(); // determine last child of type pg $childs =& $tree->getChildsByType($parent_id, "pg"); if (count($childs) != 0) { $_GET["target"] = $childs[count($childs) - 1]["obj_id"]; } } if (empty($_GET["target"])) { $_GET["target"] = IL_LAST_NODE; } parent::putInTree(); }