Service GUI class for tests. More...
Inheritance diagram for ilTestServiceGUI:Public Member Functions | |
| ilTestServiceGUI ($a_object) | |
| ilTestScoringGUI constructor | |
| & | executeCommand () |
| execute command | |
| getCommand ($cmd) | |
| Retrieves the ilCtrl command. | |
| getPassOverview ($active_id, $targetclass="", $targetcommand="", $short=FALSE, $hide_details=FALSE) | |
| Returns the pass overview for a given active ID. | |
| getFinalStatement (&$test_data_array) | |
| Returns the final statement for a user. | |
| getPassListOfAnswers (&$result_array, $active_id, $pass, $show_solutions=FALSE, $only_answered_questions=FALSE, $show_question_only=FALSE, $show_reached_points=FALSE) | |
| Returns the list of answers of a users test pass. | |
| getPassListOfAnswersWithScoring (&$result_array, $active_id, $pass, $show_solutions=FALSE) | |
| Returns the list of answers of a users test pass and offers a scoring option. | |
| getPassDetailsOverview ($result_array, $active_id, $pass, $targetclass="", $targetcommandsort="", $targetcommanddetails="", $standard_header=TRUE) | |
| Returns the pass details overview for a given active ID and pass. | |
| getResultsSignature () | |
| Returns HTML code for a signature field. | |
| getResultsUserdata ($active_id, $overwrite_anonymity=FALSE) | |
| Returns the user data for a test results output. | |
| getCorrectSolutionOutput ($question_id, $active_id, $pass) | |
| Returns an output of the solution to an answer compared to the correct solution. | |
| getResultsOfUserOutput ($active_id, $pass, $show_pass_details=TRUE, $show_answers=TRUE, $show_question_only=FALSE, $show_reached_points=FALSE) | |
| Output of the pass overview for a test called by a test participant. | |
Data Fields | |
| $object | |
| $lng | |
| $tpl | |
| $ctrl | |
| $ilias | |
| $tree | |
| $ref_id | |
Service GUI class for tests.
This class is the parent class for all service classes which are called from ilObjTestGUI. This is mainly done to reduce the size of ilObjTestGUI to put command service functions into classes that could be called by ilCtrl.
ilTestServiceGUI: ilObjTestGUI
Definition at line 39 of file class.ilTestServiceGUI.php.
| & ilTestServiceGUI::executeCommand | ( | ) |
execute command
Reimplemented in ilTestOutputGUI.
Definition at line 73 of file class.ilTestServiceGUI.php.
References $cmd, $ret, and getCommand().
{
$cmd = $this->ctrl->getCmd();
$next_class = $this->ctrl->getNextClass($this);
$cmd = $this->getCommand($cmd);
switch($next_class)
{
default:
$ret =& $this->$cmd();
break;
}
return $ret;
}
Here is the call graph for this function:| ilTestServiceGUI::getCommand | ( | $ | cmd | ) |
Retrieves the ilCtrl command.
Retrieves the ilCtrl command
public
Definition at line 95 of file class.ilTestServiceGUI.php.
References $cmd.
Referenced by executeCommand(), and ilTestOutputGUI::executeCommand().
{
return $cmd;
}
Here is the caller graph for this function:| ilTestServiceGUI::getCorrectSolutionOutput | ( | $ | question_id, | |
| $ | active_id, | |||
| $ | pass | |||
| ) |
Returns an output of the solution to an answer compared to the correct solution.
Returns an output of the solution to an answer compared to the correct solution
| integer | $question_id Database ID of the question | |
| integer | $active_id Active ID of the active user | |
| integer | $pass Test pass |
Definition at line 772 of file class.ilTestServiceGUI.php.
Referenced by ilTestOutputGUI::outCorrectSolution().
{
global $ilUser;
$test_id = $this->object->getTestId();
$question_gui = $this->object->createQuestionGUI("", $question_id);
$template = new ilTemplate("tpl.il_as_tst_correct_solution_output.html", TRUE, TRUE, "Modules/Test");
$show_question_only = ($this->object->getShowSolutionAnswersOnly()) ? TRUE : FALSE;
$result_output = $question_gui->getSolutionOutput($active_id, $pass, TRUE, FALSE, $show_question_only, $this->object->getShowSolutionFeedback());
$best_output = $question_gui->getSolutionOutput("", NULL, FALSE, FALSE, $show_question_only);
$template->setVariable("TEXT_YOUR_SOLUTION", $this->lng->txt("tst_your_answer_was"));
$template->setVariable("TEXT_BEST_SOLUTION", $this->lng->txt("tst_best_solution_is"));
$maxpoints = $question_gui->object->getMaximumPoints();
if ($maxpoints == 1)
{
$template->setVariable("QUESTION_TITLE", $this->object->getQuestionTitle($question_gui->object->getTitle()) . " (" . $maxpoints . " " . $this->lng->txt("point") . ")");
}
else
{
$template->setVariable("QUESTION_TITLE", $this->object->getQuestionTitle($question_gui->object->getTitle()) . " (" . $maxpoints . " " . $this->lng->txt("points") . ")");
}
$template->setVariable("SOLUTION_OUTPUT", $result_output);
$template->setVariable("BEST_OUTPUT", $best_output);
$template->setVariable("RECEIVED_POINTS", sprintf($this->lng->txt("you_received_a_of_b_points"), $question_gui->object->getReachedPoints($active_id, $pass), $maxpoints));
$template->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
$template->setVariable("BACKLINK_TEXT", "<< " . $this->lng->txt("back"));
return $template->get();
}
Here is the caller graph for this function:| ilTestServiceGUI::getFinalStatement | ( | &$ | test_data_array | ) |
Returns the final statement for a user.
Returns the final statement for a user
| array | An array containing the information on reached points, max points etc. ("test" key of ilObjTest::getTestResult) |
Definition at line 211 of file class.ilTestServiceGUI.php.
Referenced by getResultsOfUserOutput(), ilTestOutputGUI::outParticipantsPassDetails(), ilTestOutputGUI::outParticipantsResultsOverview(), ilTestOutputGUI::outUserPassDetails(), and ilTestOutputGUI::outUserResultsOverview().
{
if (!$test_data_array["total_max_points"])
{
$percentage = 0;
}
else
{
$percentage = ($test_data_array["total_reached_points"]/$test_data_array["total_max_points"])*100;
}
$total_max = $test_data_array["total_max_points"];
$total_reached = $test_data_array["total_reached_points"];
$result_percentage = $percentage;
$result_total_reached = $total_reached;
$result_total_max = $total_max;
$mark = "";
$markects = "";
$mark_obj = $this->object->mark_schema->getMatchingMark($result_percentage);
if ($mark_obj)
{
if ($mark_obj->getPassed())
{
$mark = $this->lng->txt("mark_tst_passed");
}
else
{
$mark = $this->lng->txt("mark_tst_failed");
}
$mark = str_replace("[mark]", $mark_obj->getOfficialName(), $mark);
$mark = str_replace("[markshort]", $mark_obj->getShortName(), $mark);
$mark = str_replace("[percentage]", sprintf("%.2f", $result_percentage), $mark);
$mark = str_replace("[reached]", $result_total_reached, $mark);
$mark = str_replace("[max]", $result_total_max, $mark);
}
if ($this->object->ects_output)
{
$ects_mark = $this->object->getECTSGrade($result_total_reached, $result_total_max);
$markects = $this->lng->txt("mark_tst_ects");
$markects = str_replace("[markects]", $this->lng->txt("ects_grade_". strtolower($ects_mark)), $markects);
}
return array("mark" => $mark, "markects" => $markects);
}
Here is the caller graph for this function:| ilTestServiceGUI::getPassDetailsOverview | ( | $ | result_array, | |
| $ | active_id, | |||
| $ | pass, | |||
| $ | targetclass = "", |
|||
| $ | targetcommandsort = "", |
|||
| $ | targetcommanddetails = "", |
|||
| $ | standard_header = TRUE | |||
| ) |
Returns the pass details overview for a given active ID and pass.
Returns the pass details overview for a given active ID and pass
| array | $result_array An array containing the results of the users test pass (generated by ilObjTest::getTestResult) | |
| integer | $active_id Active ID of the active user | |
| integer | $pass Test pass | |
| string | $targetclass The name of the ILIAS class for the "pass details" URL (optional) | |
| string | $targetcommand The name of the ILIAS command for the "pass details" URL (optional) | |
| string | $targetcommanddetails The name of the ILIAS command which should be called for the details of an answer (optional) | |
| boolean | $standard_header TRUE if the table headers should be plain text, FALSE if the table headers should be URL's for sortable columns |
Definition at line 409 of file class.ilTestServiceGUI.php.
References $_GET, and ilUtil::getImagePath().
Referenced by getResultsOfUserOutput(), ilTestOutputGUI::outParticipantsPassDetails(), ilTestOutputGUI::outUserPassDetails(), and ilTestOutputGUI::outUserResultsOverview().
{
global $ilUser;
$testresults = $result_array["test"];
unset($result_array["test"]);
$user_id = $this->object->_getUserIdFromActiveId($active_id);
$sort = ($_GET["sort"]) ? ($_GET["sort"]) : "nr";
$sortorder = ($_GET["sortorder"]) ? ($_GET["sortorder"]) : "asc";
if (!$standard_header)
{
// change sortorder of result array
usort($result_array, "sortResults");
}
$color_class = array("tblrow1", "tblrow2");
$counter = 0;
$template = new ilTemplate("tpl.il_as_tst_pass_details_overview.html", TRUE, TRUE, "Modules/Test");
$this->ctrl->setParameterByClass($targetclass, "pass", "$pass");
if (!$testresults["total_max_points"])
{
$percentage = 0;
}
else
{
$percentage = ($testresults["total_reached_points"]/$testresults["total_max_points"])*100;
}
$total_max = $testresults["total_max_points"];
$total_reached = $testresults["total_reached_points"];
$img_title_percent = "";
$img_title_nr = "";
$hasSuggestedSolutions = FALSE;
foreach ($result_array as $key => $value)
{
if (strlen($value["solution"]))
{
$hasSuggestedSolutions = TRUE;
}
}
foreach ($result_array as $key => $value)
{
if (preg_match("/\d+/", $key))
{
if (strlen($targetclass) && strlen($targetcommanddetails))
{
$template->setCurrentBlock("linked_title");
$template->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
$template->setVariable("VALUE_QUESTION_TITLE", $value["title"]);
$this->ctrl->setParameterByClass($targetclass, "evaluation", $value["qid"]);
$this->ctrl->setParameterByClass($targetclass, "active_id", $active_id);
$template->setVariable("URL_QUESTION_TITLE", $this->ctrl->getLinkTargetByClass($targetclass, $targetcommanddetails));
$template->parseCurrentBlock();
}
else
{
$template->setCurrentBlock("plain_title");
$template->setVariable("VALUE_QUESTION_TITLE", $value["title"]);
$template->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
$template->parseCurrentBlock();
}
if ($hasSuggestedSolutions)
{
$template->setCurrentBlock("question_suggested_solution");
$template->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
if ((preg_match("/http/", $value["solution"])) || (preg_match("/goto/", $value["solution"])))
{
$template->setVariable("SOLUTION_HINT", "<a href=\"".$value["solution"]."\" target=\"content\">" . $this->lng->txt("solution_hint"). "</a>");
}
else
{
if ($value["solution"])
{
$template->setVariable("SOLUTION_HINT", $this->lng->txt($value["solution"]));
}
else
{
$template->setVariable("SOLUTION_HINT", "");
}
}
$template->parseCurrentBlock();
}
$template->setCurrentBlock("question");
$template->setVariable("COLOR_CLASS", $color_class[$counter % 2]);
$template->setVariable("VALUE_QUESTION_COUNTER", $value["nr"]);
$template->setVariable("VALUE_MAX_POINTS", $value["max"]);
$template->setVariable("VALUE_REACHED_POINTS", $value["reached"]);
$template->setVariable("VALUE_PERCENT_SOLVED", $value["percent"]);
$template->parseCurrentBlock();
$counter++;
}
}
if ($hasSuggestedSolutions)
{
$template->touchBlock("footer_suggested_solution");
}
$template->setCurrentBlock("footer");
$template->setVariable("VALUE_QUESTION_COUNTER", "<strong>" . $this->lng->txt("total") . "</strong>");
$template->setVariable("VALUE_QUESTION_TITLE", "");
$template->setVariable("VALUE_MAX_POINTS", "<strong>$total_max</strong>");
$template->setVariable("VALUE_REACHED_POINTS", "<strong>$total_reached</strong>");
$template->setVariable("VALUE_PERCENT_SOLVED", "<strong>" . sprintf("%2.2f", $percentage) . " %" . "</strong>");
$template->parseCurrentBlock();
if ($standard_header)
{
if ($hasSuggestedSolutions)
{
$template->setCurrentBlock("standard_header_suggested_solution");
$template->setVariable("SOLUTION_HINT_HEADER", $this->lng->txt("solution_hint"));
$template->parseCurrentBlock();
}
$template->setCurrentBlock("standard_header");
$template->setVariable("QUESTION_COUNTER", $this->lng->txt("tst_question_no"));
$template->setVariable("PERCENT_SOLVED", $this->lng->txt("tst_percent_solved"));
$template->setVariable("QUESTION_TITLE", $this->lng->txt("tst_question_title"));
$template->setVariable("MAX_POINTS", $this->lng->txt("tst_maximum_points"));
$template->setVariable("REACHED_POINTS", $this->lng->txt("tst_reached_points"));
$template->parseCurrentBlock();
}
else
{
if ($hasSuggestedSolutions)
{
$template->setCurrentBlock("linked_header_suggested_solution");
if (strcmp($sort, "solution") == 0)
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", !strcmp($sortorder, "asc") ? "desc" : "asc");
}
else
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", "asc");
}
$this->ctrl->setParameterByClass($targetclass, "sort", "solution");
$template->setVariable("URL_SOLUTION_HINT_HEADER", $this->ctrl->getLinkTargetByClass($targetclass, $targetcommandsort));
$template->setVariable("SOLUTION_HINT_HEADER", $this->lng->txt("solution_hint"));
if (strcmp($sort, "solution") == 0)
{
$image = new ilTemplate("tpl.image.html", TRUE, TRUE);
$image->setVariable("IMAGE_SOURCE", ilUtil::getImagePath($sortorder . "_order.gif"));
$image->setVariable("IMAGE_ALT", $this->lng->txt("change_sort_direction"));
$image->setVariable("IMAGE_TITLE", $this->lng->txt("change_sort_direction"));
$template->setVariable("IMAGE_SOLUTION_HINT_HEADER", $image->get());
}
$template->parseCurrentBlock();
}
$template->setCurrentBlock("linked_header");
$this->ctrl->setParameterByClass($targetclass, "sort", "nr");
if (strcmp($sort, "nr") == 0)
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", !strcmp($sortorder, "asc") ? "desc" : "asc");
}
else
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", "asc");
}
$template->setVariable("URL_QUESTION_COUNTER", $this->ctrl->getLinkTargetByClass($targetclass, $targetcommandsort));
$template->setVariable("QUESTION_COUNTER", $this->lng->txt("tst_question_no"));
if (strcmp($sort, "nr") == 0)
{
$image = new ilTemplate("tpl.image.html", TRUE, TRUE);
$image->setVariable("IMAGE_SOURCE", ilUtil::getImagePath($sortorder . "_order.gif"));
$image->setVariable("IMAGE_ALT", $this->lng->txt("change_sort_direction"));
$image->setVariable("IMAGE_TITLE", $this->lng->txt("change_sort_direction"));
$template->setVariable("IMAGE_QUESTION_COUNTER", $image->get());
}
$this->ctrl->setParameterByClass($targetclass, "sort", "percent");
if (strcmp($sort, "percent") == 0)
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", !strcmp($sortorder, "asc") ? "desc" : "asc");
}
else
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", "asc");
}
$template->setVariable("URL_PERCENT_SOLVED", $this->ctrl->getLinkTargetByClass($targetclass, $targetcommandsort));
$template->setVariable("PERCENT_SOLVED", $this->lng->txt("tst_percent_solved"));
if (strcmp($sort, "percent") == 0)
{
$image = new ilTemplate("tpl.image.html", TRUE, TRUE);
$image->setVariable("IMAGE_SOURCE", ilUtil::getImagePath($sortorder . "_order.gif"));
$image->setVariable("IMAGE_ALT", $this->lng->txt("change_sort_direction"));
$image->setVariable("IMAGE_TITLE", $this->lng->txt("change_sort_direction"));
$template->setVariable("IMAGE_PERCENT_SOLVED", $image->get());
}
$this->ctrl->setParameterByClass($targetclass, "sort", "title");
if (strcmp($sort, "title") == 0)
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", !strcmp($sortorder, "asc") ? "desc" : "asc");
}
else
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", "asc");
}
$template->setVariable("URL_QUESTION_TITLE", $this->ctrl->getLinkTargetByClass($targetclass, $targetcommandsort));
$template->setVariable("QUESTION_TITLE", $this->lng->txt("tst_question_title"));
if (strcmp($sort, "title") == 0)
{
$image = new ilTemplate("tpl.image.html", TRUE, TRUE);
$image->setVariable("IMAGE_SOURCE", ilUtil::getImagePath($sortorder . "_order.gif"));
$image->setVariable("IMAGE_ALT", $this->lng->txt("change_sort_direction"));
$image->setVariable("IMAGE_TITLE", $this->lng->txt("change_sort_direction"));
$template->setVariable("IMAGE_QUESTION_TITLE", $image->get());
}
$this->ctrl->setParameterByClass($targetclass, "sort", "max");
if (strcmp($sort, "max") == 0)
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", strcmp($sortorder, "asc") ? "desc" : "asc");
}
else
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", "asc");
}
$template->setVariable("URL_MAX_POINTS", $this->ctrl->getLinkTargetByClass($targetclass, $targetcommandsort));
$template->setVariable("MAX_POINTS", $this->lng->txt("tst_maximum_points"));
if (strcmp($sort, "max") == 0)
{
$image = new ilTemplate("tpl.image.html", TRUE, TRUE);
$image->setVariable("IMAGE_SOURCE", ilUtil::getImagePath($sortorder . "_order.gif"));
$image->setVariable("IMAGE_ALT", $this->lng->txt("change_sort_direction"));
$image->setVariable("IMAGE_TITLE", $this->lng->txt("change_sort_direction"));
$template->setVariable("IMAGE_MAX_POINTS", $image->get());
}
$this->ctrl->setParameterByClass($targetclass, "sort", "reached");
if (strcmp($sort, "reached") == 0)
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", !strcmp($sortorder, "asc") ? "desc" : "asc");
}
else
{
$this->ctrl->setParameterByClass($targetclass, "sortorder", "asc");
}
$template->setVariable("URL_REACHED_POINTS", $this->ctrl->getLinkTargetByClass($targetclass, $targetcommandsort));
$template->setVariable("REACHED_POINTS", $this->lng->txt("tst_reached_points"));
if (strcmp($sort, "reached") == 0)
{
$image = new ilTemplate("tpl.image.html", TRUE, TRUE);
$image->setVariable("IMAGE_SOURCE", ilUtil::getImagePath($sortorder . "_order.gif"));
$image->setVariable("IMAGE_ALT", $this->lng->txt("change_sort_direction"));
$image->setVariable("IMAGE_TITLE", $this->lng->txt("change_sort_direction"));
$template->setVariable("IMAGE_REACHED_POINTS", $image->get());
}
$template->parseCurrentBlock();
}
return $template->get();
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilTestServiceGUI::getPassListOfAnswers | ( | &$ | result_array, | |
| $ | active_id, | |||
| $ | pass, | |||
| $ | show_solutions = FALSE, |
|||
| $ | only_answered_questions = FALSE, |
|||
| $ | show_question_only = FALSE, |
|||
| $ | show_reached_points = FALSE | |||
| ) |
Returns the list of answers of a users test pass.
Returns the list of answers of a users test pass
| array | $result_array An array containing the results of the users test pass (generated by ilObjTest::getTestResult) | |
| integer | $active_id Active ID of the active user | |
| integer | $pass Test pass | |
| boolean | $show_solutions TRUE, if the solution output should be shown in the answers, FALSE otherwise |
Definition at line 267 of file class.ilTestServiceGUI.php.
Referenced by getResultsOfUserOutput(), ilTestOutputGUI::outParticipantsPassDetails(), ilTestOutputGUI::outUserListOfAnswerPasses(), ilTestOutputGUI::outUserPassDetails(), and ilTestOutputGUI::outUserResultsOverview().
{
$maintemplate = new ilTemplate("tpl.il_as_tst_list_of_answers.html", TRUE, TRUE, "Modules/Test");
$counter = 1;
// output of questions with solutions
foreach ($result_array as $question_data)
{
if (($question_data["workedthrough"] == 1) || ($only_answered_questions == FALSE))
{
$template = new ilTemplate("tpl.il_as_qpl_question_printview.html", TRUE, TRUE, "Modules/TestQuestionPool");
$question = $question_data["qid"];
if (is_numeric($question))
{
$maintemplate->setCurrentBlock("printview_question");
$question_gui = $this->object->createQuestionGUI("", $question);
if ($show_reached_points)
{
$template->setCurrentBlock("result_points");
$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());
$template->parseCurrentBlock();
}
$template->setVariable("COUNTER_QUESTION", $counter.". ");
$template->setVariable("QUESTION_TITLE", $this->object->getQuestionTitle($question_gui->object->getTitle()));
$show_question_only = ($this->object->getShowSolutionAnswersOnly()) ? TRUE : FALSE;
$result_output = $question_gui->getSolutionOutput($active_id, $pass, $show_solutions, FALSE, $show_question_only, $this->object->getShowSolutionFeedback());
$template->setVariable("SOLUTION_OUTPUT", $result_output);
$maintemplate->setCurrentBlock("printview_question");
$maintemplate->setVariable("QUESTION_PRINTVIEW", $template->get());
$maintemplate->parseCurrentBlock();
$counter ++;
}
}
}
$maintemplate->setVariable("RESULTS_OVERVIEW", sprintf($this->lng->txt("tst_eval_results_by_pass"), $pass+1));
return $maintemplate->get();
}
Here is the caller graph for this function:| ilTestServiceGUI::getPassListOfAnswersWithScoring | ( | &$ | result_array, | |
| $ | active_id, | |||
| $ | pass, | |||
| $ | show_solutions = FALSE | |||
| ) |
Returns the list of answers of a users test pass and offers a scoring option.
Returns the list of answers of a users test pass and offers a scoring option
| array | $result_array An array containing the results of the users test pass (generated by ilObjTest::getTestResult) | |
| integer | $active_id Active ID of the active user | |
| integer | $pass Test pass | |
| boolean | $show_solutions TRUE, if the solution output should be shown in the answers, FALSE otherwise |
Definition at line 320 of file class.ilTestServiceGUI.php.
References ilObjAssessmentFolder::_getManualScoring(), assQuestion::_getReachedPoints(), and ilUtil::prepareFormOutput().
Referenced by ilTestScoringGUI::manscoring().
{
include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
$maintemplate = new ilTemplate("tpl.il_as_tst_list_of_answers.html", TRUE, TRUE, "Modules/Test");
include_once "./classes/class.ilObjAssessmentFolder.php";
$scoring = ilObjAssessmentFolder::_getManualScoring();
$counter = 1;
// output of questions with solutions
foreach ($result_array as $question_data)
{
$question = $question_data["qid"];
if (is_numeric($question))
{
$question_gui = $this->object->createQuestionGUI("", $question);
if (in_array($question_gui->object->getQuestionTypeID(), $scoring))
{
$template = new ilTemplate("tpl.il_as_qpl_question_printview.html", TRUE, TRUE, "Modules/TestQuestionPool");
$scoretemplate = new ilTemplate("tpl.il_as_tst_manual_scoring_points.html", TRUE, TRUE, "Modules/Test");
$this->tpl->setCurrentBlock("printview_question");
$template->setVariable("COUNTER_QUESTION", $counter.". ");
$template->setVariable("QUESTION_TITLE", $this->object->getQuestionTitle($question_gui->object->getTitle()));
$points = $question_gui->object->getMaximumPoints();
if ($points == 1)
{
$template->setVariable("QUESTION_POINTS", $points . " " . $this->lng->txt("point"));
}
else
{
$template->setVariable("QUESTION_POINTS", $points . " " . $this->lng->txt("points"));
}
$show_question_only = ($this->object->getShowSolutionAnswersOnly()) ? TRUE : FALSE;
$result_output = $question_gui->getSolutionOutput($active_id, $pass, $show_solutions, FALSE, $show_question_only, $this->object->getShowSolutionFeedback());
if ($this->object->getShowSolutionFeedback())
{
$scoretemplate->setCurrentBlock("feedback");
$scoretemplate->setVariable("FEEDBACK_NAME_INPUT", $question);
$feedback = $this->object->getManualFeedback($active_id, $question, $pass);
$scoretemplate->setVariable("VALUE_FEEDBACK", ilUtil::prepareFormOutput($this->object->prepareTextareaOutput($feedback, TRUE)));
$scoretemplate->setVariable("VALUE_SAVE", $this->lng->txt("save"));
$scoretemplate->setVariable("TEXT_MANUAL_FEEDBACK", $this->lng->txt("set_manual_feedback"));
$scoretemplate->parseCurrentBlock();
}
$scoretemplate->setVariable("NAME_INPUT", $question);
$this->ctrl->setParameter($this, "active_id", $active_id);
$this->ctrl->setParameter($this, "pass", $pass);
$scoretemplate->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
$scoretemplate->setVariable("LABEL_INPUT", $this->lng->txt("tst_change_points_for_question"));
$scoretemplate->setVariable("BUTTON_POINTS", $this->lng->txt("change"));
$scoretemplate->setVariable("VALUE_INPUT", " value=\"" . assQuestion::_getReachedPoints($active_id, $question_data["qid"], $pass) . "\"");
$template->setVariable("SOLUTION_OUTPUT", $result_output);
$maintemplate->setCurrentBlock("printview_question");
$maintemplate->setVariable("QUESTION_PRINTVIEW", $template->get());
$maintemplate->setVariable("QUESTION_SCORING", $scoretemplate->get());
$maintemplate->parseCurrentBlock();
}
$counter ++;
}
}
if ($counter == 1)
{
// no scorable questions found
$maintemplate->setVariable("NO_QUESTIONS_FOUND", $this->lng->txt("manscoring_questions_not_found"));
}
$maintemplate->setVariable("RESULTS_OVERVIEW", sprintf($this->lng->txt("manscoring_results_pass"), $pass+1));
return $maintemplate->get();
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilTestServiceGUI::getPassOverview | ( | $ | active_id, | |
| $ | targetclass = "", |
|||
| $ | targetcommand = "", |
|||
| $ | short = FALSE, |
|||
| $ | hide_details = FALSE | |||
| ) |
Returns the pass overview for a given active ID.
Returns the pass overview for a given active ID
Definition at line 108 of file class.ilTestServiceGUI.php.
References ilFormat::formatDate(), and ilFormat::ftimestamp2dateDB().
Referenced by ilTestScoringGUI::manscoring(), ilTestOutputGUI::outParticipantsResultsOverview(), ilTestOutputGUI::outUserListOfAnswerPasses(), and ilTestOutputGUI::outUserResultsOverview().
{
global $ilUser;
if ($short)
{
$template = new ilTemplate("tpl.il_as_tst_pass_overview_short.html", TRUE, TRUE, "Modules/Test");
}
else
{
$template = new ilTemplate("tpl.il_as_tst_pass_overview.html", TRUE, TRUE, "Modules/Test");
}
$color_class = array("tblrow1", "tblrow2");
$counter = 0;
$user_id = $this->object->_getUserIdFromActiveId($active_id);
$counted_pass = $this->object->_getResultPass($active_id);
$reached_pass = $this->object->_getPass($active_id);
$result_percentage = 0;
$result_total_reached = 0;
$result_total_max = 0;
for ($pass = 0; $pass <= $reached_pass; $pass++)
{
$finishdate = $this->object->getPassFinishDate($active_id, $pass);
if ($finishdate > 0)
{
if (!$short)
{
$result_array =& $this->object->getTestResult($active_id, $pass);
if (!$result_array["test"]["total_max_points"])
{
$percentage = 0;
}
else
{
$percentage = ($result_array["test"]["total_reached_points"]/$result_array["test"]["total_max_points"])*100;
}
$total_max = $result_array["test"]["total_max_points"];
$total_reached = $result_array["test"]["total_reached_points"];
}
if (!$hide_details)
{
if (strlen($targetclass) && strlen($targetcommand))
{
$this->ctrl->setParameterByClass($targetclass, "active_id", $active_id);
$this->ctrl->setParameterByClass($targetclass, "pass", $pass);
$template->setCurrentBlock("pass_details");
$template->setVariable("HREF_PASS_DETAILS", $this->ctrl->getLinkTargetByClass($targetclass, $targetcommand));
$template->setVariable("TEXT_PASS_DETAILS", $this->lng->txt("tst_pass_details"));
$template->parseCurrentBlock();
}
}
$template->setCurrentBlock("result_row");
if (($pass == $counted_pass) && (!$short))
{
$template->setVariable("COLOR_CLASS", "tblrowmarked");
$template->setVariable("VALUE_SCORED", "⊗");
$result_percentage = $percentage;
$result_total_reached = $total_reached;
$result_total_max = $total_max;
}
else
{
$template->setVariable("COLOR_CLASS", $color_class[$pass % 2]);
}
$template->setVariable("VALUE_PASS", $pass + 1);
$template->setVariable("VALUE_DATE", ilFormat::formatDate(ilFormat::ftimestamp2dateDB($finishdate), "date"));
if (!$short)
{
$template->setVariable("VALUE_ANSWERED", $this->object->getAnsweredQuestionCount($active_id, $pass) . " " . strtolower($this->lng->txt("of")) . " " . (count($result_array)-1));
$template->setVariable("VALUE_REACHED", $total_reached . " " . strtolower($this->lng->txt("of")) . " " . $total_max);
$template->setVariable("VALUE_PERCENTAGE", sprintf("%.2f", $percentage) . "%");
}
$template->parseCurrentBlock();
}
}
$template->setVariable("PASS_COUNTER", $this->lng->txt("pass"));
$template->setVariable("DATE", $this->lng->txt("date"));
if (!$short)
{
$template->setVariable("PASS_SCORED", $this->lng->txt("scored_pass"));
$template->setVariable("ANSWERED_QUESTIONS", $this->lng->txt("tst_answered_questions"));
$template->setVariable("REACHED_POINTS", $this->lng->txt("tst_reached_points"));
$template->setVariable("PERCENTAGE_CORRECT", $this->lng->txt("tst_percent_solved"));
}
$template->parseCurrentBlock();
return $template->get();
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilTestServiceGUI::getResultsOfUserOutput | ( | $ | active_id, | |
| $ | pass, | |||
| $ | show_pass_details = TRUE, |
|||
| $ | show_answers = TRUE, |
|||
| $ | show_question_only = FALSE, |
|||
| $ | show_reached_points = FALSE | |||
| ) |
Output of the pass overview for a test called by a test participant.
Output of the pass overview for a test called by a test participant
public
Definition at line 809 of file class.ilTestServiceGUI.php.
References $_GET, $ilias, $tpl, getFinalStatement(), getPassDetailsOverview(), getPassListOfAnswers(), getResultsSignature(), and getResultsUserdata().
{
global $ilias, $tpl;
include_once("./classes/class.ilTemplate.php");
$template = new ilTemplate("tpl.il_as_tst_results_participant.html", TRUE, TRUE, "Modules/Test");
$user_id = $this->object->_getUserIdFromActiveId($active_id);
$uname = $this->object->userLookupFullName($user_id, TRUE);
if (((array_key_exists("pass", $_GET)) && (strlen($_GET["pass"]) > 0)) || (!is_null($pass)))
{
if (is_null($pass)) $pass = $_GET["pass"];
}
$result_pass = $this->object->_getResultPass($active_id);
$result_array =& $this->object->getTestResult($active_id, $result_pass);
$statement = $this->getFinalStatement($result_array["test"]);
$user_data = $this->getResultsUserdata($active_id, TRUE);
if (!is_null($pass))
{
$result_array =& $this->object->getTestResult($active_id, $pass);
$command_solution_details = "";
if ($show_pass_details)
{
$detailsoverview = $this->getPassDetailsOverview($result_array, $active_id, $pass, "iltestservicegui", "getResultsOfUserOutput", $command_solution_details);
}
$user_id = $this->object->_getUserIdFromActiveId($active_id);
$showAllAnswers = TRUE;
if ($this->object->isExecutable($user_id))
{
$showAllAnswers = FALSE;
}
if ($show_answers)
{
$list_of_answers = $this->getPassListOfAnswers($result_array, $active_id, $pass, FALSE, $showAllAnswers, $show_question_only, $show_reached_points);
}
$template->setVariable("LIST_OF_ANSWERS", $list_of_answers);
//$template->setVariable("PASS_RESULTS_OVERVIEW", sprintf($this->lng->txt("tst_results_overview_pass"), $pass + 1));
$template->setVariable("PASS_DETAILS", $detailsoverview);
$signature = $this->getResultsSignature();
$template->setVariable("SIGNATURE", $signature);
}
$template->setVariable("TEXT_HEADING", sprintf($this->lng->txt("tst_result_user_name"), $uname));
$template->setVariable("USER_DATA", $user_data);
$template->setVariable("USER_MARK", $statement["mark"]);
if (strlen($statement["markects"]))
{
$template->setVariable("USER_MARK_ECTS", $statement["markects"]);
}
$template->parseCurrentBlock();
return $template->get();
}
Here is the call graph for this function:| ilTestServiceGUI::getResultsSignature | ( | ) |
Returns HTML code for a signature field.
Returns HTML code for a signature field
Definition at line 669 of file class.ilTestServiceGUI.php.
References ilUtil::getImagePath().
Referenced by getResultsOfUserOutput(), ilTestOutputGUI::outUserListOfAnswerPasses(), ilTestOutputGUI::outUserResultsOverview(), and ilTestOutputGUI::showListOfAnswers().
{
if ($this->object->getShowSolutionSignature() && !$this->object->getAnonymity())
{
// output of time/date and signature
$template = new ilTemplate("tpl.il_as_tst_results_userdata_signature.html", TRUE, TRUE, "Modules/Test");
$template->setVariable("TXT_DATE", $this->lng->txt("date"));
$template->setVariable("VALUE_DATE", strftime("%Y-%m-%d %H:%M:%S", time()));
$template->setVariable("TXT_SIGNATURE", $this->lng->txt("tst_signature"));
$template->setVariable("IMG_SPACER", ilUtil::getImagePath("spacer.gif"));
return $template->get();
}
else
{
return "";
}
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilTestServiceGUI::getResultsUserdata | ( | $ | active_id, | |
| $ | overwrite_anonymity = FALSE | |||
| ) |
Returns the user data for a test results output.
Returns the user data for a test results output
| integer | $user_id The user ID of the user | |
| boolean | $overwrite_anonymity TRUE if the anonymity status should be overwritten, FALSE otherwise |
Definition at line 697 of file class.ilTestServiceGUI.php.
References $t, $user, ilObjUser::_lookupLogin(), and ilUtil::date_mysql2time().
Referenced by getResultsOfUserOutput(), ilTestOutputGUI::outParticipantsPassDetails(), ilTestOutputGUI::outParticipantsResultsOverview(), ilTestOutputGUI::outUserListOfAnswerPasses(), ilTestOutputGUI::outUserResultsOverview(), and ilTestOutputGUI::showListOfAnswers().
{
$template = new ilTemplate("tpl.il_as_tst_results_userdata.html", TRUE, TRUE, "Modules/Test");
include_once './Services/User/classes/class.ilObjUser.php';
$user_id = $this->object->_getUserIdFromActiveId($active_id);
if (strlen(ilObjUser::_lookupLogin($user_id)) > 0)
{
$user = new ilObjUser($user_id);
}
else
{
$user = new ilObjUser();
$user->setLastname($this->lng->txt("deleted_user"));
}
$t = $this->object->getTestSession($active_id)->getSubmittedTimestamp();
if (!$t)
{
$t = $this->object->_getLastAccess($this->object->getTestSession()->getActiveId());
}
$print_date = mktime(date("H"), date("i"), date("s"), date("m") , date("d"), date("Y"));
$title_matric = "";
if (strlen($user->getMatriculation()) && (($this->object->getAnonymity() == FALSE) || ($overwrite_anonymity)))
{
$template->setCurrentBlock("user_matric");
$template->setVariable("TXT_USR_MATRIC", $this->lng->txt("matriculation"));
$template->parseCurrentBlock();
$template->setCurrentBlock("user_matric_value");
$template->setVariable("VALUE_USR_MATRIC", $user->getMatriculation());
$template->parseCurrentBlock();
$template->touchBlock("user_matric_separator");
$title_matric = " - " . $this->lng->txt("matriculation") . ": " . $user->getMatriculation();
}
$invited_user = array_pop($this->object->getInvitedUsers($user_id));
if (strlen($invited_user->clientip))
{
$template->setCurrentBlock("user_clientip");
$template->setVariable("TXT_CLIENT_IP", $this->lng->txt("client_ip"));
$template->parseCurrentBlock();
$template->setCurrentBlock("user_clientip_value");
$template->setVariable("VALUE_CLIENT_IP", $invited_user->clientip);
$template->parseCurrentBlock();
$template->touchBlock("user_clientip_separator");
$title_client = " - " . $this->lng->txt("clientip") . ": " . $invited_user->clientip;
}
$template->setVariable("TXT_TEST_TITLE", $this->lng->txt("title"));
$template->setVariable("VALUE_TEST_TITLE", $this->object->getTitle());
$template->setVariable("TXT_USR_NAME", $this->lng->txt("name"));
$uname = $this->object->userLookupFullName($user_id, $overwrite_anonymity);
$template->setVariable("VALUE_USR_NAME", $uname);
$template->setVariable("TXT_TEST_DATE", $this->lng->txt("tst_tst_date"));
$template->setVariable("VALUE_TEST_DATE", strftime("%Y-%m-%d %H:%M:%S",ilUtil::date_mysql2time($t)));
$template->setVariable("TXT_PRINT_DATE", $this->lng->txt("tst_print_date"));
$template->setVariable("VALUE_PRINT_DATE", strftime("%Y-%m-%d %H:%M:%S",$print_date));
// change the pagetitle
$pagetitle = ": " . $this->object->getTitle() . $title_matric . $title_client;
$this->tpl->setHeaderPageTitle($pagetitle);
return $template->get();
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilTestServiceGUI::ilTestServiceGUI | ( | $ | a_object | ) |
ilTestScoringGUI constructor
The constructor takes the test object reference as parameter
| object | $a_object Associated ilObjTest class public |
Definition at line 57 of file class.ilTestServiceGUI.php.
References $ilCtrl, $ilias, $lng, $tpl, and $tree.
Referenced by ilTestEvaluationGUI::ilTestEvaluationGUI(), ilTestOutputGUI::ilTestOutputGUI(), and ilTestScoringGUI::ilTestScoringGUI().
{
global $lng, $tpl, $ilCtrl, $ilias, $tree;
$this->lng =& $lng;
$this->tpl =& $tpl;
$this->ctrl =& $ilCtrl;
$this->ilias =& $ilias;
$this->object =& $a_object;
$this->tree =& $tree;
$this->ref_id = $a_object->ref_id;
}
Here is the caller graph for this function:| ilTestServiceGUI::$ctrl |
Definition at line 44 of file class.ilTestServiceGUI.php.
| ilTestServiceGUI::$ilias |
Definition at line 45 of file class.ilTestServiceGUI.php.
Referenced by ilTestOutputGUI::finishTest(), getResultsOfUserOutput(), ilTestServiceGUI(), and ilTestOutputGUI::outUserResultsOverview().
| ilTestServiceGUI::$lng |
Definition at line 42 of file class.ilTestServiceGUI.php.
Referenced by ilTestServiceGUI().
| ilTestServiceGUI::$object |
Definition at line 41 of file class.ilTestServiceGUI.php.
| ilTestServiceGUI::$ref_id |
Reimplemented in ilTestOutputGUI.
Definition at line 47 of file class.ilTestServiceGUI.php.
| ilTestServiceGUI::$tpl |
Definition at line 43 of file class.ilTestServiceGUI.php.
Referenced by getResultsOfUserOutput(), and ilTestServiceGUI().
| ilTestServiceGUI::$tree |
Definition at line 46 of file class.ilTestServiceGUI.php.
Referenced by ilTestServiceGUI().
1.7.1