4 require_once
'Modules/TestQuestionPool/classes/class.assQuestionGUI.php';
5 require_once
'Modules/TestQuestionPool/interfaces/interface.ilGuiQuestionScoringAdjustable.php';
6 require_once
'Modules/TestQuestionPool/interfaces/interface.ilGuiAnswerScoringAdjustable.php';
28 parent::__construct();
30 require_once
'Modules/TestQuestionPool/classes/class.assKprimChoice.php';
34 $this->
object->loadFromDb($qId);
43 return $this->
object->feedbackOBJ->isSpecificAnswerFeedbackAvailable($this->object->getId());
48 return array(
'uploadImage',
'removeImage');
58 $this->tpl->addCss(
'Modules/Test/templates/default/ta.css');
60 $this->tpl->setVariable(
"QUESTION_DATA", $this->ctrl->getHTML(
$form));
68 $this->
object->saveToDb();
75 $position = key(
$_POST[
'cmd'][
'removeImage']);
76 $this->
object->removeAnswerImage($position);
78 $this->
object->saveToDb();
84 if (isset(
$_POST[
'cmd'][__FUNCTION__]) && count(
$_POST[
'cmd'][__FUNCTION__])) {
85 $this->
object->moveAnswerDown(key(
$_POST[
'cmd'][__FUNCTION__]));
86 $this->
object->saveToDb();
94 if (isset(
$_POST[
'cmd'][__FUNCTION__]) && count(
$_POST[
'cmd'][__FUNCTION__])) {
95 $this->
object->moveAnswerUp(key(
$_POST[
'cmd'][__FUNCTION__]));
96 $this->
object->saveToDb();
108 $form->setValuesByPost();
111 $answersInput =
$form->getItemByPostVar(
'kprim_answers');
112 $answersInput->setIgnoreMissingUploadsEnabled(
true);
114 if (!$answersInput->checkUploads(
$_POST[$answersInput->getPostVar()])) {
120 $answersInput->collectValidFiles();
121 } elseif (!
$form->checkInput()) {
162 $shuffleAnswers =
new ilCheckboxInputGUI($this->lng->txt(
"shuffle_answers"),
"shuffle_answers_enabled");
163 $shuffleAnswers->
setChecked($this->object->isShuffleAnswersEnabled());
164 $form->
addItem($shuffleAnswers);
166 if (!$this->object->getSelfAssessmentEditingMode()) {
168 $answerType =
new ilSelectInputGUI($this->lng->txt(
'answer_types'),
'answer_type');
169 $answerType->
setOptions($this->object->getAnswerTypeSelectOptions($this->lng));
170 $answerType->setValue($this->object->getAnswerType());
174 if (!$this->object->getSelfAssessmentEditingMode() && $this->
object->isSingleLineAnswerType($this->object->getAnswerType())) {
176 $thumbSize =
new ilNumberInputGUI($this->lng->txt(
'thumb_size'),
'thumb_size');
177 $thumbSize->
setSuffix($this->lng->txt(
"thumb_size_unit_pixel"));
178 $thumbSize->setInfo($this->lng->txt(
'thumb_size_info'));
179 $thumbSize->setDecimals(
false);
180 $thumbSize->setMinValue(20);
181 $thumbSize->setSize(6);
182 if ($this->object->getThumbSize() > 0) {
183 $thumbSize->setValue($this->object->getThumbSize());
190 $optionLabel->
setInfo($this->lng->txt(
'option_label_info'));
191 $optionLabel->setRequired(
true);
192 $optionLabel->setValue($this->object->getOptionLabel());
193 foreach ($this->object->getValidOptionLabelsTranslated($this->lng) as $labelValue => $labelText) {
195 $optionLabel->addOption($option);
197 if ($this->object->isCustomOptionLabel($labelValue)) {
199 $this->lng->txt(
'option_label_custom_true'),
200 'option_label_custom_true' 202 $customLabelTrue->
setValue($this->object->getCustomTrueOptionLabel());
203 $option->addSubItem($customLabelTrue);
206 $this->lng->txt(
'option_label_custom_false'),
207 'option_label_custom_false' 209 $customLabelFalse->
setValue($this->object->getCustomFalseOptionLabel());
210 $option->addSubItem($customLabelFalse);
219 $points->allowDecimals(
true);
220 $points->setMinValue(0);
221 $points->setMinvalueShouldBeGreater(
true);
222 $points->setValue($this->object->getPoints());
226 $scorePartialSolution =
new ilCheckboxInputGUI($this->lng->txt(
'score_partsol_enabled'),
'score_partsol_enabled');
227 $scorePartialSolution->
setInfo($this->lng->txt(
'score_partsol_enabled_info'));
228 $scorePartialSolution->setChecked($this->object->isScorePartialSolutionEnabled());
229 $form->
addItem($scorePartialSolution);
239 $oldAnswerType = $this->
object->getAnswerType();
241 $this->
object->setShuffleAnswersEnabled($form->
getItemByPostVar(
'shuffle_answers_enabled')->getChecked());
243 if (!$this->object->getSelfAssessmentEditingMode()) {
244 $this->
object->setAnswerType($form->
getItemByPostVar(
'answer_type')->getValue());
249 if (!$this->object->getSelfAssessmentEditingMode() && $this->
object->isSingleLineAnswerType($oldAnswerType)) {
250 $this->
object->setThumbSize($form->
getItemByPostVar(
'thumb_size')->getValue());
253 $this->
object->setOptionLabel($form->
getItemByPostVar(
'option_label')->getValue());
255 if ($this->object->isCustomOptionLabel($this->object->getOptionLabel())) {
256 $this->
object->setCustomTrueOptionLabel(strip_tags(
259 $this->
object->setCustomFalseOptionLabel(strip_tags(
266 $this->
object->setScorePartialSolutionEnabled($form->
getItemByPostVar(
'score_partsol_enabled')->getChecked());
275 require_once
'Modules/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php';
277 $kprimAnswers->
setInfo($this->lng->txt(
'kprim_answers_info'));
278 $kprimAnswers->setSize(64);
279 $kprimAnswers->setMaxLength(1000);
280 $kprimAnswers->setRequired(
true);
281 $kprimAnswers->setAllowMove(
true);
282 $kprimAnswers->setQuestionObject($this->
object);
283 if (!$this->object->getSelfAssessmentEditingMode()) {
284 $kprimAnswers->setSingleline($this->object->isSingleLineAnswerType($this->object->getAnswerType()));
286 $kprimAnswers->setSingleline(
false);
288 $kprimAnswers->setValues($this->object->getAnswers());
303 $this->
object->handleFileUploads($answers,
$files);
304 $this->
object->setAnswers($answers);
313 foreach ($answers as
$key => $answer) {
344 $is_postponed =
false,
345 $use_post_solutions =
false,
346 $showInlineFeedback =
false 352 $user_solution = array();
356 #include_once "./Modules/Test/classes/class.ilObjTest.php"; 357 #if (!ilObjTest::_getUsePreviousAnswers($active_id, true)) 359 # if (is_null($pass)) $pass = ilObjTest::_getPass($active_id); 361 $solutions = $this->
object->getTestOutputSolutions($active_id,
$pass);
363 foreach ($solutions as $idx => $solution_value) {
364 $user_solution[$solution_value[
"value1"]] = $solution_value[
"value2"];
369 include_once
"./Services/UICore/classes/class.ilTemplate.php";
370 $template =
new ilTemplate(
"tpl.il_as_qpl_mc_kprim_output.html",
true,
true,
"Modules/TestQuestionPool");
372 foreach (
$keys as $answer_id) {
373 $answer = $this->
object->getAnswer($answer_id);
374 if (strlen($answer->getImageFile())) {
375 if ($this->object->getThumbSize()) {
377 $template->setVariable(
"URL_PREVIEW", $answer->getImageWebPath());
378 $template->setVariable(
"TEXT_PREVIEW", $this->lng->txt(
'preview'));
380 $template->setVariable(
"ANSWER_IMAGE_URL", $answer->getThumbWebPath());
381 list($width, $height,
$type, $attr) = getimagesize($answer->getImageFsPath());
382 $alt = $answer->getImageFile();
383 if (strlen($answer->getAnswertext())) {
384 $alt = $answer->getAnswertext();
386 $alt = preg_replace(
"/<[^>]*?>/",
"", $alt);
391 $template->setCurrentBlock(
"answer_image");
392 $template->setVariable(
"ANSWER_IMAGE_URL", $answer->getImageWebPath());
393 list($width, $height,
$type, $attr) = getimagesize($answer->getImageFsPath());
394 $alt = $answer->getImageFile();
395 if (strlen($answer->getAnswertext())) {
396 $alt = $answer->getAnswertext();
398 $alt = preg_replace(
"/<[^>]*?>/",
"", $alt);
406 if ($showInlineFeedback) {
410 $template->setCurrentBlock(
"answer_row");
411 $template->setVariable(
"ANSWER_ID", $answer_id);
412 $template->setVariable(
"ANSWER_TEXT", $this->object->prepareTextareaOutput($answer->getAnswertext(),
true));
414 $template->setVariable(
'VALUE_FALSE', 0);
416 if (isset($user_solution[$answer->getPosition()])) {
417 $tplVar = $user_solution[$answer->getPosition()] ?
'CHECKED_ANSWER_TRUE' :
'CHECKED_ANSWER_FALSE';
418 $template->setVariable($tplVar,
" checked=\"checked\"");
424 $questiontext = $this->
object->getQuestion();
425 $template->setVariable(
"QUESTIONTEXT", $this->object->prepareTextareaOutput($questiontext,
true));
427 $template->setVariable(
"INSTRUCTIONTEXT", $this->object->getInstructionTextTranslation(
429 $this->object->getOptionLabel()
432 $template->setVariable(
"OPTION_LABEL_TRUE", $this->object->getTrueOptionLabelTranslation(
434 $this->object->getOptionLabel()
437 $template->setVariable(
"OPTION_LABEL_FALSE", $this->object->getFalseOptionLabelTranslation(
439 $this->object->getOptionLabel()
443 $pageoutput = $this->
outQuestionPage(
"", $is_postponed, $active_id, $questionoutput, $showInlineFeedback);
451 public function getPreview($show_question_only =
false, $showInlineFeedback =
false)
458 include_once
"./Services/UICore/classes/class.ilTemplate.php";
459 $template =
new ilTemplate(
"tpl.il_as_qpl_mc_kprim_output.html",
true,
true,
"Modules/TestQuestionPool");
461 foreach (
$keys as $answer_id) {
462 $answer = $this->
object->getAnswer($answer_id);
463 if (strlen($answer->getImageFile())) {
464 if ($this->object->getThumbSize()) {
466 $template->setVariable(
"URL_PREVIEW", $answer->getImageWebPath());
467 $template->setVariable(
"TEXT_PREVIEW", $this->lng->txt(
'preview'));
469 $template->setVariable(
"ANSWER_IMAGE_URL", $answer->getThumbWebPath());
470 list($width, $height,
$type, $attr) = getimagesize($answer->getImageFsPath());
471 $alt = $answer->getImageFile();
472 if (strlen($answer->getAnswertext())) {
473 $alt = $answer->getAnswertext();
475 $alt = preg_replace(
"/<[^>]*?>/",
"", $alt);
480 $template->setCurrentBlock(
"answer_image");
481 $template->setVariable(
"ANSWER_IMAGE_URL", $answer->getImageWebPath());
482 list($width, $height,
$type, $attr) = getimagesize($answer->getImageFsPath());
483 $alt = $answer->getImageFile();
484 if (strlen($answer->getAnswertext())) {
485 $alt = $answer->getAnswertext();
487 $alt = preg_replace(
"/<[^>]*?>/",
"", $alt);
495 if ($showInlineFeedback) {
499 $template->setCurrentBlock(
"answer_row");
500 $template->setVariable(
"ANSWER_ID", $answer_id);
501 $template->setVariable(
"ANSWER_TEXT", $this->object->prepareTextareaOutput($answer->getAnswertext(),
true));
503 $template->setVariable(
'VALUE_FALSE', 0);
505 if (isset($user_solution[$answer->getPosition()])) {
506 $tplVar = $user_solution[$answer->getPosition()] ?
'CHECKED_ANSWER_TRUE' :
'CHECKED_ANSWER_FALSE';
507 $template->setVariable($tplVar,
" checked=\"checked\"");
512 $questiontext = $this->
object->getQuestion();
513 $template->setVariable(
"QUESTIONTEXT", $this->object->prepareTextareaOutput($questiontext,
true));
515 $template->setVariable(
"INSTRUCTIONTEXT", $this->object->getInstructionTextTranslation(
517 $this->object->getOptionLabel()
520 $template->setVariable(
"OPTION_LABEL_TRUE", $this->object->getTrueOptionLabelTranslation(
522 $this->object->getOptionLabel()
525 $template->setVariable(
"OPTION_LABEL_FALSE", $this->object->getFalseOptionLabelTranslation(
527 $this->object->getOptionLabel()
531 if (!$show_question_only) {
535 return $questionoutput;
563 $graphicalOutput =
false,
564 $result_output =
false,
565 $show_question_only =
true,
566 $show_feedback =
false,
567 $show_correct_solution =
false,
568 $show_manual_scoring =
false,
569 $show_question_text =
true 575 $user_solution = array();
576 if (($active_id > 0) && (!$show_correct_solution)) {
578 foreach ($solutions as $idx => $solution_value) {
579 $user_solution[$solution_value[
'value1']] = $solution_value[
'value2'];
583 foreach ($this->object->getAnswers() as $answer) {
584 $user_solution[$answer->getPosition()] = $answer->getCorrectness();
589 $template =
new ilTemplate(
"tpl.il_as_qpl_mc_kprim_output_solution.html",
true,
true,
"Modules/TestQuestionPool");
591 foreach (
$keys as $answer_id) {
592 $answer = $this->
object->getAnswer($answer_id);
594 if (($active_id > 0) && (!$show_correct_solution)) {
595 if ($graphicalOutput) {
598 if ($user_solution[$answer->getPosition()] == $answer->getCorrectness()) {
601 $template->setVariable(
"TEXT_OK", $this->lng->txt(
"answer_is_right"));
606 $template->setVariable(
"TEXT_NOT_OK", $this->lng->txt(
"answer_is_wrong"));
611 if (strlen($answer->getImageFile())) {
612 $template->setCurrentBlock(
"answer_image");
613 if ($this->object->getThumbSize()) {
614 $template->setVariable(
"ANSWER_IMAGE_URL", $answer->getThumbWebPath());
616 $template->setVariable(
"ANSWER_IMAGE_URL", $answer->getImageWebPath());
624 if ($show_feedback) {
628 $template->setCurrentBlock(
"answer_row");
629 $template->setVariable(
"ANSWER_TEXT", $this->object->prepareTextareaOutput($answer->getAnswertext(),
true));
632 if (isset($user_solution[$answer->getPosition()])) {
633 if ($user_solution[$answer->getPosition()]) {
635 $template->setVariable(
"SOLUTION_ALT_TRUE", $this->lng->txt(
"checked"));
637 $template->setVariable(
"SOLUTION_ALT_FALSE", $this->lng->txt(
"unchecked"));
640 $template->setVariable(
"SOLUTION_ALT_TRUE", $this->lng->txt(
"unchecked"));
642 $template->setVariable(
"SOLUTION_ALT_FALSE", $this->lng->txt(
"checked"));
646 $template->setVariable(
"SOLUTION_ALT_TRUE", $this->lng->txt(
"unchecked"));
648 $template->setVariable(
"SOLUTION_ALT_FALSE", $this->lng->txt(
"unchecked"));
651 $template->setVariable(
'SOL_QID', $this->object->getId());
652 $template->setVariable(
'SOL_SUFFIX', $show_correct_solution ?
'bestsolution' :
'usersolution');
653 $template->setVariable(
'SOL_POSITION', $answer->getPosition());
655 $template->setVariable(
'SOL_TRUE_VALUE', 1);
656 $template->setVariable(
'SOL_FALSE_VALUE', 0);
658 if (isset($user_solution[$answer->getPosition()])) {
659 if ($user_solution[$answer->getPosition()]) {
660 $template->setVariable(
'SOL_TRUE_CHECKED',
'checked');
662 $template->setVariable(
'SOL_FALSE_CHECKED',
'checked');
670 if ($show_question_text ==
true) {
671 $questiontext = $this->
object->getQuestion();
672 $template->setVariable(
"QUESTIONTEXT", $this->object->prepareTextareaOutput($questiontext,
true));
674 $template->setVariable(
"INSTRUCTIONTEXT", $this->object->getInstructionTextTranslation(
676 $this->object->getOptionLabel()
680 $template->setVariable(
"OPTION_LABEL_TRUE", $this->object->getTrueOptionLabelTranslation(
682 $this->object->getOptionLabel()
685 $template->setVariable(
"OPTION_LABEL_FALSE", $this->object->getFalseOptionLabelTranslation(
687 $this->object->getOptionLabel()
694 $solutiontemplate =
new ilTemplate(
"tpl.il_as_tst_solution_output.html",
true,
true,
"Modules/TestQuestionPool");
696 if (strlen($feedback)) {
702 $solutiontemplate->setVariable(
"ILC_FB_CSS_CLASS", $cssClass);
703 $solutiontemplate->setVariable(
"FEEDBACK", $this->object->prepareTextareaOutput($feedback,
true));
706 $solutiontemplate->setVariable(
"SOLUTION_OUTPUT", $questionoutput);
708 $solutionoutput = $solutiontemplate->get();
714 if (!$show_question_only) {
718 return $solutionoutput;
723 $choiceKeys = array_keys($this->object->getAnswers());
725 if ($this->object->isShuffleAnswersEnabled()) {
726 $choiceKeys = $this->
object->getShuffler()->shuffle($choiceKeys);
734 require_once
'Modules/TestQuestionPool/classes/feedback/class.ilAssConfigurableMultiOptionQuestionFeedback.php';
737 if ($user_solution[$answer_id]) {
738 $fb = $this->
object->feedbackOBJ->getSpecificAnswerFeedbackTestPresentation($this->object->getId(), 0, $answer_id);
741 $template->setVariable(
"FEEDBACK", $this->object->prepareTextareaOutput($fb,
true));
748 $fb = $this->
object->feedbackOBJ->getSpecificAnswerFeedbackTestPresentation($this->object->getId(), 0, $answer_id);
751 $template->setVariable(
"FEEDBACK", $this->object->prepareTextareaOutput($fb,
true));
757 $answer = $this->
object->getAnswer($answer_id);
759 if ($answer->getCorrectness()) {
760 $fb = $this->
object->feedbackOBJ->getSpecificAnswerFeedbackTestPresentation($this->object->getId(), 0, $answer_id);
763 $template->setVariable(
"FEEDBACK", $this->object->prepareTextareaOutput($fb,
true));
812 return '<pre>' . print_r($relevant_answers, 1) .
'</pre>';
817 $trueOptionLabel = $this->
object->getTrueOptionLabelTranslation($this->lng, $this->object->getOptionLabel());
818 $falseOptionLabel = $this->
object->getFalseOptionLabelTranslation($this->lng, $this->object->getOptionLabel());
820 $tpl =
new ilTemplate(
'tpl.il_as_aggregated_kprim_answers_table.html',
true,
true,
"Modules/TestQuestionPool");
822 foreach ($aggregate as $lineData) {
823 $tpl->setCurrentBlock(
'aggregaterow');
824 $tpl->setVariable(
'OPTION', $lineData[
'answertext']);
825 $tpl->setVariable(
'COUNT_TRUE', $lineData[
'count_true']);
826 $tpl->setVariable(
'COUNT_FALSE', $lineData[
'count_false']);
827 $tpl->parseCurrentBlock();
830 $tpl->setVariable(
'OPTION_HEAD', $this->lng->txt(
'answers'));
831 $tpl->setVariable(
'COUNT_TRUE_HEAD', $trueOptionLabel);
832 $tpl->setVariable(
'COUNT_FALSE_HEAD', $falseOptionLabel);
839 $aggregate = array();
841 foreach ($answers as $answer) {
843 'answertext' => $answer->getAnswerText(),
'count_true' => 0,
'count_false' => 0
846 foreach ($rawSolutionData as $solutionRecord) {
847 if ($solutionRecord[
'value1'] == $answer->getPosition()) {
848 if ($solutionRecord[
'value2']) {
849 $answerAgg[
'count_true']++;
851 $answerAgg[
'count_false']++;
856 $aggregate[] = $answerAgg;
864 $agg = $this->
aggregateAnswers($relevantAnswers, $this->object->getAnswers());
868 foreach ($agg as $ans) {
870 'answer' => $ans[
'answertext'],
871 'frequency_true' => $ans[
'count_true'],
872 'frequency_false' => $ans[
'count_false']
888 require_once
'Modules/TestQuestionPool/classes/tables/class.ilKprimChoiceAnswerFreqStatTableGUI.php';
891 $table->setQuestionIndex($questionIndex);
904 $points->allowDecimals(
true);
905 $points->setMinValue(0);
906 $points->setMinvalueShouldBeGreater(
true);
907 $points->setValue($this->object->getPoints());
911 $scorePartialSolution =
new ilCheckboxInputGUI($this->lng->txt(
'score_partsol_enabled'),
'score_partsol_enabled');
912 $scorePartialSolution->
setInfo($this->lng->txt(
'score_partsol_enabled_info'));
913 $scorePartialSolution->setChecked($this->object->isScorePartialSolutionEnabled());
914 $form->
addItem($scorePartialSolution);
917 require_once
'Modules/TestQuestionPool/classes/forms/class.ilKprimChoiceCorrectionsInputGUI.php';
919 $kprimAnswers->
setInfo($this->lng->txt(
'kprim_answers_info'));
920 $kprimAnswers->setSize(64);
921 $kprimAnswers->setMaxLength(1000);
922 $kprimAnswers->setRequired(
true);
923 $kprimAnswers->setQuestionObject($this->
object);
924 $kprimAnswers->setValues($this->object->getAnswers());
935 $this->
object->setPoints(
939 $this->
object->setScorePartialSolutionEnabled(
940 (
bool) $form->
getInput(
'score_partsol_enabled')
943 $this->
object->setAnswers(
isTestPresentationContext()
writeQuestionSpecificPostData(ilPropertyFormGUI $form)
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
hasCorrectSolution($activeId, $passIndex)
This class represents an option in a radio group.
getAfterParticipationSuppressionQuestionPostVars()
Returns a list of postvars which will be suppressed in the form output when used in scoring adjustmen...
getAnswerFrequencyTableGUI($parentGui, $parentCmd, $relevantAnswers, $questionIndex)
saveCorrectionsFormProperties(ilPropertyFormGUI $form)
addBasicQuestionFormProperties($form)
Add basic question form properties: assessment: title, author, description, question, working time.
buildBasicEditFormObject()
populateAnswerSpecificFormPart(ilPropertyFormGUI $form)
getQuestionTemplate()
get question template
const CSS_CLASS_FEEDBACK_CORRECT
const FEEDBACK_SETTING_CHECKED
getPreview($show_question_only=false, $showInlineFeedback=false)
populateTaxonomyFormSection(ilPropertyFormGUI $form)
getAdditionalEditQuestionCommands()
getUseIntermediateSolution()
Get if intermediate solution should be used for solution output.
handleAnswerTextsSubmit($answers)
const ANSWER_TYPE_MULTI_LINE
writePostData($upload=false)
{}
writeQuestionGenericPostData()
const FEEDBACK_SETTING_CORRECT
getTestOutput( $active_id, $pass, $is_postponed=false, $use_post_solutions=false, $showInlineFeedback=false)
if(isset($_POST['submit'])) $form
getILIASPage($html="")
Returns the ILIAS Page around a question.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
special template class to simplify handling of ITX/PEAR
renderAggregateView($aggregate)
This class represents a text property in a property form.
writeAnswerSpecificPostData(ilPropertyFormGUI $form)
const CSS_CLASS_FEEDBACK_WRONG
Basic GUI class for assessment questions.
static getHtmlPath($relative_path)
get url of path
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
getAggregatedAnswersView($relevant_answers)
Returns an html string containing a question specific representation of the answers so far given in t...
getAfterParticipationSuppressionAnswerPostVars()
Returns a list of postvars which will be suppressed in the form output when used in scoring adjustmen...
saveTaxonomyAssignments()
outQuestionPage($a_temp_var, $a_postponed=false, $active_id="", $html="", $inlineFeedbackEnabled=false)
output question page
const FEEDBACK_SETTING_ALL
editQuestion(ilPropertyFormGUI $form=null)
static secureString($a_str, $a_strip_html=true, $a_allow="")
Remove unsecure tags.
isRenderPurposePrintPdf()
Interface ilGuiAnswerScoringAdjustable.
populateCorrectionsFormProperties(ilPropertyFormGUI $form)
if(empty($password)) $table
aggregateAnswers($rawSolutionData, $answers)
getGenericFeedbackOutput($active_id, $pass)
Returns the answer specific feedback for the question.
Interface ilGuiQuestionScoringAdjustable.
setValue($a_value)
Set Value.
getSolutionOutput( $active_id, $pass=null, $graphicalOutput=false, $result_output=false, $show_question_only=true, $show_feedback=false, $show_correct_solution=false, $show_manual_scoring=false, $show_question_text=true)
supportsIntermediateSolutionOutput()
Question type specific support of intermediate solution output The function getSolutionOutput respect...
populateSpecificFeedbackInline($user_solution, $answer_id, $template)
getAnswersFrequency($relevantAnswers, $questionIndex)
getParticipantsAnswerKeySequence()
addQuestionFormCommandButtons($form)
Add the command buttons of a question properties form.
getSpecificFeedbackOutput($userSolution)
populateQuestionSpecificFormPart(ilPropertyFormGUI $form)
renderPurposeSupportsFormHtml()