Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00033 include_once './Services/Tracking/classes/class.ilLPStatus.php';
00034
00035 class ilLPStatusTestPassed extends ilLPStatus
00036 {
00037
00038 function ilLPStatusTestPassed($a_obj_id)
00039 {
00040 global $ilDB;
00041
00042 parent::ilLPStatus($a_obj_id);
00043 $this->db =& $ilDB;
00044 }
00045
00046 function _getInProgress($a_obj_id)
00047 {
00048 global $ilDB;
00049
00050 global $ilBench;
00051 $ilBench->start('LearningProgress','9182_LPStatusTestPassed_inProgress');
00052
00053
00054 include_once './assessment/classes/class.ilObjTestAccess.php';
00055
00056 $query = "SELECT DISTINCT(user_fi) FROM tst_active ".
00057 "WHERE test_fi = '".ilObjTestAccess::_getTestIDFromObjectID($a_obj_id)."'";
00058
00059 $res = $ilDB->query($query);
00060 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
00061 {
00062 $user_ids[] = $row->user_fi;
00063 }
00064
00065 $users = array_diff((array) $user_ids,ilLPStatusWrapper::_getCompleted($a_obj_id));
00066
00067 $ilBench->stop('LearningProgress','9182_LPStatusTestPassed_inProgress');
00068 return $users ? $users : array();
00069 }
00070
00071 function _getCompleted($a_obj_id)
00072 {
00073 global $ilDB;
00074
00075 global $ilBench;
00076 $ilBench->start('LearningProgress','9183_LPStatusTestPassed_completed');
00077
00078
00079 include_once './assessment/classes/class.ilObjTestAccess.php';
00080 include_once './Services/Tracking/classes/class.ilTestResultCache.php';
00081
00082 $test_cache =& ilTestResultCache::_getInstance();
00083 $test_cache->store($a_obj_id,$result = ilObjTestAccess::_getPassedUsers($a_obj_id));
00084
00085 foreach($result as $user_data)
00086 {
00087 if($user_data['passed'])
00088 {
00089 $user_ids[] = $user_data['user_id'];
00090 }
00091 }
00092 $ilBench->stop('LearningProgress','9183_LPStatusTestPassed_completed');
00093 return $user_ids ? $user_ids : array();
00094 }
00095 }
00096 ?>