/** * Cut and copy a set of chapters/pages into the clipboard */ function clipboardCut($a_slm_obj_id, $a_ids) { $tree = ilSCORM2004Node::getTree($a_slm_obj_id); if (!is_array($a_ids)) { return false; } else { // get all "top" ids, i.e. remove ids, that have a selected parent foreach ($a_ids as $id) { $path = $tree->getPathId($id); $take = true; foreach ($path as $path_id) { if ($path_id != $id && in_array($path_id, $a_ids)) { $take = false; } } if ($take) { $cut_ids[] = $id; } } } ilSCORM2004Node::clipboardCopy($a_slm_obj_id, $cut_ids); // remove the objects from the tree // note: we are getting chapters, scos and pages which are *not* in the tree // we do not delete any pages/chapters here foreach ($cut_ids as $id) { $curnode = $tree->getNodeData($id); if ($tree->isInTree($id)) { $tree->deleteTree($curnode); } } }
/** * Copy items to clipboard */ function copyItems($a_return = "showOrganization") { global $ilCtrl, $lng; include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Node.php"; $items = ilUtil::stripSlashesArray($_POST["id"]); $todel = array(); // delete IDs < 0 (needed for non-js editing) foreach ($items as $k => $item) { if ($item < 0) { $todel[] = $k; } } foreach ($todel as $k) { unset($items[$k]); } if (!ilSCORM2004Node::uniqueTypesCheck($items)) { ilUtil::sendFailure($lng->txt("sahs_choose_pages_chap_scos_ass_only"), true); $ilCtrl->redirect($this, $a_return); } ilSCORM2004Node::clipboardCopy($this->object->getId(), $items); // @todo: move this to a service since it can be used here, too include_once "./Modules/LearningModule/classes/class.ilEditClipboard.php"; ilEditClipboard::setAction("copy"); ilUtil::sendInfo($lng->txt("cont_selected_items_have_been_copied"), true); $ilCtrl->redirect($this, $a_return); }