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();
 }