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 './Modules/Test/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 $users = array_diff((array) $users,ilLPStatusWrapper::_getFailed($a_obj_id));
00067
00068 $ilBench->stop('LearningProgress','9182_LPStatusTestPassed_inProgress');
00069 return $users ? $users : array();
00070 }
00071
00072 function _getCompleted($a_obj_id)
00073 {
00074 global $ilDB;
00075
00076 global $ilBench;
00077 $ilBench->start('LearningProgress','9183_LPStatusTestPassed_completed');
00078
00079 include_once './Modules/Test/classes/class.ilObjTestAccess.php';
00080 include_once './Services/Tracking/classes/class.ilTestResultCache.php';
00081
00082 $status_info = ilLPStatusWrapper::_getStatusInfo($a_obj_id);
00083 foreach($status_info['results'] as $user_data)
00084 {
00085 if($user_data['passed'])
00086 {
00087 $user_ids[] = $user_data['user_id'];
00088 }
00089 }
00090 $ilBench->stop('LearningProgress','9183_LPStatusTestPassed_completed');
00091 return $user_ids ? $user_ids : array();
00092 }
00093
00094 function _getFailed($a_obj_id)
00095 {
00096 $status_info = ilLPStatusWrapper::_getStatusInfo($a_obj_id);
00097 foreach($status_info['results'] as $user_data)
00098 {
00099 if($user_data['failed'])
00100 {
00101 $user_ids[] = $user_data['user_id'];
00102 }
00103 }
00104 return $user_ids ? $user_ids : array();
00105 }
00106
00107 function _getStatusInfo($a_obj_id)
00108 {
00109 include_once './Modules/Test/classes/class.ilObjTestAccess.php';
00110 $status_info['results'] = ilObjTestAccess::_getPassedUsers($a_obj_id);
00111 return $status_info;
00112 }
00113
00114 }
00115 ?>