4 include_once
"./Modules/Test/classes/inc.AssessmentConstants.php";
5 include_once
'Modules/Test/classes/class.ilTestService.php';
102 $this->
object =& $a_object;
103 $this->tree =&
$tree;
104 $this->ref_id = $a_object->ref_id;
108 require_once
'Modules/Test/classes/class.ilTestSessionFactory.php';
111 require_once
'Modules/Test/classes/class.ilTestSequenceFactory.php';
112 $this->testSequenceFactory =
new ilTestSequenceFactory($this->db, $this->lng, $ilPluginAdmin, $this->
object);
136 $cmd = $this->ctrl->getCmd();
137 $next_class = $this->ctrl->getNextClass($this);
164 if( !isset(
$_GET[
'pdf']) )
169 if( !(
bool)
$_GET[
'pdf'] )
185 public function getPassOverview($active_id, $targetclass =
"", $targetcommand =
"", $short = FALSE, $hide_details = FALSE, $adminMode =
false)
187 require_once
'Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php';
188 require_once
'Modules/Test/classes/tables/class.ilTestPassOverviewTableGUI.php';
198 $counted_pass = $this->
object->_getResultPass($active_id);
199 $reached_pass = $this->
object->_getPass($active_id);
201 require_once
'Modules/Test/classes/class.ilTestPassesSelector.php';
203 $testPassesSelector->setAdminModeEnabled($adminMode);
204 $testPassesSelector->setActiveId($active_id);
205 $lastFinishedPass = $this->testSessionFactory->getSession($active_id)->getLastFinishedPass();
206 $testPassesSelector->setLastFinishedPass($lastFinishedPass);
208 foreach($testPassesSelector->getReportablePasses() as
$pass)
214 $result_array =& $this->
object->getTestResult($active_id,
$pass);
215 if(!$result_array[
'pass'][
'total_max_points'])
221 $percentage = ($result_array[
'pass'][
'total_reached_points'] / $result_array[
'pass'][
'total_max_points']) * 100;
223 $total_max = $result_array[
'pass'][
'total_max_points'];
224 $total_reached = $result_array[
'pass'][
'total_reached_points'];
225 $total_requested_hints = $result_array[
'pass'][
'total_requested_hints'];
229 if(strlen($targetclass) && strlen($targetcommand))
231 $this->ctrl->setParameterByClass($targetclass,
'active_id', $active_id);
232 $this->ctrl->setParameterByClass($targetclass,
'pass',
$pass);
235 $aslgui->setListTitle($this->lng->txt(
'actions'));
236 $aslgui->setId(
$pass);
238 $this->lng->txt(
'tst_pass_details'),
240 $this->ctrl->getLinkTargetByClass($targetclass, $targetcommand)
242 if($this->object->isPassDeletionAllowed() &&
$pass != $counted_pass)
245 $this->lng->txt(
'delete'),
247 $this->ctrl->getLinkTargetByClass($targetclass,
'confirmDeletePass')
249 $delete_entry =
true;
252 if($delete_entry ==
true)
254 $row[
'pass_details'] = $aslgui->getHTML();
258 $row[
'pass_details'] =
'<a href="'.$this->ctrl->getLinkTargetByClass($targetclass, $targetcommand).
'">'.$this->lng->txt(
'tst_pass_details').
'</a>';
265 if((
$pass == $counted_pass))
267 $row[
'scored'] =
'⊗';
276 $row[
'date'] = $this->
object->getPassFinishDate($active_id,
$pass);
279 $row[
'answered'] = $result_array[
'pass'][
'num_workedthrough'] .
' ' . strtolower($this->lng->txt(
'of')) .
' ' . (count($result_array) - 2);
280 if($this->object->isOfferingQuestionHintsEnabled())
282 $row[
'hints'] = $total_requested_hints;
284 $row[
'reached'] = $total_reached .
' ' . strtolower($this->lng->txt(
'of')) .
' ' . $total_max;
285 $row[
'percentage'] = $percentage;
291 $table->setData($data);
292 return $table->getHTML();
305 function getPassListOfAnswers(&$result_array, $active_id,
$pass, $show_solutions = FALSE, $only_answered_questions = FALSE, $show_question_only = FALSE, $show_reached_points = FALSE, $anchorNav =
false)
307 $maintemplate =
new ilTemplate(
"tpl.il_as_tst_list_of_answers.html", TRUE, TRUE,
"Modules/Test");
311 foreach ($result_array as $question_data)
313 if (($question_data[
"workedthrough"] == 1) || ($only_answered_questions == FALSE))
315 $template =
new ilTemplate(
"tpl.il_as_qpl_question_printview.html", TRUE, TRUE,
"Modules/TestQuestionPool");
316 $question = $question_data[
"qid"];
317 if (is_numeric($question))
319 $maintemplate->setCurrentBlock(
"printview_question");
320 $question_gui = $this->
object->createQuestionGUI(
"", $question);
321 if (is_object($question_gui))
325 $template->setCurrentBlock(
'block_id');
326 $template->setVariable(
'BLOCK_ID',
"detailed_answer_block_act_{$active_id}_qst_{$question}");
327 $template->parseCurrentBlock();
329 $template->setCurrentBlock(
'back_anchor');
330 $template->setVariable(
'HREF_BACK_ANCHOR',
"#pass_details_tbl_row_act_{$active_id}_qst_{$question}");
331 $template->setVariable(
'TXT_BACK_ANCHOR', $this->lng->txt(
'tst_back_to_question_list'));
332 $template->parseCurrentBlock();
335 if ($show_reached_points)
337 $template->setCurrentBlock(
"result_points");
338 $template->setVariable(
"RESULT_POINTS", $this->lng->txt(
"tst_reached_points") .
": " . $question_gui->object->getReachedPoints($active_id,
$pass) .
" " . $this->lng->txt(
"of") .
" " . $question_gui->object->getMaximumPoints());
339 $template->parseCurrentBlock();
341 $template->setVariable(
"COUNTER_QUESTION", $counter.
". ");
342 $template->setVariable(
"TXT_QUESTION_ID", $this->lng->txt(
'question_id_short'));
343 $template->setVariable(
"QUESTION_ID", $question_gui->object->getId());
344 $template->setVariable(
"QUESTION_TITLE", $this->object->getQuestionTitle($question_gui->object->getTitle()));
346 $show_question_only = ($this->
object->getShowSolutionAnswersOnly()) ? TRUE : FALSE;
353 $compare_template =
new ilTemplate(
'tpl.il_as_tst_answers_compare.html', TRUE, TRUE,
'Modules/Test');
354 $compare_template->setVariable(
"HEADER_PARTICIPANT", $this->lng->txt(
'tst_header_participant'));
355 $compare_template->setVariable(
"HEADER_SOLUTION", $this->lng->txt(
'tst_header_solution'));
356 $result_output = $question_gui->getSolutionOutput($active_id,
$pass, $show_solutions, FALSE, $show_question_only, $showFeedback);
357 $best_output = $question_gui->getSolutionOutput($active_id,
$pass, FALSE, FALSE, $show_question_only, FALSE, TRUE);
359 $compare_template->setVariable(
'PARTICIPANT', $result_output);
360 $compare_template->setVariable(
'SOLUTION', $best_output);
361 $template->setVariable(
'SOLUTION_OUTPUT', $compare_template->get());
365 $result_output = $question_gui->getSolutionOutput($active_id,
$pass, $show_solutions, FALSE, $show_question_only, $showFeedback);
366 $template->setVariable(
'SOLUTION_OUTPUT', $result_output);
369 $maintemplate->setCurrentBlock(
"printview_question");
370 $maintemplate->setVariable(
"QUESTION_PRINTVIEW", $template->get());
371 $maintemplate->parseCurrentBlock();
377 $maintemplate->setVariable(
"RESULTS_OVERVIEW", sprintf($this->lng->txt(
"tst_eval_results_by_pass"),
$pass + 1));
378 return $maintemplate->get();
395 include_once
"./Modules/TestQuestionPool/classes/class.assQuestion.php";
397 $maintemplate =
new ilTemplate(
"tpl.il_as_tst_list_of_answers.html", TRUE, TRUE,
"Modules/Test");
399 include_once
"./Modules/Test/classes/class.ilObjAssessmentFolder.php";
404 foreach ($result_array as $question_data)
406 $question = $question_data[
"qid"];
407 if (is_numeric($question))
409 $question_gui = $this->
object->createQuestionGUI(
"", $question);
410 if (in_array($question_gui->object->getQuestionTypeID(), $scoring))
412 $template =
new ilTemplate(
"tpl.il_as_qpl_question_printview.html", TRUE, TRUE,
"Modules/TestQuestionPool");
413 $scoretemplate =
new ilTemplate(
"tpl.il_as_tst_manual_scoring_points.html", TRUE, TRUE,
"Modules/Test");
414 #mbecker: No such block. $this->tpl->setCurrentBlock("printview_question");
415 $template->setVariable(
"COUNTER_QUESTION", $counter.
". ");
416 $template->setVariable(
"QUESTION_TITLE", $this->object->getQuestionTitle($question_gui->object->getTitle()));
417 $points = $question_gui->object->getMaximumPoints();
420 $template->setVariable(
"QUESTION_POINTS", $points .
" " . $this->lng->txt(
"point"));
424 $template->setVariable(
"QUESTION_POINTS", $points .
" " . $this->lng->txt(
"points"));
427 $show_question_only = ($this->
object->getShowSolutionAnswersOnly()) ? TRUE : FALSE;
428 $result_output = $question_gui->getSolutionOutput($active_id,
$pass, $show_solutions, FALSE, $show_question_only, $this->object->getShowSolutionFeedback(), FALSE, TRUE);
430 $solout = $question_gui->object->getSuggestedSolutionOutput();
433 $scoretemplate->setCurrentBlock(
"suggested_solution");
434 $scoretemplate->setVariable(
"TEXT_SUGGESTED_SOLUTION", $this->lng->txt(
"solution_hint"));
435 $scoretemplate->setVariable(
"VALUE_SUGGESTED_SOLUTION", $solout);
436 $scoretemplate->parseCurrentBlock();
439 $scoretemplate->setCurrentBlock(
"feedback");
440 $scoretemplate->setVariable(
"FEEDBACK_NAME_INPUT", $question);
441 $feedback = $this->
object->getManualFeedback($active_id, $question,
$pass);
442 $scoretemplate->setVariable(
"VALUE_FEEDBACK",
ilUtil::prepareFormOutput($this->object->prepareTextareaOutput($feedback, TRUE)));
443 $scoretemplate->setVariable(
"TEXT_MANUAL_FEEDBACK", $this->lng->txt(
"set_manual_feedback"));
444 $scoretemplate->parseCurrentBlock();
446 $scoretemplate->setVariable(
"NAME_INPUT", $question);
447 $this->ctrl->setParameter($this,
"active_id", $active_id);
448 $this->ctrl->setParameter($this,
"pass",
$pass);
449 $scoretemplate->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this,
"manscoring"));
450 $scoretemplate->setVariable(
"LABEL_INPUT", $this->lng->txt(
"tst_change_points_for_question"));
452 $scoretemplate->setVariable(
"VALUE_SAVE", $this->lng->txt(
"save"));
454 $template->setVariable(
"SOLUTION_OUTPUT", $result_output);
455 $maintemplate->setCurrentBlock(
"printview_question");
456 $maintemplate->setVariable(
"QUESTION_PRINTVIEW", $template->get());
457 $maintemplate->setVariable(
"QUESTION_SCORING", $scoretemplate->get());
458 $maintemplate->parseCurrentBlock();
466 $maintemplate->setVariable(
"NO_QUESTIONS_FOUND", $this->lng->txt(
"manscoring_questions_not_found"));
468 $maintemplate->setVariable(
"RESULTS_OVERVIEW", sprintf($this->lng->txt(
"manscoring_results_pass"),
$pass+1));
470 include_once
"./Services/YUI/classes/class.ilYuiUtil.php";
473 return $maintemplate->get();
478 $this->ctrl->setParameter($targetGUI,
'active_id', $active_id);
479 $this->ctrl->setParameter($targetGUI,
'pass',
$pass);
483 $tableGUI->setAnswerListAnchorEnabled($questionAnchorNav);
484 $tableGUI->setSingleAnswerScreenCmd($questionDetailsCMD);
485 $tableGUI->setShowHintCount($this->object->isOfferingQuestionHintsEnabled());
486 $tableGUI->setActiveId($active_id);
487 $tableGUI->setPass(
$pass);
488 $tableGUI->setShowSuggestedSolution(
false);
490 $tableGUI->initColumns()->initFilter();
492 $usersQuestionSolutions = array();
494 foreach($result_array as $key => $val)
496 if($key ===
'test' || $key ===
'pass')
501 if( $this->object->getShowSolutionSuggested() && strlen($val[
'solution']) )
503 $tableGUI->setShowSuggestedSolution(
true);
506 $usersQuestionSolutions[$key] = $val;
509 $tableGUI->setFilterCommand($targetCMD.
'SetTableFilter');
510 $tableGUI->setResetCommand($targetCMD.
'ResetTableFilter');
512 $tableGUI->setData($usersQuestionSolutions);
514 return $this->ctrl->getHTML($tableGUI);
525 if ($this->object->getShowSolutionSignature() && !$this->
object->getAnonymity())
527 $template =
new ilTemplate(
"tpl.il_as_tst_results_userdata_signature.html", TRUE, TRUE,
"Modules/Test");
528 $template->setVariable(
"TXT_DATE", $this->lng->txt(
"date"));
533 $template->setVariable(
"TXT_SIGNATURE", $this->lng->txt(
"tst_signature"));
535 return $template->get();
554 if(!is_object($testSession))
throw new TestException();
555 $template =
new ilTemplate(
"tpl.il_as_tst_results_userdata.html", TRUE, TRUE,
"Modules/Test");
556 include_once
'./Services/User/classes/class.ilObjUser.php';
557 $user_id = $this->
object->_getUserIdFromActiveId($active_id);
565 $user->setLastname($this->lng->txt(
"deleted_user"));
567 $t = $testSession->getSubmittedTimestamp();
570 $t = $this->
object->_getLastAccess($testSession->getActiveId());
572 $print_date = mktime(date(
"H"), date(
"i"), date(
"s"), date(
"m") , date(
"d"), date(
"Y"));
575 if (strlen($user->getMatriculation()) && (($this->object->getAnonymity() == FALSE) || ($overwrite_anonymity)))
577 $template->setCurrentBlock(
"user_matric");
578 $template->setVariable(
"TXT_USR_MATRIC", $this->lng->txt(
"matriculation"));
579 $template->parseCurrentBlock();
580 $template->setCurrentBlock(
"user_matric_value");
581 $template->setVariable(
"VALUE_USR_MATRIC", $user->getMatriculation());
582 $template->parseCurrentBlock();
583 $template->touchBlock(
"user_matric_separator");
584 $title_matric =
" - " . $this->lng->txt(
"matriculation") .
": " . $user->getMatriculation();
587 $invited_user = array_pop($this->object->getInvitedUsers($user_id));
588 if (strlen($invited_user[
"clientip"]))
590 $template->setCurrentBlock(
"user_clientip");
591 $template->setVariable(
"TXT_CLIENT_IP", $this->lng->txt(
"client_ip"));
592 $template->parseCurrentBlock();
593 $template->setCurrentBlock(
"user_clientip_value");
594 $template->setVariable(
"VALUE_CLIENT_IP", $invited_user[
"clientip"]);
595 $template->parseCurrentBlock();
596 $template->touchBlock(
"user_clientip_separator");
597 $title_client =
" - " . $this->lng->txt(
"clientip") .
": " . $invited_user[
"clientip"];
600 $template->setVariable(
"TXT_TEST_TITLE", $this->lng->txt(
"title"));
601 $template->setVariable(
"VALUE_TEST_TITLE", $this->object->getTitle());
602 $template->setVariable(
"TXT_USR_NAME", $this->lng->txt(
"name"));
603 $uname = $this->
object->userLookupFullName($user_id, $overwrite_anonymity);
604 $template->setVariable(
"VALUE_USR_NAME", $uname);
605 $template->setVariable(
"TXT_TEST_DATE", $this->lng->txt(
"tst_tst_date"));
606 $template->setVariable(
"TXT_PRINT_DATE", $this->lng->txt(
"tst_print_date"));
614 $pagetitle =
": " . $this->
object->getTitle() . $title_matric . $title_client;
615 $this->tpl->setHeaderPageTitle($pagetitle);
617 return $template->get();
633 $test_id = $this->
object->getTestId();
634 $question_gui = $this->
object->createQuestionGUI(
"", $question_id);
636 $template =
new ilTemplate(
"tpl.il_as_tst_correct_solution_output.html", TRUE, TRUE,
"Modules/Test");
637 $show_question_only = ($this->
object->getShowSolutionAnswersOnly()) ? TRUE : FALSE;
638 $result_output = $question_gui->getSolutionOutput($active_id,
$pass, TRUE, FALSE, $show_question_only, $this->object->getShowSolutionFeedback(), FALSE, FALSE, TRUE);
639 $best_output = $question_gui->getSolutionOutput($active_id,
$pass, FALSE, FALSE, $show_question_only, FALSE, TRUE, FALSE, FALSE);
640 if( $this->object->getShowSolutionFeedback() &&
$_GET[
'cmd'] !=
'outCorrectSolution' )
642 $specificAnswerFeedback = $question_gui->getSpecificFeedbackOutput($active_id,
$pass);
643 if( strlen($specificAnswerFeedback) )
645 $template->setCurrentBlock(
"outline_specific_feedback");
646 $template->setVariable(
"OUTLINE_SPECIFIC_FEEDBACK", $specificAnswerFeedback);
647 $template->parseCurrentBlock();
650 if ($this->object->isBestSolutionPrintedWithResult() && strlen($best_output))
652 $template->setCurrentBlock(
"best_solution");
653 $template->setVariable(
"TEXT_BEST_SOLUTION", $this->lng->txt(
"tst_best_solution_is"));
654 $template->setVariable(
"BEST_OUTPUT", $best_output);
655 $template->parseCurrentBlock();
657 $template->setVariable(
"TEXT_YOUR_SOLUTION", $this->lng->txt(
"tst_your_answer_was"));
658 $maxpoints = $question_gui->object->getMaximumPoints();
661 $template->setVariable(
"QUESTION_TITLE", $this->object->getQuestionTitle($question_gui->object->getTitle()) .
" (" . $maxpoints .
" " . $this->lng->txt(
"point") .
")");
665 $template->setVariable(
"QUESTION_TITLE", $this->object->getQuestionTitle($question_gui->object->getTitle()) .
" (" . $maxpoints .
" " . $this->lng->txt(
"points") .
")");
667 $template->setVariable(
"SOLUTION_OUTPUT", $result_output);
668 $template->setVariable(
"RECEIVED_POINTS", sprintf($this->lng->txt(
"you_received_a_of_b_points"), $question_gui->object->getReachedPoints($active_id,
$pass), $maxpoints));
669 $template->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
670 $template->setVariable(
"BACKLINK_TEXT",
"<< " . $this->lng->txt(
"back"));
671 return $template->get();
686 function getResultsOfUserOutput($testSession, $active_id,
$pass, $targetGUI, $show_pass_details = TRUE, $show_answers = TRUE, $show_question_only = FALSE, $show_reached_points = FALSE)
690 include_once(
"./Services/UICore/classes/class.ilTemplate.php");
691 $template =
new ilTemplate(
"tpl.il_as_tst_results_participant.html", TRUE, TRUE,
"Modules/Test");
695 $user_id = $this->participantData->getUserIdByActiveId($active_id);
696 $uname = $this->participantData->getConcatedFullnameByActiveId($active_id,
false);
700 $user_id = $this->
object->_getUserIdFromActiveId($active_id);
701 $uname = $this->
object->userLookupFullName($user_id, TRUE);
704 if (((array_key_exists(
"pass",
$_GET)) && (strlen(
$_GET[
"pass"]) > 0)) || (!is_null(
$pass)))
713 $result_array =& $this->
object->getTestResult($active_id,
$pass);
714 $command_solution_details =
"";
715 if ($show_pass_details)
717 $detailsoverview = $this->
getPassDetailsOverview($result_array, $active_id,
$pass, $targetGUI,
"getResultsOfUserOutput", $command_solution_details, $show_answers);
720 $user_id = $this->
object->_getUserIdFromActiveId($active_id);
721 $showAllAnswers = TRUE;
722 if ($this->object->isExecutable($testSession, $user_id))
724 $showAllAnswers = FALSE;
729 $result_array, $active_id,
$pass,
$_SESSION[
'tst_results_show_best_solutions'],
730 $showAllAnswers, $show_question_only, $show_reached_points, $show_pass_details
734 $template->setVariable(
"LIST_OF_ANSWERS", $list_of_answers);
736 $template->setVariable(
"PASS_DETAILS", $detailsoverview);
739 $template->setVariable(
"SIGNATURE", $signature);
741 if ($this->object->isShowExamIdInTestResultsEnabled())
743 $template->setCurrentBlock(
'exam_id_footer');
744 $template->setVariable(
'EXAM_ID_VAL', $this->object->lookupExamId(
745 $testSession->getActiveId(),
$pass
747 $template->setVariable(
'EXAM_ID_TXT', $this->lng->txt(
'exam_id'));
748 $template->parseCurrentBlock();
752 $template->setCurrentBlock(
'participant_back_anchor');
753 $template->setVariable(
"HREF_PARTICIPANT_BACK_ANCHOR",
"#tst_results_toolbar");
754 $template->setVariable(
"TXT_PARTICIPANT_BACK_ANCHOR", $this->lng->txt(
'tst_back_to_top'));
755 $template->parseCurrentBlock();
757 $template->setCurrentBlock(
'participant_block_id');
758 $template->setVariable(
"PARTICIPANT_BLOCK_ID",
"participant_active_{$active_id}");
759 $template->parseCurrentBlock();
761 $template->setVariable(
"TEXT_HEADING", sprintf($this->lng->txt(
"tst_result_user_name"), $uname));
762 $template->setVariable(
"USER_DATA", $user_data);
766 $template->setCurrentBlock(
'grading_message');
768 $template->parseCurrentBlock();
771 $template->parseCurrentBlock();
773 return $template->get();
785 $template =
new ilTemplate(
"tpl.il_as_tst_results_head_user_pass.html", TRUE, TRUE,
"Modules/Test");
786 include_once
'./Services/User/classes/class.ilObjUser.php';
787 $user_id = $this->
object->_getUserIdFromActiveId($active_id);
795 $user->setLastname($this->lng->txt(
"deleted_user"));
798 if (strlen($user->getMatriculation()) && (($this->object->getAnonymity() == FALSE)))
800 $template->setCurrentBlock(
"user_matric");
801 $template->setVariable(
"TXT_USR_MATRIC", $this->lng->txt(
"matriculation"));
802 $template->parseCurrentBlock();
803 $template->setCurrentBlock(
"user_matric_value");
804 $template->setVariable(
"VALUE_USR_MATRIC", $user->getMatriculation());
805 $template->parseCurrentBlock();
806 $template->touchBlock(
"user_matric_separator");
807 $title_matric =
" - " . $this->lng->txt(
"matriculation") .
": " . $user->getMatriculation();
810 $invited_user = array_pop($this->object->getInvitedUsers($user_id));
811 if (strlen($invited_user[
"clientip"]))
813 $template->setCurrentBlock(
"user_clientip");
814 $template->setVariable(
"TXT_CLIENT_IP", $this->lng->txt(
"client_ip"));
815 $template->parseCurrentBlock();
816 $template->setCurrentBlock(
"user_clientip_value");
817 $template->setVariable(
"VALUE_CLIENT_IP", $invited_user[
"clientip"]);
818 $template->parseCurrentBlock();
819 $template->touchBlock(
"user_clientip_separator");
820 $title_client =
" - " . $this->lng->txt(
"clientip") .
": " . $invited_user[
"clientip"];
823 $template->setVariable(
"TXT_USR_NAME", $this->lng->txt(
"name"));
824 $uname = $this->
object->userLookupFullName($user_id, FALSE);
825 $template->setVariable(
"VALUE_USR_NAME", $uname);
826 $template->setVariable(
"TXT_PASS", $this->lng->txt(
"scored_pass"));
827 $template->setVariable(
"VALUE_PASS",
$pass);
828 return $template->get();
841 $question_gui = $this->
object->createQuestionGUI(
"", $question_id);
843 $foundusers = $this->
object->getParticipantsForTestAndQuestion($test_id, $question_id);
845 foreach($foundusers as $active_id => $passes)
847 $resultpass = $this->
object->_getResultPass($active_id);
848 for($i = 0; $i < count($passes); $i++)
850 if(($resultpass !== null) && ($resultpass == $passes[$i][
"pass"]))
854 $output .=
"<br /><br /><br />";
858 $question_gui = $this->
object->createQuestionGUI(
"", $passes[$i][
"qid"]);
860 $output .= $question_gui->getSolutionOutput(
863 $graphicalOutput = FALSE,
864 $result_output = FALSE,
865 $show_question_only = FALSE,
866 $show_feedback = FALSE
872 require_once
'./Modules/Test/classes/class.ilTestPDFGenerator.php';
881 require_once
'Modules/Test/classes/tables/class.ilTestPassDetailsOverviewTableGUI.php';
889 if( $this->object->isShowGradingStatusEnabled() )
894 if( $this->object->isShowGradingMarkEnabled() )
899 if( $this->object->areObligationsEnabled() )
913 require_once
'Modules/Test/classes/class.ilTestGradingMessageBuilder.php';
916 $gradingMessageBuilder->setActiveId($activeId);
917 $gradingMessageBuilder->build();
919 return $gradingMessageBuilder->getMessage();
926 $sort = (
$_GET[
"sort"]) ? (
$_GET[
"sort"]) :
"nr";
927 $sortorder = (
$_GET[
"sortorder"]) ? (
$_GET[
"sortorder"]) :
"asc";
928 if (strcmp($sortorder,
"asc"))
938 if ($a[$sort] == $b[$sort])
return 0;
939 return ($a[$sort] < $b[$sort]) ? $smaller : $greater;