62 protected static $map = array(
64 self::LP_MODE_DEACTIVATED => array(
'ilLPStatus',
65 'trac_mode_deactivated',
'trac_mode_deactivated_info_new')
67 ,self::LP_MODE_TLT => array(
'ilLPStatusTypicalLearningTime',
68 'trac_mode_tlt',
'trac_mode_tlt_info')
70 ,self::LP_MODE_VISITS => array(
'ilLPStatusVisits',
71 'trac_mode_visits',
'trac_mode_visits_info')
73 ,self::LP_MODE_MANUAL => array(
'ilLPStatusManual',
74 'trac_mode_manual',
'trac_mode_manual_info')
76 ,self::LP_MODE_OBJECTIVES => array(
'ilLPStatusObjectives',
77 'trac_mode_objectives',
'trac_mode_objectives_info')
79 ,self::LP_MODE_COLLECTION => array(
'ilLPStatusCollection',
80 'trac_mode_collection',
'trac_mode_collection_info')
82 ,self::LP_MODE_SCORM => array(
'ilLPStatusSCORM',
83 'trac_mode_scorm',
'trac_mode_scorm_info')
85 ,self::LP_MODE_TEST_FINISHED => array(
'ilLPStatusTestFinished',
86 'trac_mode_test_finished',
'trac_mode_test_finished_info')
88 ,self::LP_MODE_TEST_PASSED => array(
'ilLPStatusTestPassed',
89 'trac_mode_test_passed',
'trac_mode_test_passed_info')
91 ,self::LP_MODE_EXERCISE_RETURNED => array(
'ilLPStatusExerciseReturned',
92 'trac_mode_exercise_returned',
'trac_mode_exercise_returned_info')
94 ,self::LP_MODE_EVENT => array(
'ilLPStatusEvent',
95 'trac_mode_event',
'trac_mode_event_info')
97 ,self::LP_MODE_MANUAL_BY_TUTOR => array(
'ilLPStatusManualByTutor',
98 'trac_mode_manual_by_tutor',
'trac_mode_manual_by_tutor_info')
100 ,self::LP_MODE_SCORM_PACKAGE => array(
'ilLPStatusSCORMPackage',
101 'trac_mode_scorm_package',
'trac_mode_scorm_package_info')
103 ,self::LP_MODE_UNDEFINED => null
105 ,self::LP_MODE_PLUGIN => array(
'ilLPStatusPlugin',
106 'trac_mode_plugin',
'')
108 ,self::LP_MODE_COLLECTION_TLT => array(
'ilLPStatusCollectionTLT',
109 'trac_mode_collection_tlt',
'trac_mode_collection_tlt_info')
111 ,self::LP_MODE_COLLECTION_MANUAL => array(
'ilLPStatusCollectionManual',
112 'trac_mode_collection_manual',
'trac_mode_collection_manual_info')
114 ,self::LP_MODE_QUESTIONS => array(
'ilLPStatusQuestions',
115 'trac_mode_questions',
'trac_mode_questions_info')
117 ,self::LP_MODE_SURVEY_FINISHED => array(
'ilLPStatusSurveyFinished',
118 'trac_mode_survey_finished',
'trac_mode_survey_finished_info')
120 ,self::LP_MODE_VISITED_PAGES => array(
'ilLPStatusVisitedPages',
121 'trac_mode_visited_pages',
'trac_mode_visited_pages_info')
123 ,self::LP_MODE_CONTENT_VISITED => array(
'ilLPStatusContentVisited',
124 'trac_mode_content_visited',
'trac_mode_content_visited_info')
126 ,self::LP_MODE_COLLECTION_MOBS => array(
'ilLPStatusCollectionMobs',
127 'trac_mode_collection_mobs',
'trac_mode_collection_mobs_info')
129 ,self::LP_MODE_STUDY_PROGRAMME => array(
'ilLPStatusStudyProgramme',
130 'trac_mode_study_programme',
'')
132 ,self::LP_MODE_INDIVIDUAL_ASSESSMENT => array(
'ilLPStatusIndividualAssessment',
133 'trac_mode_individual_assessment',
'trac_mode_individual_assessment_info')
135 ,self::LP_MODE_CMIX_COMPLETED => array(ilLPStatusCmiXapiCompleted::class,
136 'trac_mode_cmix_completed',
'trac_mode_cmix_completed_info')
138 ,self::LP_MODE_CMIX_COMPL_WITH_FAILED => array(ilLPStatusCmiXapiCompletedWithFailed::class,
139 'trac_mode_cmix_compl_with_failed',
'trac_mode_cmix_compl_with_failed_info')
141 ,self::LP_MODE_CMIX_PASSED => array(ilLPStatusCmiXapiPassed::class,
142 'trac_mode_cmix_passed',
'trac_mode_cmix_passed_info')
144 ,self::LP_MODE_CMIX_PASSED_WITH_FAILED => array(ilLPStatusCmiXapiPassedWithFailed::class,
145 'trac_mode_cmix_passed_with_failed',
'trac_mode_cmix_passed_with_failed_info')
147 ,self::LP_MODE_CMIX_COMPLETED_OR_PASSED => array(ilLPStatusCmiXapiCompletedOrPassed::class,
148 'trac_mode_cmix_completed_or_passed',
'trac_mode_cmix_completed_or_passed_info')
150 ,self::LP_MODE_CMIX_COMPL_OR_PASSED_WITH_FAILED => array(ilLPStatusCmiXapiCompletedOrPassedWithFailed::class,
151 'trac_mode_cmix_compl_or_passed_with_failed',
'trac_mode_cmix_compl_or_passed_with_failed_info')
153 ,self::LP_MODE_LTI_OUTCOME => array(ilLPStatusLtiOutcome::class,
154 'trac_mode_lti_outcome',
'trac_mode_lti_outcome_info')
156 ,self::LP_MODE_COURSE_REFERENCE => [
157 'ilLPStatusCourseReference',
158 'trac_mode_course_reference',
159 'trac_mode_course_reference_info' 171 $ilObjDataCache = $DIC[
'ilObjDataCache'];
172 $ilDB = $DIC[
'ilDB'];
175 $this->obj_id = $a_obj_id;
178 $this->obj_type = $ilObjDataCache->lookupType($this->obj_id);
180 include_once
"Services/Object/classes/class.ilObjectLP.php";
182 $this->obj_mode = $olp->getDefaultMode();
197 $ilDB = $DIC[
'ilDB'];
199 $query =
"INSERT INTO ut_lp_settings (obj_id,obj_type,u_mode,visits) " .
201 $this->db->quote($a_new_obj_id,
'integer') .
", " .
202 $this->db->quote($this->
getObjType(),
'text') .
", " .
203 $this->db->quote($this->
getMode(),
'integer') .
", " .
204 $this->db->quote($this->
getVisits(),
'integer') .
212 return (
int) $this->visits ? $this->visits : self::LP_DEFAULT_VISITS;
217 $this->visits = $a_visits;
222 $this->obj_mode = $a_mode;
242 $res = $this->db->query(
"SELECT * FROM ut_lp_settings WHERE obj_id = " .
243 $this->db->quote($this->obj_id,
'integer'));
245 $this->is_stored =
true;
246 $this->obj_type = $row->obj_type;
247 $this->obj_mode = $row->u_mode;
248 $this->visits = $row->visits;
256 public function update($a_refresh_lp =
true)
260 $ilDB = $DIC[
'ilDB'];
262 if (!$this->is_stored) {
265 $query =
"UPDATE ut_lp_settings SET u_mode = " .
$ilDB->quote($this->
getMode(),
'integer') .
", " .
267 "WHERE obj_id = " .
$ilDB->quote($this->
getObjId(),
'integer');
282 $ilDB = $DIC[
'ilDB'];
284 $query =
"INSERT INTO ut_lp_settings (obj_id,obj_type,u_mode,visits) " .
302 include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
310 $ilDB = $DIC[
'ilDB'];
312 $query =
"DELETE FROM ut_lp_settings WHERE obj_id = " .
$ilDB->quote($a_obj_id,
'integer');
325 $ilDB = $DIC[
'ilDB'];
327 $query =
"SELECT visits FROM ut_lp_settings " .
328 "WHERE obj_id = " .
$ilDB->quote($a_obj_id,
'integer');
334 return self::LP_DEFAULT_VISITS;
341 $ilDB = $DIC[
'ilDB'];
347 $query =
"SELECT obj_id, u_mode FROM ut_lp_settings" .
348 " WHERE " .
$ilDB->in(
"obj_id", $a_obj_ids,
"",
"integer");
351 $res[$row->obj_id] = $row->u_mode;
361 $ilDB = $DIC[
'ilDB'];
365 $query =
"SELECT u_mode FROM ut_lp_settings" .
366 " WHERE obj_id = " .
$ilDB->quote($a_obj_id,
"integer");
368 $row =
$ilDB->fetchAssoc($set);
369 if (is_array($row)) {
370 return $row[
'u_mode'];
380 if (array_key_exists($a_mode, self::$map) &&
381 is_array(self::$map[$a_mode])) {
382 return $lng->txt(self::$map[$a_mode][1]);
392 if (array_key_exists($a_mode, self::$map) &&
393 is_array(self::$map[$a_mode])) {
394 $info =
$lng->txt(self::$map[$a_mode][2]);
396 if ($a_mode == self::LP_MODE_TLT) {
398 include_once
'Services/Tracking/classes/class.ilObjUserTracking.php';
409 foreach (self::$map as $mode => $item) {
410 $res[$mode] = $item[0];
419 $ilDB = $DIC[
'ilDB'];
425 $ilDB->manipulate(
"DELETE FROM ut_lp_settings" .
426 " WHERE obj_id = " .
$ilDB->quote($a_obj_id,
"integer"));
const LP_MODE_CMIX_COMPLETED
const LP_MODE_CMIX_COMPLETED_OR_PASSED
const LP_MODE_MANUAL_BY_TUTOR
const LP_MODE_CMIX_PASSED_WITH_FAILED
static _delete($a_obj_id)
const LP_MODE_CMIX_PASSED
const LP_MODE_COLLECTION_MANUAL
const LP_MODE_INDIVIDUAL_ASSESSMENT
const LP_MODE_COURSE_REFERENCE
const LP_MODE_COLLECTION_TLT
static _refreshStatus($a_obj_id, $a_users=null)
Set dirty.
const LP_MODE_TEST_FINISHED
update($a_refresh_lp=true)
const LP_MODE_SCORM_PACKAGE
const LP_MODE_CMIX_COMPL_WITH_FAILED
const LP_MODE_EXERCISE_RETURNED
const LP_MODE_VISITED_PAGES
static _lookupDBMode($a_obj_id)
foreach($_POST as $key=> $value) $res
const LP_MODE_STUDY_PROGRAMME
const LP_MODE_TEST_PASSED
const LP_MODE_SURVEY_FINISHED
static _lookupDBModeForObjects(array $a_obj_ids)
static _mode2InfoText($a_mode)
const LP_MODE_DEACTIVATED
static _lookupVisits($a_obj_id)
const LP_MODE_COLLECTION_MOBS
__construct($a_obj_id)
ilLPObjSettings constructor.
const LP_MODE_CONTENT_VISITED
const LP_MODE_CMIX_COMPL_OR_PASSED_WITH_FAILED
static _deleteByObjId($a_obj_id)
cloneSettings($a_new_obj_id)
Clone settings.
const LP_MODE_LTI_OUTCOME
static getInstance($a_obj_id)
static _getValidTimeSpan()
static _mode2Text($a_mode)