/** * 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); }
/** * Execute Drag Drop Action * * @param string $source_id Source element ID * @param string $target_id Target element ID * @param string $first_child Insert as first child of target * @param string $movecopy Position ("move" | "copy") */ function executeDragDrop($source_id, $target_id, $first_child, $as_subitem = false, $movecopy = "move") { $lmtree = new ilTree($this->getId()); $lmtree->setTableNames('lm_tree', 'lm_data'); $lmtree->setTreeTablePK("lm_id"); //echo "-".$source_id."-".$target_id."-".$first_child."-".$as_subitem."-"; $source_obj = ilLMObjectFactory::getInstance($this, $source_id, true); $source_obj->setLMId($this->getId()); if (!$first_child) { $target_obj = ilLMObjectFactory::getInstance($this, $target_id, true); $target_obj->setLMId($this->getId()); $target_parent = $lmtree->getParentId($target_id); } // handle pages if ($source_obj->getType() == "pg") { //echo "1"; if ($lmtree->isInTree($source_obj->getId())) { $node_data = $lmtree->getNodeData($source_obj->getId()); // cut on move if ($movecopy == "move") { $parent_id = $lmtree->getParentId($source_obj->getId()); $lmtree->deleteTree($node_data); // write history entry require_once "./Services/History/classes/class.ilHistory.php"; ilHistory::_createEntry($source_obj->getId(), "cut", array(ilLMObject::_lookupTitle($parent_id), $parent_id), $this->getType() . ":pg"); ilHistory::_createEntry($parent_id, "cut_page", array(ilLMObject::_lookupTitle($source_obj->getId()), $source_obj->getId()), $this->getType() . ":st"); } else { // copy page $new_page =& $source_obj->copy(); $source_id = $new_page->getId(); $source_obj =& $new_page; } // paste page if (!$lmtree->isInTree($source_obj->getId())) { if ($first_child) { $target_pos = IL_FIRST_NODE; $parent = $target_id; } else { if ($as_subitem) { $parent = $target_id; $target_pos = IL_FIRST_NODE; $pg_childs =& $lmtree->getChildsByType($parent, "pg"); if (count($pg_childs) != 0) { $target_pos = $pg_childs[count($pg_childs) - 1]["obj_id"]; } } else { $target_pos = $target_id; $parent = $target_parent; } } // insert page into tree $lmtree->insertNode($source_obj->getId(), $parent, $target_pos); // write history entry if ($movecopy == "move") { // write history comments include_once "./Services/History/classes/class.ilHistory.php"; ilHistory::_createEntry($source_obj->getId(), "paste", array(ilLMObject::_lookupTitle($parent), $parent), $this->getType() . ":pg"); ilHistory::_createEntry($parent, "paste_page", array(ilLMObject::_lookupTitle($source_obj->getId()), $source_obj->getId()), $this->getType() . ":st"); } } } } // handle chapters if ($source_obj->getType() == "st") { //echo "2"; $source_node = $lmtree->getNodeData($source_id); $subnodes = $lmtree->getSubtree($source_node); // check, if target is within subtree foreach ($subnodes as $subnode) { if ($subnode["obj_id"] == $target_id) { return; } } $target_pos = $target_id; if ($first_child) { $target_pos = IL_FIRST_NODE; $target_parent = $target_id; $pg_childs =& $lmtree->getChildsByType($target_parent, "pg"); if (count($pg_childs) != 0) { $target_pos = $pg_childs[count($pg_childs) - 1]["obj_id"]; } } else { if ($as_subitem) { $target_parent = $target_id; $target_pos = IL_FIRST_NODE; $childs =& $lmtree->getChilds($target_parent); if (count($childs) != 0) { $target_pos = $childs[count($childs) - 1]["obj_id"]; } } } // insert into /* if ($position == "into") { $target_parent = $target_id; $target_pos = IL_FIRST_NODE; // if target_pos is still first node we must skip all pages if ($target_pos == IL_FIRST_NODE) { $pg_childs =& $lmtree->getChildsByType($target_parent, "pg"); if (count($pg_childs) != 0) { $target_pos = $pg_childs[count($pg_childs) - 1]["obj_id"]; } } } */ // delete source tree if ($movecopy == "move") { $lmtree->deleteTree($source_node); } else { // copy chapter (incl. subcontents) $new_chapter =& $source_obj->copy($lmtree, $target_parent, $target_pos); } if (!$lmtree->isInTree($source_id)) { $lmtree->insertNode($source_id, $target_parent, $target_pos); // insert moved tree if ($movecopy == "move") { foreach ($subnodes as $node) { if ($node["obj_id"] != $source_id) { $lmtree->insertNode($node["obj_id"], $node["parent"]); } } } } // check the tree $this->checkTree(); } $this->checkTree(); }
$query = "INSERT\n\t\tINTO rbac_fa\n\t\tVALUES (" . $ilDB->quote($chat_modetator_tpl_id) . ", 8, 'n', 'n')"; $ilDB->manipulate($query); ?> <#3462> <?php $ilDB->setLimit(1); $query = "SELECT object_data.obj_id, object_reference.ref_id FROM object_data INNER JOIN object_reference on object_data.obj_id = object_reference.obj_id WHERE type = 'chta'"; $rset = $ilDB->query($query); $row = $ilDB->fetchAssoc($rset); $chatfolder_obj_id = $row['obj_id']; $chatfolder_ref_id = $row['ref_id']; $settings = new ilSetting('chatroom'); $public_room_ref_id = $settings->get('public_room_ref', 0); if ($public_room_ref_id) { $tree = new ilTree(ROOT_FOLDER_ID); $pid = $tree->getParentId($public_room_ref_id); if ($pid != $chatfolder_ref_id) { $tree->moveTree($public_room_ref_id, $chatfolder_ref_id); } } ?> <#3463> <?php $ilCtrlStructureReader->getStructure(); ?> <#3464> <?php if (!$ilDB->tableExists('note_settings')) { $fields = array('rep_obj_id' => array('type' => 'integer', 'length' => 4, 'notnull' => true, 'default' => 0), 'obj_id' => array('type' => 'integer', 'length' => 4, 'notnull' => true, 'default' => 0), 'obj_type' => array('type' => 'text', 'notnull' => true, 'length' => 10, 'default' => "-"), 'activated' => array('type' => 'integer', 'length' => 1, 'notnull' => true, 'default' => 0)); $ilDB->createTable('note_settings', $fields); $ilDB->addPrimaryKey('note_settings', array('rep_obj_id', 'obj_id', 'obj_type'));
function _getParentId($a_id) { $a_tree_id = $_SESSION["AccountId"]; $tree = new ilTree($a_tree_id); $tree->setTableNames('bookmark_tree', 'bookmark_data'); return $tree->getParentId($a_id); }
/** * paste page */ function pastePage() { global $ilUser; if (!$ilUser->clipboardHasObjectsOfType("pg")) { $this->ilias->raiseError($this->lng->txt("no_page_in_clipboard"), $this->ilias->error_obj->MESSAGE); } return $this->insertPageClip(); return; $tree = new ilTree($this->content_object->getId()); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); // paste selected object $id = ilEditClipboard::getContentObjectId(); // copy page, if action is copy if (ilEditClipboard::getAction() == "copy") { // check wether page belongs to lm if (ilLMObject::_lookupContObjID(ilEditClipboard::getContentObjectId()) == $this->content_object->getID()) { $lm_page = new ilLMPageObject($this->content_object, $id); $new_page =& $lm_page->copy(); $id = $new_page->getId(); } else { // get page from other content object into current content object $lm_id = ilLMObject::_lookupContObjID(ilEditClipboard::getContentObjectId()); $lm_obj =& $this->ilias->obj_factory->getInstanceByObjId($lm_id); $lm_page = new ilLMPageObject($lm_obj, $id); $copied_nodes = array(); $new_page =& $lm_page->copyToOtherContObject($this->content_object, $copied_nodes); $id = $new_page->getId(); ilLMObject::updateInternalLinks($copied_nodes); } } if (ilEditClipboard::getAction() == "cut") { // check wether page belongs not to lm if (ilLMObject::_lookupContObjID(ilEditClipboard::getContentObjectId()) != $this->content_object->getID()) { $lm_id = ilLMObject::_lookupContObjID(ilEditClipboard::getContentObjectId()); $lm_obj =& $this->ilias->obj_factory->getInstanceByObjId($lm_id); $lm_page = new ilLMPageObject($lm_obj, $id); $lm_page->setLMId($this->content_object->getID()); $lm_page->update(); $page =& $lm_page->getPageObject(); $page->buildDom(); $page->setParentId($this->content_object->getID()); $page->update(); } } if (!$tree->isInTree($id)) { if (!isset($_POST["id"])) { $target = IL_FIRST_NODE; } else { $target = $_POST["id"][0]; } $tree->insertNode($id, $this->obj->getId(), $target); ilEditClipboard::clear(); } // write history comments include_once "./Services/History/classes/class.ilHistory.php"; $parent_id = $tree->getParentId($id); ilHistory::_createEntry($id, "paste", array(ilLMObject::_lookupTitle($this->obj->getId()), $this->obj->getId()), $this->content_object->getType() . ":pg"); ilHistory::_createEntry($parent_id, "paste_page", array(ilLMObject::_lookupTitle($id), $id), $this->content_object->getType() . ":st"); // check the tree $this->checkTree(); $this->ctrl->redirect($this, "view"); }