Exemplo n.º 1
0
 /**
  * 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.');
 }
Exemplo n.º 2
0
 /**
  * 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');
 }