19 declare(strict_types=0);
31 protected int $visits = self::LP_DEFAULT_VISITS;
71 protected static array
$map = array(
73 self::LP_MODE_DEACTIVATED => array(
'ilLPStatus',
74 'trac_mode_deactivated',
75 'trac_mode_deactivated_info_new' 79 self::LP_MODE_TLT => array(
'ilLPStatusTypicalLearningTime',
85 self::LP_MODE_VISITS => array(
'ilLPStatusVisits',
87 'trac_mode_visits_info' 91 self::LP_MODE_MANUAL => array(
'ilLPStatusManual',
93 'trac_mode_manual_info' 97 self::LP_MODE_OBJECTIVES => array(
'ilLPStatusObjectives',
98 'trac_mode_objectives',
99 'trac_mode_objectives_info' 103 self::LP_MODE_COLLECTION => array(
'ilLPStatusCollection',
104 'trac_mode_collection',
105 'trac_mode_collection_info' 109 self::LP_MODE_SCORM => array(
'ilLPStatusSCORM',
111 'trac_mode_scorm_info' 115 self::LP_MODE_TEST_FINISHED => array(
'ilLPStatusTestFinished',
116 'trac_mode_test_finished',
117 'trac_mode_test_finished_info' 121 self::LP_MODE_TEST_PASSED => array(
'ilLPStatusTestPassed',
122 'trac_mode_test_passed',
123 'trac_mode_test_passed_info' 127 self::LP_MODE_EXERCISE_RETURNED => array(
'ilLPStatusExerciseReturned',
128 'trac_mode_exercise_returned',
129 'trac_mode_exercise_returned_info' 133 self::LP_MODE_EVENT => array(
'ilLPStatusEvent',
135 'trac_mode_event_info' 139 self::LP_MODE_MANUAL_BY_TUTOR => array(
'ilLPStatusManualByTutor',
140 'trac_mode_manual_by_tutor',
141 'trac_mode_manual_by_tutor_info' 145 self::LP_MODE_SCORM_PACKAGE => array(
'ilLPStatusSCORMPackage',
146 'trac_mode_scorm_package',
147 'trac_mode_scorm_package_info' 151 self::LP_MODE_UNDEFINED =>
null 154 self::LP_MODE_PLUGIN => array(
'ilLPStatusPlugin',
160 self::LP_MODE_COLLECTION_TLT => array(
'ilLPStatusCollectionTLT',
161 'trac_mode_collection_tlt',
162 'trac_mode_collection_tlt_info' 166 self::LP_MODE_COLLECTION_MANUAL => array(
'ilLPStatusCollectionManual',
167 'trac_mode_collection_manual',
168 'trac_mode_collection_manual_info' 172 self::LP_MODE_QUESTIONS => array(
'ilLPStatusQuestions',
173 'trac_mode_questions',
174 'trac_mode_questions_info' 178 self::LP_MODE_SURVEY_FINISHED => array(
'ilLPStatusSurveyFinished',
179 'trac_mode_survey_finished',
180 'trac_mode_survey_finished_info' 184 self::LP_MODE_VISITED_PAGES => array(
'ilLPStatusVisitedPages',
185 'trac_mode_visited_pages',
186 'trac_mode_visited_pages_info' 190 self::LP_MODE_CONTENT_VISITED => array(
'ilLPStatusContentVisited',
191 'trac_mode_content_visited',
192 'trac_mode_content_visited_info' 196 self::LP_MODE_COLLECTION_MOBS => array(
'ilLPStatusCollectionMobs',
197 'trac_mode_collection_mobs',
198 'trac_mode_collection_mobs_info' 202 self::LP_MODE_STUDY_PROGRAMME => array(
'ilLPStatusStudyProgramme',
203 'trac_mode_study_programme',
208 self::LP_MODE_INDIVIDUAL_ASSESSMENT => array(
'ilLPStatusIndividualAssessment',
209 'trac_mode_individual_assessment',
210 'trac_mode_individual_assessment_info' 214 self::LP_MODE_CMIX_COMPLETED => array(ilLPStatusCmiXapiCompleted::class,
215 'trac_mode_cmix_completed',
216 'trac_mode_cmix_completed_info' 220 self::LP_MODE_CMIX_COMPL_WITH_FAILED => array(ilLPStatusCmiXapiCompletedWithFailed::class,
221 'trac_mode_cmix_compl_with_failed',
222 'trac_mode_cmix_compl_with_failed_info' 226 self::LP_MODE_CMIX_PASSED => array(ilLPStatusCmiXapiPassed::class,
227 'trac_mode_cmix_passed',
228 'trac_mode_cmix_passed_info' 232 self::LP_MODE_CMIX_PASSED_WITH_FAILED => array(ilLPStatusCmiXapiPassedWithFailed::class,
233 'trac_mode_cmix_passed_with_failed',
234 'trac_mode_cmix_passed_with_failed_info' 238 self::LP_MODE_CMIX_COMPLETED_OR_PASSED => array(ilLPStatusCmiXapiCompletedOrPassed::class,
239 'trac_mode_cmix_completed_or_passed',
240 'trac_mode_cmix_completed_or_passed_info' 244 self::LP_MODE_CMIX_COMPL_OR_PASSED_WITH_FAILED => array(ilLPStatusCmiXapiCompletedOrPassedWithFailed::class,
245 'trac_mode_cmix_compl_or_passed_with_failed',
246 'trac_mode_cmix_compl_or_passed_with_failed_info' 250 self::LP_MODE_LTI_OUTCOME => array(ilLPStatusLtiOutcome::class,
251 'trac_mode_lti_outcome',
252 'trac_mode_lti_outcome_info' 256 self::LP_MODE_COURSE_REFERENCE => [
257 'ilLPStatusCourseReference',
258 'trac_mode_course_reference',
259 'trac_mode_course_reference_info' 262 self::LP_MODE_CONTRIBUTION_TO_DISCUSSION => [
263 ilLPStatusContributionToDiscussion::class,
264 'trac_mode_contribution_to_discussion',
265 'trac_mode_contribution_to_discussion_info' 276 $this->db = $DIC->database();
279 $this->obj_id = $a_obj_id;
281 if (!$this->
read()) {
285 $this->obj_mode = $olp->getDefaultMode();
298 $ilDB = $DIC[
'ilDB'];
300 $query =
"INSERT INTO ut_lp_settings (obj_id,obj_type,u_mode,visits) " .
302 $this->db->quote($a_new_obj_id,
'integer') .
", " .
303 $this->db->quote($this->
getObjType(),
'text') .
", " .
304 $this->db->quote($this->
getMode(),
'integer') .
", " .
305 $this->db->quote($this->
getVisits(),
'integer') .
307 $res = $this->db->manipulate($query);
318 $this->visits = $a_visits;
323 $this->obj_mode = $a_mode;
343 $res = $this->db->query(
344 "SELECT * FROM ut_lp_settings WHERE obj_id = " .
345 $this->db->quote($this->obj_id,
'integer')
348 $this->is_stored =
true;
349 $this->obj_type = (string) $row->obj_type;
350 $this->obj_mode = (
int) $row->u_mode;
351 $this->visits = (
int) $row->visits;
357 public function update(
bool $a_refresh_lp =
true): bool
359 if (!$this->is_stored) {
362 $query =
"UPDATE ut_lp_settings SET u_mode = " . $this->db->quote(
366 "visits = " . $this->db->quote(
370 "WHERE obj_id = " . $this->db->quote($this->
getObjId(),
'integer');
371 $res = $this->db->manipulate($query);
382 $query =
"INSERT INTO ut_lp_settings (obj_id,obj_type,u_mode,visits) " .
384 $this->db->quote($this->
getObjId(),
'integer') .
", " .
385 $this->db->quote($this->
getObjType(),
'text') .
", " .
386 $this->db->quote($this->
getMode(),
'integer') .
", " .
387 $this->db->quote($this->
getVisits(),
'integer') .
389 $res = $this->db->manipulate($query);
401 public static function _delete(
int $a_obj_id): bool
405 $ilDB = $DIC[
'ilDB'];
406 $query =
"DELETE FROM ut_lp_settings WHERE obj_id = " .
$ilDB->quote(
418 $ilDB = $DIC[
'ilDB'];
419 $query =
"SELECT visits FROM ut_lp_settings " .
420 "WHERE obj_id = " .
$ilDB->quote($a_obj_id,
'integer');
426 return self::LP_DEFAULT_VISITS;
433 $ilDB = $DIC[
'ilDB'];
436 $query =
"SELECT obj_id, u_mode FROM ut_lp_settings" .
437 " WHERE " .
$ilDB->in(
"obj_id", $a_obj_ids,
"",
"integer");
438 $set =
$ilDB->query($query);
440 $res[(
int) $row->obj_id] = (
int) $row->u_mode;
449 $ilDB = $DIC[
'ilDB'];
451 $query =
"SELECT u_mode FROM ut_lp_settings" .
452 " WHERE obj_id = " .
$ilDB->quote($a_obj_id,
"integer");
455 return (
int) $row->u_mode;
464 $lng = $DIC->language();
465 if (array_key_exists($a_mode, self::$map) &&
466 is_array(self::$map[$a_mode])) {
467 return $lng->txt(self::$map[$a_mode][1]);
476 $lng = $DIC->language();
477 if (array_key_exists($a_mode, self::$map) &&
478 is_array(self::$map[$a_mode])) {
479 $info =
$lng->txt(self::$map[$a_mode][2]);
480 if ($a_mode == self::LP_MODE_TLT) {
492 foreach (self::$map as $mode => $item) {
494 $res[$mode] = $item[0];
504 $ilDB = $DIC[
'ilDB'];
510 "DELETE FROM ut_lp_settings" .
511 " WHERE obj_id = " .
$ilDB->quote($a_obj_id,
"integer")
static _lookupVisits(int $a_obj_id)
const LP_MODE_CMIX_COMPLETED
const LP_MODE_CMIX_COMPLETED_OR_PASSED
update(bool $a_refresh_lp=true)
const LP_MODE_MANUAL_BY_TUTOR
const LP_MODE_CMIX_PASSED_WITH_FAILED
const LP_MODE_CMIX_PASSED
const LP_MODE_COLLECTION_MANUAL
static _mode2InfoText(int $a_mode)
const LP_MODE_INDIVIDUAL_ASSESSMENT
const LP_MODE_COURSE_REFERENCE
const LP_MODE_COLLECTION_TLT
const LP_MODE_TEST_FINISHED
ilObjectDataCache $objectDataCache
const LP_MODE_SCORM_PACKAGE
const LP_MODE_CMIX_COMPL_WITH_FAILED
const LP_MODE_EXERCISE_RETURNED
const LP_MODE_CONTRIBUTION_TO_DISCUSSION
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
const LP_MODE_VISITED_PAGES
const LP_MODE_STUDY_PROGRAMME
const LP_MODE_TEST_PASSED
static _delete(int $a_obj_id)
static _refreshStatus(int $a_obj_id, ?array $a_users=null)
const LP_MODE_SURVEY_FINISHED
__construct(int $a_obj_id)
static _lookupDBMode(int $a_obj_id)
static _lookupDBModeForObjects(array $a_obj_ids)
const LP_MODE_DEACTIVATED
const LP_MODE_COLLECTION_MOBS
const LP_MODE_CONTENT_VISITED
const LP_MODE_CMIX_COMPL_OR_PASSED_WITH_FAILED
const LP_MODE_LTI_OUTCOME
cloneSettings(int $a_new_obj_id)
Clone settings public.
static getInstance(int $obj_id)
static _deleteByObjId(int $a_obj_id)
static _getValidTimeSpan()
static _mode2Text(int $a_mode)