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'];
 
  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();
 
  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') .
 
  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)
 
  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');
 
  284        $query = 
"INSERT INTO ut_lp_settings (obj_id,obj_type,u_mode,visits) " .
 
  302        include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
 
  312        $query = 
"DELETE FROM ut_lp_settings WHERE obj_id = " . 
$ilDB->quote($a_obj_id, 
'integer');
 
  327        $query = 
"SELECT visits FROM ut_lp_settings " .
 
  328            "WHERE obj_id = " . 
$ilDB->quote($a_obj_id, 
'integer');
 
  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;
 
  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];
 
  425        $ilDB->manipulate(
"DELETE FROM ut_lp_settings" .
 
  426            " WHERE obj_id = " . 
$ilDB->quote($a_obj_id, 
"integer"));
 
An exception for terminatinating execution or to throw for unit testing.
const LP_MODE_COLLECTION_TLT
const LP_MODE_CMIX_COMPLETED_OR_PASSED
const LP_MODE_INDIVIDUAL_ASSESSMENT
update($a_refresh_lp=true)
const LP_MODE_CONTENT_VISITED
cloneSettings($a_new_obj_id)
Clone settings.
static _lookupVisits($a_obj_id)
const LP_MODE_CMIX_COMPL_WITH_FAILED
const LP_MODE_SURVEY_FINISHED
const LP_MODE_CMIX_PASSED
static _deleteByObjId($a_obj_id)
const LP_MODE_COURSE_REFERENCE
const LP_MODE_STUDY_PROGRAMME
const LP_MODE_CMIX_COMPL_OR_PASSED_WITH_FAILED
const LP_MODE_DEACTIVATED
const LP_MODE_SCORM_PACKAGE
static _mode2Text($a_mode)
__construct($a_obj_id)
ilLPObjSettings constructor.
const LP_MODE_TEST_PASSED
const LP_MODE_VISITED_PAGES
const LP_MODE_TEST_FINISHED
const LP_MODE_COLLECTION_MANUAL
static _lookupDBMode($a_obj_id)
static _delete($a_obj_id)
const LP_MODE_LTI_OUTCOME
static _lookupDBModeForObjects(array $a_obj_ids)
const LP_MODE_MANUAL_BY_TUTOR
const LP_MODE_CMIX_COMPLETED
const LP_MODE_CMIX_PASSED_WITH_FAILED
static _mode2InfoText($a_mode)
const LP_MODE_EXERCISE_RETURNED
const LP_MODE_COLLECTION_MOBS
static _refreshStatus($a_obj_id, $a_users=null)
Set dirty.
static _getValidTimeSpan()
static getInstance($a_obj_id)
foreach($_POST as $key=> $value) $res