function &_getItems($a_obj_id, $a_use_subtree_by_id = false) { global $ilObjDataCache; global $ilDB, $tree; include_once 'Services/Tracking/classes/class.ilLPObjSettings.php'; $mode = ilLPObjSettings::_lookupMode($a_obj_id); if ($mode == LP_MODE_OBJECTIVES) { include_once 'Modules/Course/classes/class.ilCourseObjective.php'; return ilCourseObjective::_getObjectiveIds($a_obj_id); } if ($mode != LP_MODE_SCORM and $mode != LP_MODE_COLLECTION and $mode != LP_MODE_MANUAL_BY_TUTOR) { return array(); } if ($ilObjDataCache->lookupType($a_obj_id) != 'sahs') { $course_ref_ids = ilObject::_getAllReferences($a_obj_id); $course_ref_id = end($course_ref_ids); if (!$a_use_subtree_by_id) { $possible_items = ilLPCollections::_getPossibleItems($course_ref_id); } else { $possible_items = $tree->getSubTreeIds($course_ref_id); } $query = "SELECT * FROM ut_lp_collections utc " . "JOIN object_reference obr ON item_id = ref_id " . "JOIN object_data obd ON obr.obj_id = obd.obj_id " . "WHERE utc.obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " " . "AND active = " . $ilDB->quote(1, 'integer') . " " . "ORDER BY title"; } else { // SAHS $query = "SELECT * FROM ut_lp_collections WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " " . "AND active = " . $ilDB->quote(1, 'integer'); } $res = $ilDB->query($query); while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) { if ($ilObjDataCache->lookupType($a_obj_id) != 'sahs') { if (!in_array($row->item_id, $possible_items)) { ilLPCollections::__deleteEntry($a_obj_id, $row->item_id); continue; } } // Check anonymized if ($ilObjDataCache->lookupType($item_obj_id = $ilObjDataCache->lookupObjId($row->item_id)) == 'tst') { include_once './Modules/Test/classes/class.ilObjTest.php'; if (ilObjTest::_lookupAnonymity($item_obj_id)) { ilLPCollections::__deleteEntry($a_obj_id, $row->item_id); continue; } } $items[] = $row->item_id; } return $items ? $items : array(); }