65 return array(
'questionTitles',
'participants',
'statistics',
'arrFilter',
'datasets',
'test');
75 $this->participants = array();
76 $this->questionTitles = array();
120 SELECT usr_data.usr_id,
127 FROM tst_pass_result, tst_active
129 ON tst_active.user_fi = usr_data.usr_id
130 WHERE tst_active.active_id = tst_pass_result.active_fi
131 AND tst_active.test_fi = %s
132 ORDER BY usr_data.lastname,
134 tst_pass_result.active_fi,
135 tst_pass_result.pass,
136 tst_pass_result.tstamp
142 array($this->
getTest()->getTestId())
160 include_once
"./Modules/Test/classes/class.ilTestEvaluationPassData.php";
161 include_once
"./Modules/Test/classes/class.ilTestEvaluationUserData.php";
163 $this->participants = array();
195 $this->
getParticipant($row[
"active_fi"])->getPass(
$row[
"pass"])->setObligationsAnswered(
$row[
"obligations_answered"]);
197 if (
$row[
"questioncount"] == 0) {
206 $this->
getParticipant($row[
"active_fi"])->getPass(
$row[
"pass"])->setNrOfAnsweredQuestions(
$row[
"answeredquestions"]);
210 $this->
getParticipant($row[
'active_fi'])->getPass(
$row[
'pass'])->setRequestedHintsCount(
$row[
'hint_count']);
211 $this->
getParticipant($row[
'active_fi'])->getPass(
$row[
'pass'])->setDeductedHintPoints(
$row[
'hint_points']);
237 $this->questionTitles[$question_id] = $question_title;
247 if (array_key_exists($question_id, $this->questionTitles)) {
248 return $this->questionTitles[$question_id];
256 include_once
"./Modules/Test/classes/class.ilTestStatistics.php";
262 $finishedParticipants = 0;
264 foreach ($this->participants as $active_id => $participant) {
265 if (!$participant->isSubmitted()) {
269 $finishedParticipants++;
272 return $finishedParticipants;
277 if (is_array($this->arrFilter) && count($this->arrFilter) > 0) {
278 $filteredParticipants = array();
279 $courseids = array();
283 if (array_key_exists(
'group', $this->arrFilter)) {
285 $groupids = array_merge($groupids, $ids);
287 if (array_key_exists(
'course', $this->arrFilter)) {
289 $courseids = array_merge($courseids, $ids);
291 foreach ($this->participants as $active_id => $participant) {
293 if (array_key_exists(
'name', $this->arrFilter)) {
294 if (!(strpos(strtolower($participant->getName()), strtolower($this->arrFilter[
'name'])) !==
false)) {
299 if (array_key_exists(
'group', $this->arrFilter)) {
300 include_once
"./Services/Membership/classes/class.ilParticipants.php";
302 $foundfilter =
false;
303 if (count(array_intersect($groupids, $groups))) {
312 if (array_key_exists(
'course', $this->arrFilter)) {
313 include_once
"./Services/Membership/classes/class.ilParticipants.php";
315 $foundfilter =
false;
316 if (count(array_intersect($courseids, $courses))) {
325 if (array_key_exists(
'active_id', $this->arrFilter)) {
326 if ($active_id != $this->arrFilter[
'active_id']) {
332 $filteredParticipants[$active_id] = $participant;
335 return $filteredParticipants;
343 $this->arrFilter = array();
354 $this->arrFilter = array($by =>
$text);
369 $this->participants[$active_id] = $participant;
378 return $this->participants[$active_id];
383 return array_key_exists($active_id, $this->participants);
388 unset($this->participants[$active_id]);
398 return array_keys($this->participants);
An exception for terminatinating execution or to throw for unit testing.
static _getQuestionCountAndPointsForPassOfParticipant($active_id, $pass)
static _getIdsForTitle($title, $type='', $partialmatch=false)
static _getMembershipByType($a_usr_id, $a_type, $a_only_member_role=false)
get membership by type Get course or group membership
participantExists($active_id)
removeParticipant($active_id)
getAccessFilteredParticipantList()
addQuestionTitle($question_id, $question_title)
getQuestionTitle($question_id)
addParticipant($active_id, $participant)
getTotalFinishedParticipants()
setFilterArray($arrFilter)
$accessFilteredParticipantList
getParticipant($active_id)
setAccessFilteredParticipantList($accessFilteredParticipantList)
checkParticipantAccess($activeId)
__construct(ilObjTest $test=null)
Constructor.
This class calculates statistical data for a test which has to be calculated using all participant da...