/** * clone objectives * * @access public * @param int target id * @param int copy id * */ public function ilClone($a_target_id, $a_copy_id) { global $ilLog; $ilLog->write(__METHOD__ . ': Start cloning learning objectives...'); $query = "SELECT * FROM crs_objectives " . "WHERE crs_id = " . $this->db->quote($this->course_obj->getId(), 'integer') . ' ' . "ORDER BY position "; $res = $this->db->query($query); if (!$res->numRows()) { $ilLog->write(__METHOD__ . ': ... no objectives found.'); return true; } if (!is_object($new_course = ilObjectFactory::getInstanceByRefId($a_target_id, false))) { $ilLog->write(__METHOD__ . ': Cannot init new course object.'); return true; } while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) { $new_objective = new ilCourseObjective($new_course); $new_objective->setTitle($row->title); $new_objective->setDescription($row->description); $new_objective->setActive($row->active); $objective_id = $new_objective->add(); $ilLog->write(__METHOD__ . ': Added new objective nr: ' . $objective_id); // Clone crs_objective_tst entries include_once 'Modules/Course/classes/class.ilCourseObjectiveQuestion.php'; $objective_qst = new ilCourseObjectiveQuestion($row->objective_id); $objective_qst->cloneDependencies($objective_id, $a_copy_id); // Clone test assignments include_once './Modules/Course/classes/Objectives/class.ilLOTestAssignments.php'; include_once './Modules/Course/classes/Objectives/class.ilLOSettings.php'; $assignments = ilLOTestAssignments::getInstance($this->course_obj->getId()); $assignment_it = $assignments->getAssignmentByObjective($row->objective_id, ilLOSettings::TYPE_TEST_INITIAL); if ($assignment_it) { $assignment_it->cloneSettings($a_copy_id, $new_course->getId(), $objective_id); } $assignment_qt = $assignments->getAssignmentByObjective($row->objective_id, ilLOSettings::TYPE_TEST_QUALIFIED); if ($assignment_qt) { $assignment_qt->cloneSettings($a_copy_id, $new_course->getId(), $objective_id); } $ilLog->write(__METHOD__ . ': Finished objective question dependencies: ' . $objective_id); // Clone crs_objective_lm entries (assigned course materials) include_once 'Modules/Course/classes/class.ilCourseObjectiveMaterials.php'; $objective_material = new ilCourseObjectiveMaterials($row->objective_id); $objective_material->cloneDependencies($objective_id, $a_copy_id); } $ilLog->write(__METHOD__ . ': Finished cloning objectives.'); }
/** * activate chosen objectives */ protected function deactivateObjectives() { $disabled = (array) $_REQUEST['objective']; include_once './Modules/Course/classes/class.ilCourseObjective.php'; $objectives = ilCourseObjective::_getObjectiveIds($this->getParentObject()->getId(), false); foreach ((array) $objectives as $objective_id) { $objective = new ilCourseObjective($this->getParentObject(), $objective_id); if (in_array($objective_id, $disabled)) { $objective->setActive(false); $objective->update(); } } include_once './Services/Tracking/classes/class.ilLPStatusWrapper.php'; ilLPStatusWrapper::_refreshStatus($this->getParentObject()->getId()); ilUtil::sendSuccess($this->lng->txt('settings_saved'), true); $this->ctrl->redirect($this, 'listObjectives'); }