ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
assKprimChoiceGUI Class Reference
+ Inheritance diagram for assKprimChoiceGUI:
+ Collaboration diagram for assKprimChoiceGUI:

Public Member Functions

 __construct ($qId=-1)
 
 removeImage ()
 
 downkprim_answers ()
 
 upkprim_answers ()
 
 populateQuestionSpecificFormPart (ilPropertyFormGUI $form)
 
 writeQuestionSpecificPostData (ilPropertyFormGUI $form)
 
 populateAnswerSpecificFormPart (ilPropertyFormGUI $form)
 
 writeAnswerSpecificPostData (ilPropertyFormGUI $form)
 
 getSpecificFeedbackOutput ($active_id, $pass)
 
 getTestOutput ( $active_id, $pass=NULL, $is_postponed=FALSE, $use_post_solutions=FALSE, $showInlineFeedback=FALSE)
 
 getPreview ($show_question_only=FALSE, $showInlineFeedback=false)
 
 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)
 
 getAfterParticipationSuppressionAnswerPostVars ()
 Returns a list of postvars which will be suppressed in the form output when used in scoring adjustment. More...
 
 getAfterParticipationSuppressionQuestionPostVars ()
 Returns a list of postvars which will be suppressed in the form output when used in scoring adjustment. More...
 
 getAggregatedAnswersView ($relevant_answers)
 Returns an html string containing a question specific representation of the answers so far given in the test for use in the right column in the scoring adjustment user interface. More...
 
 renderAggregateView ($aggregate)
 
 aggregateAnswers ($rawSolutionData, $answers)
 
- Public Member Functions inherited from assQuestionGUI
 __construct ()
 assQuestionGUI constructor More...
 
executeCommand ()
 execute command More...
 
 getCommand ($cmd)
 
 getType ()
 needed for page editor compliance More...
 
 setTaxonomyIds ($taxonomyIds)
 
 getTaxonomyIds ()
 
 setTargetGui ($linkTargetGui)
 
 setTargetGuiClass ($targetGuiClass)
 
 getTargetGuiClass ()
 
 setQuestionHeaderBlockBuilder ($questionHeaderBlockBuilder)
 
 setQuestionActionCmd ($questionActionCmd)
 
 getQuestionActionCmd ()
 
_getQuestionGUI ($question_type, $question_id=-1)
 Creates a question gui representation and returns the alias to the question gui note: please do not use $this inside this method to allow static calls. More...
 
 _getGUIClassNameForId ($a_q_id)
 
 _getClassNameForQType ($q_type)
 
createQuestionGUI ($question_type, $question_id=-1)
 Creates a question gui representation. More...
 
 getQuestionTemplate ()
 get question template More...
 
 getILIASPage ($html="")
 Returns the ILIAS Page around a question. More...
 
 outQuestionPage ($a_temp_var, $a_postponed=false, $active_id="", $html="")
 output question page More...
 
 cancel ()
 cancel action More...
 
 originalSyncForm ($return_to="", $return_to_feedback='')
 
 sync ()
 
 cancelSync ()
 
 saveEdit ()
 save question More...
 
 save ()
 save question More...
 
 saveReturn ()
 save question More...
 
 apply ()
 apply changes More...
 
 getContextPath ($cont_obj, $a_endnode_id, $a_startnode_id=1)
 get context path in content object tree More...
 
 setSequenceNumber ($nr)
 
 getSequenceNumber ()
 
 setQuestionCount ($a_question_count)
 
 getQuestionCount ()
 
 getErrorMessage ()
 
 setErrorMessage ($errormessage)
 
 addErrorMessage ($errormessage)
 
 outAdditionalOutput ()
 
 getQuestionType ()
 Returns the question type string. More...
 
 getAsValueAttribute ($a_value)
 Returns a HTML value attribute. More...
 
 addNewIdListener (&$a_object, $a_method, $a_parameters="")
 Add a listener that is notified with the new question ID, when a new question is saved. More...
 
 callNewIdListeners ($a_new_id)
 Call the new id listeners. More...
 
 addQuestionFormCommandButtons ($form)
 Add the command buttons of a question properties form. More...
 
 addBasicQuestionFormProperties ($form)
 Add basic question form properties: assessment: title, author, description, question, working time. More...
 
 getSelfAssessmentTags ()
 Get tags allowed in question tags in self assessment mode. More...
 
 getAnswerFeedbackOutput ($active_id, $pass)
 Returns the answer generic feedback depending on the results of the question. More...
 
 getGenericFeedbackOutput ($active_id, $pass)
 Returns the answer specific feedback for the question. More...
 
 getGenericFeedbackOutputForCorrectSolution ()
 
 getGenericFeedbackOutputForIncorrectSolution ()
 
 getSpecificFeedbackOutput ($active_id, $pass)
 Returns the answer specific feedback for the question. More...
 
 outQuestionType ()
 
 showSuggestedSolution ()
 
 suggestedsolution ()
 Allows to add suggested solutions for questions. More...
 
 outSolutionExplorer ()
 
 saveSuggestedSolution ()
 
 cancelExplorer ()
 
 outPageSelector ()
 
 outChapterSelector ()
 
 outGlossarySelector ()
 
 linkChilds ()
 
 addPG ()
 
 addST ()
 
 addGIT ()
 
 isSaveCommand ()
 
 setQuestionTabs ()
 
 addTab_SuggestedSolution (ilTabsGUI $tabs, $classname)
 
 getEditQuestionTabCommands ()
 
 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)
 
 isAutosaveable ()
 
 getPreview ($show_question_only=FALSE, $showInlineFeedback=false)
 
 outQuestionForTest ( $formaction, $active_id, $pass=NULL, $is_question_postponed=FALSE, $user_post_solutions=FALSE, $show_specific_inline_feedback=FALSE)
 
 setPreviewSession ($previewSession)
 
 getPreviewSession ()
 
 showHints ()
 

Data Fields

 $object
 
- Data Fields inherited from assQuestionGUI
const FORM_MODE_EDIT = 'edit'
 
const FORM_MODE_ADJUST = 'adjust'
 
const FORM_ENCODING_URLENCODE = 'application/x-www-form-urlencoded'
 
const FORM_ENCODING_MULTIPART = 'multipart/form-data'
 
const SESSION_PREVIEW_DATA_BASE_INDEX = 'ilAssQuestionPreviewAnswers'
 
 $object
 
 $tpl
 
 $lng
 
 $error
 
 $errormessage
 
 $sequence_no
 sequence number in test More...
 
 $question_count
 question count in test More...
 

Protected Member Functions

 getAdditionalEditQuestionCommands ()
 
 editQuestion (ilPropertyFormGUI $form=null)
 
 uploadImage ()
 
 writePostData ($upload=false)
 
 getParticipantsAnswerKeySequence ()
 
- Protected Member Functions inherited from assQuestionGUI
 writePostData ()
 Evaluates a posted edit form and writes the form data in the question object. More...
 
 saveTaxonomyAssignments ()
 
 populateTaxonomyFormSection (ilPropertyFormGUI $form)
 
 getBasicEditQuestionTabCommands ()
 
 getAdditionalEditQuestionCommands ()
 
 addTab_QuestionFeedback (ilTabsGUI $tabs)
 adds the feedback tab to ilTabsGUI More...
 
 addTab_QuestionHints (ilTabsGUI $tabs)
 adds the hints tab to ilTabsGUI More...
 
 addTab_QuestionPreview (ilTabsGUI $tabsGUI)
 
 writeQuestionGenericPostData ()
 
 getFormEncodingType ()
 
 addBackTab (ilTabsGUI $ilTabs)
 
 buildBasicEditFormObject ()
 

Private Member Functions

 buildEditForm ()
 
 handleAnswerTextsSubmit ($answers)
 
 populateSpecificFeedbackInline ($user_solution, $answer_id, $template)
 

Additional Inherited Members

- Static Public Member Functions inherited from assQuestionGUI
static getCommandsFromClassConstants ($guiClassName, $cmdConstantNameBegin='CMD_')
 extracts values of all constants of given class with given prefix as array can be used to get all possible commands in case of these commands are defined as constants More...
 

Detailed Description

Definition at line 16 of file class.assKprimChoiceGUI.php.

Constructor & Destructor Documentation

◆ __construct()

assKprimChoiceGUI::__construct (   $qId = -1)
Parameters
$qId

Definition at line 26 of file class.assKprimChoiceGUI.php.

27  {
28  parent::__construct();
29 
30  require_once 'Modules/TestQuestionPool/classes/class.assKprimChoice.php';
31  $this->object = new assKprimChoice();
32 
33  if ($qId > 0)
34  {
35  $this->object->loadFromDb($qId);
36  }
37  }

Member Function Documentation

◆ aggregateAnswers()

assKprimChoiceGUI::aggregateAnswers (   $rawSolutionData,
  $answers 
)

Definition at line 862 of file class.assKprimChoiceGUI.php.

Referenced by getAggregatedAnswersView().

863  {
864  $aggregate = array();
865 
866  foreach( $answers as $answer )
867  {
868  $answerAgg = array(
869  'answertext' => $answer->getAnswerText(), 'count_true' => 0, 'count_false' => 0
870  );
871 
872  foreach( $rawSolutionData as $solutionRecord )
873  {
874  if( $solutionRecord['value1'] == $answer->getPosition() )
875  {
876  if( $solutionRecord['value2'] )
877  {
878  $answerAgg['count_true']++;
879  }
880  else
881  {
882  $answerAgg['count_false']++;
883  }
884  }
885 
886  }
887 
888  $aggregate[] = $answerAgg;
889  }
890 
891  return $aggregate;
892  }
+ Here is the caller graph for this function:

◆ buildEditForm()

assKprimChoiceGUI::buildEditForm ( )
private
Returns
ilPropertyFormGUI

Definition at line 137 of file class.assKprimChoiceGUI.php.

References assQuestionGUI\addBasicQuestionFormProperties(), assQuestionGUI\addQuestionFormCommandButtons(), assQuestionGUI\buildBasicEditFormObject(), populateAnswerSpecificFormPart(), populateQuestionSpecificFormPart(), and assQuestionGUI\populateTaxonomyFormSection().

Referenced by editQuestion(), and writePostData().

138  {
139  $form = $this->buildBasicEditFormObject();
140 
141  $this->addQuestionFormCommandButtons($form);
142 
143  $this->addBasicQuestionFormProperties($form);
144 
145  $this->populateQuestionSpecificFormPart($form);
146  $this->populateAnswerSpecificFormPart($form);
147 
148  $this->populateTaxonomyFormSection($form);
149 
150  return $form;
151  }
addBasicQuestionFormProperties($form)
Add basic question form properties: assessment: title, author, description, question, working time.
populateAnswerSpecificFormPart(ilPropertyFormGUI $form)
populateTaxonomyFormSection(ilPropertyFormGUI $form)
addQuestionFormCommandButtons($form)
Add the command buttons of a question properties form.
populateQuestionSpecificFormPart(ilPropertyFormGUI $form)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ downkprim_answers()

assKprimChoiceGUI::downkprim_answers ( )

Definition at line 77 of file class.assKprimChoiceGUI.php.

References $_POST, and editQuestion().

78  {
79  if( isset($_POST['cmd'][__FUNCTION__]) && count($_POST['cmd'][__FUNCTION__]) )
80  {
81  $this->object->moveAnswerDown( key($_POST['cmd'][__FUNCTION__]) );
82  $this->object->saveToDb();
83  }
84 
85  $this->editQuestion();
86  }
$_POST['username']
Definition: cron.php:12
editQuestion(ilPropertyFormGUI $form=null)
+ Here is the call graph for this function:

◆ editQuestion()

assKprimChoiceGUI::editQuestion ( ilPropertyFormGUI  $form = null)
protected

Definition at line 44 of file class.assKprimChoiceGUI.php.

References buildEditForm(), and assQuestionGUI\getQuestionTemplate().

Referenced by downkprim_answers(), removeImage(), upkprim_answers(), uploadImage(), and writePostData().

45  {
46  if( $form === null )
47  {
48  $form = $this->buildEditForm();
49  }
50 
51  $this->getQuestionTemplate();
52  $this->tpl->addCss('Modules/Test/templates/default/ta.css');
53 
54  $this->tpl->setVariable("QUESTION_DATA", $this->ctrl->getHTML($form));
55  }
getQuestionTemplate()
get question template
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAdditionalEditQuestionCommands()

assKprimChoiceGUI::getAdditionalEditQuestionCommands ( )
protected

Definition at line 39 of file class.assKprimChoiceGUI.php.

40  {
41  return array('uploadImage', 'removeImage');
42  }

◆ getAfterParticipationSuppressionAnswerPostVars()

assKprimChoiceGUI::getAfterParticipationSuppressionAnswerPostVars ( )

Returns a list of postvars which will be suppressed in the form output when used in scoring adjustment.

The form elements will be shown disabled, so the users see the usual form but can only edit the settings, which make sense in the given context.

E.g. array('cloze_type', 'image_filename')

Returns
string[]

Implements ilGuiAnswerScoringAdjustable.

Definition at line 804 of file class.assKprimChoiceGUI.php.

805  {
806  return array();
807  }

◆ getAfterParticipationSuppressionQuestionPostVars()

assKprimChoiceGUI::getAfterParticipationSuppressionQuestionPostVars ( )

Returns a list of postvars which will be suppressed in the form output when used in scoring adjustment.

The form elements will be shown disabled, so the users see the usual form but can only edit the settings, which make sense in the given context.

E.g. array('cloze_type', 'image_filename')

Returns
string[]

Implements ilGuiQuestionScoringAdjustable.

Definition at line 818 of file class.assKprimChoiceGUI.php.

819  {
820  return array();
821  }

◆ getAggregatedAnswersView()

assKprimChoiceGUI::getAggregatedAnswersView (   $relevant_answers)

Returns an html string containing a question specific representation of the answers so far given in the test for use in the right column in the scoring adjustment user interface.

Parameters
array$relevant_answers
Returns
string

Implements ilGuiQuestionScoringAdjustable.

Definition at line 831 of file class.assKprimChoiceGUI.php.

References aggregateAnswers(), and renderAggregateView().

832  {
833  return $this->renderAggregateView(
834  $this->aggregateAnswers( $relevant_answers, $this->object->getAnswers() ) )->get();
835 
836  return '<pre>'.print_r($relevant_answers, 1).'</pre>';
837  }
aggregateAnswers($rawSolutionData, $answers)
+ Here is the call graph for this function:

◆ getParticipantsAnswerKeySequence()

assKprimChoiceGUI::getParticipantsAnswerKeySequence ( )
protected

Definition at line 726 of file class.assKprimChoiceGUI.php.

References $_GET, and $_SESSION.

Referenced by getPreview(), getSolutionOutput(), and getTestOutput().

727  {
728  if( !$this->object->isShuffleAnswersEnabled() )
729  {
730  return array_keys($this->object->getAnswers());
731  }
732 
733  if (strcmp($_GET["activecommand"], "directfeedback") == 0)
734  {
735  if (is_array($_SESSION["choicekeys"])) $this->choiceKeys = $_SESSION["choicekeys"];
736  }
737  if (!is_array($this->choiceKeys))
738  {
739  $this->choiceKeys = array_keys($this->object->getAnswers());
740  if ($this->object->getShuffle())
741  {
742  $this->choiceKeys = $this->object->pcArrayShuffle($this->choiceKeys);
743  }
744  }
745  $_SESSION["choicekeys"] = $this->choiceKeys;
746  return $this->choiceKeys;
747  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$_GET["client_id"]
+ Here is the caller graph for this function:

◆ getPreview()

assKprimChoiceGUI::getPreview (   $show_question_only = FALSE,
  $showInlineFeedback = false 
)
Parameters
bool$show_question_only
bool$showInlineFeedback

Definition at line 464 of file class.assKprimChoiceGUI.php.

References assQuestionGUI\getILIASPage(), ilUtil\getImagePath(), getParticipantsAnswerKeySequence(), assQuestionGUI\getPreviewSession(), populateSpecificFeedbackInline(), and ilUtil\prepareFormOutput().

465  {
466  $user_solution = is_object($this->getPreviewSession()) ? (array)$this->getPreviewSession()->getParticipantsSolution() : array();
467  // shuffle output
468  $keys = $this->getParticipantsAnswerKeySequence();
469 
470  // generate the question output
471  include_once "./Services/UICore/classes/class.ilTemplate.php";
472  $template = new ilTemplate("tpl.il_as_qpl_mc_kprim_output.html", TRUE, TRUE, "Modules/TestQuestionPool");
473 
474  foreach ($keys as $answer_id)
475  {
476  $answer = $this->object->getAnswer($answer_id);
477  if (strlen($answer->getImageFile()))
478  {
479  if ($this->object->getThumbSize())
480  {
481  $template->setCurrentBlock("preview");
482  $template->setVariable("URL_PREVIEW", $answer->getImageWebPath());
483  $template->setVariable("TEXT_PREVIEW", $this->lng->txt('preview'));
484  $template->setVariable("IMG_PREVIEW", ilUtil::getImagePath('enlarge.svg'));
485  $template->setVariable("ANSWER_IMAGE_URL", $answer->getThumbWebPath());
486  list($width, $height, $type, $attr) = getimagesize($answer->getImageFsPath());
487  $alt = $answer->getImageFile();
488  if (strlen($answer->getAnswertext()))
489  {
490  $alt = $answer->getAnswertext();
491  }
492  $alt = preg_replace("/<[^>]*?>/", "", $alt);
493  $template->setVariable("ANSWER_IMAGE_ALT", ilUtil::prepareFormOutput($alt));
494  $template->setVariable("ANSWER_IMAGE_TITLE", ilUtil::prepareFormOutput($alt));
495  $template->parseCurrentBlock();
496  }
497  else
498  {
499  $template->setCurrentBlock("answer_image");
500  $template->setVariable("ANSWER_IMAGE_URL", $answer->getImageWebPath());
501  list($width, $height, $type, $attr) = getimagesize($answer->getImageFsPath());
502  $alt = $answer->getImageFile();
503  if (strlen($answer->getAnswertext()))
504  {
505  $alt = $answer->getAnswertext();
506  }
507  $alt = preg_replace("/<[^>]*?>/", "", $alt);
508  $template->setVariable("ATTR", $attr);
509  $template->setVariable("ANSWER_IMAGE_ALT", ilUtil::prepareFormOutput($alt));
510  $template->setVariable("ANSWER_IMAGE_TITLE", ilUtil::prepareFormOutput($alt));
511  $template->parseCurrentBlock();
512  }
513  }
514 
515  if( $showInlineFeedback )
516  {
517  $this->populateSpecificFeedbackInline($user_solution, $answer_id, $template);
518  }
519 
520  $template->setCurrentBlock("answer_row");
521  $template->setVariable("ANSWER_ID", $answer_id);
522  $template->setVariable("ANSWER_TEXT", $this->object->prepareTextareaOutput($answer->getAnswertext(), TRUE));
523  $template->setVariable('VALUE_TRUE', 1);
524  $template->setVariable('VALUE_FALSE', 0);
525 
526  if( isset($user_solution[$answer->getPosition()]) )
527  {
528  $tplVar = $user_solution[$answer->getPosition()] ? 'CHECKED_ANSWER_TRUE' : 'CHECKED_ANSWER_FALSE';
529  $template->setVariable($tplVar, " checked=\"checked\"");
530  }
531 
532  $template->parseCurrentBlock();
533  }
534  $questiontext = $this->object->getQuestion();
535  $template->setVariable("QUESTIONTEXT", $this->object->prepareTextareaOutput($questiontext, TRUE));
536 
537  $template->setVariable("INSTRUCTIONTEXT", $this->object->getInstructionTextTranslation(
538  $this->lng, $this->object->getOptionLabel()
539  ));
540 
541  $template->setVariable("OPTION_LABEL_TRUE", $this->object->getTrueOptionLabelTranslation(
542  $this->lng, $this->object->getOptionLabel()
543  ));
544 
545  $template->setVariable("OPTION_LABEL_FALSE", $this->object->getFalseOptionLabelTranslation(
546  $this->lng, $this->object->getOptionLabel()
547  ));
548 
549  $questionoutput = $template->get();
550  if (!$show_question_only)
551  {
552  // get page object output
553  $questionoutput = $this->getILIASPage($questionoutput);
554  }
555  return $questionoutput;
556  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
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
populateSpecificFeedbackInline($user_solution, $answer_id, $template)
+ Here is the call graph for this function:

◆ getSolutionOutput()

assKprimChoiceGUI::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 
)
Parameters
$active_id
null$pass
bool$graphicalOutput
bool$result_output
bool$show_question_only
bool$show_feedback
bool$show_correct_solution
bool$show_manual_scoring
bool$show_question_text

Definition at line 569 of file class.assKprimChoiceGUI.php.

References $pass, assQuestionGUI\getGenericFeedbackOutput(), ilUtil\getHtmlPath(), assQuestionGUI\getILIASPage(), ilUtil\getImagePath(), getParticipantsAnswerKeySequence(), populateSpecificFeedbackInline(), and ilUtil\prepareFormOutput().

580  {
581  // shuffle output
582  $keys = $this->getParticipantsAnswerKeySequence();
583 
584  // get the solution of the user for the active pass or from the last pass if allowed
585  $user_solution = array();
586  if (($active_id > 0) && (!$show_correct_solution))
587  {
588  $solutions =& $this->object->getSolutionValues($active_id, $pass);
589  foreach ($solutions as $idx => $solution_value)
590  {
591  $user_solution[$solution_value['value1']] = $solution_value['value2'];
592  }
593  }
594  else
595  {
596  // take the correct solution instead of the user solution
597  foreach ($this->object->getAnswers() as $answer)
598  {
599  $user_solution[$answer->getPosition()] = $answer->getCorrectness();
600  }
601  }
602 
603  // generate the question output
604  $template = new ilTemplate("tpl.il_as_qpl_mc_kprim_output_solution.html", TRUE, TRUE, "Modules/TestQuestionPool");
605 
606  foreach ($keys as $answer_id)
607  {
608  $answer = $this->object->getAnswer($answer_id);
609 
610  if (($active_id > 0) && (!$show_correct_solution))
611  {
612  if ($graphicalOutput)
613  {
614  // output of ok/not ok icons for user entered solutions
615 
616  if( $user_solution[$answer->getPosition()] == $answer->getCorrectness() )
617  {
618  $template->setCurrentBlock("icon_ok");
619  $template->setVariable("ICON_OK", ilUtil::getImagePath("icon_ok.svg"));
620  $template->setVariable("TEXT_OK", $this->lng->txt("answer_is_right"));
621  $template->parseCurrentBlock();
622  }
623  else
624  {
625  $template->setCurrentBlock("icon_ok");
626  $template->setVariable("ICON_NOT_OK", ilUtil::getImagePath("icon_not_ok.svg"));
627  $template->setVariable("TEXT_NOT_OK", $this->lng->txt("answer_is_wrong"));
628  $template->parseCurrentBlock();
629  }
630  }
631  }
632  if (strlen($answer->getImageFile()))
633  {
634  $template->setCurrentBlock("answer_image");
635  if ($this->object->getThumbSize())
636  {
637  $template->setVariable("ANSWER_IMAGE_URL", $answer->getThumbWebPath());
638  }
639  else
640  {
641  $template->setVariable("ANSWER_IMAGE_URL", $answer->getImageWebPath());
642  }
643 
644  $template->setVariable("ANSWER_IMAGE_ALT", ilUtil::prepareFormOutput($answer->getImageFile()));
645  $template->setVariable("ANSWER_IMAGE_TITLE", ilUtil::prepareFormOutput($answer->getImageFile()));
646  $template->parseCurrentBlock();
647  }
648 
649  if ($show_feedback)
650  {
651  $this->populateSpecificFeedbackInline($user_solution, $answer_id, $template);
652  }
653 
654  $template->setCurrentBlock("answer_row");
655  $template->setVariable("ANSWER_TEXT", $this->object->prepareTextareaOutput($answer->getAnswertext(), TRUE));
656 
657  if( isset($user_solution[$answer->getPosition()]) )
658  {
659  if( $user_solution[$answer->getPosition()] )
660  {
661  $template->setVariable("SOLUTION_IMAGE_TRUE", ilUtil::getHtmlPath(ilUtil::getImagePath("radiobutton_checked.png")));
662  $template->setVariable("SOLUTION_ALT_TRUE", $this->lng->txt("checked"));
663  $template->setVariable("SOLUTION_IMAGE_FALSE", ilUtil::getHtmlPath(ilUtil::getImagePath("radiobutton_unchecked.png")));
664  $template->setVariable("SOLUTION_ALT_FALSE", $this->lng->txt("unchecked"));
665  }
666  else
667  {
668  $template->setVariable("SOLUTION_IMAGE_TRUE", ilUtil::getHtmlPath(ilUtil::getImagePath("radiobutton_unchecked.png")));
669  $template->setVariable("SOLUTION_ALT_TRUE", $this->lng->txt("unchecked"));
670  $template->setVariable("SOLUTION_IMAGE_FALSE", ilUtil::getHtmlPath(ilUtil::getImagePath("radiobutton_checked.png")));
671  $template->setVariable("SOLUTION_ALT_FALSE", $this->lng->txt("checked"));
672  }
673  }
674  else
675  {
676  $template->setVariable("SOLUTION_IMAGE_TRUE", ilUtil::getHtmlPath(ilUtil::getImagePath("radiobutton_unchecked.png")));
677  $template->setVariable("SOLUTION_ALT_TRUE", $this->lng->txt("unchecked"));
678  $template->setVariable("SOLUTION_IMAGE_FALSE", ilUtil::getHtmlPath(ilUtil::getImagePath("radiobutton_unchecked.png")));
679  $template->setVariable("SOLUTION_ALT_FALSE", $this->lng->txt("unchecked"));
680  }
681 
682  $template->parseCurrentBlock();
683  }
684 
685  if ($show_question_text==true)
686  {
687  $questiontext = $this->object->getQuestion();
688  $template->setVariable("QUESTIONTEXT", $this->object->prepareTextareaOutput($questiontext, TRUE));
689 
690  $template->setVariable("INSTRUCTIONTEXT", $this->object->getInstructionTextTranslation(
691  $this->lng, $this->object->getOptionLabel()
692  ));
693  }
694 
695  $template->setVariable("OPTION_LABEL_TRUE", $this->object->getTrueOptionLabelTranslation(
696  $this->lng, $this->object->getOptionLabel()
697  ));
698 
699  $template->setVariable("OPTION_LABEL_FALSE", $this->object->getFalseOptionLabelTranslation(
700  $this->lng, $this->object->getOptionLabel()
701  ));
702 
703 
704  $questionoutput = $template->get();
705  $feedback = ($show_feedback) ? $this->getGenericFeedbackOutput($active_id, $pass) : "";
706 
707  $solutiontemplate = new ilTemplate("tpl.il_as_tst_solution_output.html",TRUE, TRUE, "Modules/TestQuestionPool");
708 
709  if( strlen($feedback) )
710  {
711  $solutiontemplate->setVariable("FEEDBACK", $this->object->prepareTextareaOutput( $feedback , true ));
712  }
713 
714  $solutiontemplate->setVariable("SOLUTION_OUTPUT", $questionoutput);
715 
716  $solutionoutput = $solutiontemplate->get();
717 
718  if (!$show_question_only)
719  {
720  // get page object output
721  $solutionoutput = $this->getILIASPage($solutionoutput);
722  }
723  return $solutionoutput;
724  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
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
static getHtmlPath($relative_path)
get url of path
getGenericFeedbackOutput($active_id, $pass)
Returns the answer specific feedback for the question.
populateSpecificFeedbackInline($user_solution, $answer_id, $template)
+ Here is the call graph for this function:

◆ getSpecificFeedbackOutput()

assKprimChoiceGUI::getSpecificFeedbackOutput (   $active_id,
  $pass 
)
Parameters
integer$active_id
integer$pass
Returns
string

Definition at line 333 of file class.assKprimChoiceGUI.php.

334  {
335  return ''; // question type supports inline answer specific feedback
336  }

◆ getTestOutput()

assKprimChoiceGUI::getTestOutput (   $active_id,
  $pass = NULL,
  $is_postponed = FALSE,
  $use_post_solutions = FALSE,
  $showInlineFeedback = FALSE 
)
Parameters
integer$active_id
integer | null$pass
bool$is_postponed
bool$use_post_solutions
bool$show_feedback
Returns
string

Definition at line 347 of file class.assKprimChoiceGUI.php.

References $pass, ilObjTest\_getPass(), ilObjTest\_getUsePreviousAnswers(), ilUtil\getImagePath(), getParticipantsAnswerKeySequence(), assQuestionGUI\outQuestionPage(), populateSpecificFeedbackInline(), and ilUtil\prepareFormOutput().

354  {
355  // shuffle output
356  $keys = $this->getParticipantsAnswerKeySequence();
357 
358  // get the solution of the user for the active pass or from the last pass if allowed
359  $user_solution = array();
360  if ($active_id)
361  {
362  $solutions = NULL;
363  include_once "./Modules/Test/classes/class.ilObjTest.php";
364  if (!ilObjTest::_getUsePreviousAnswers($active_id, true))
365  {
366  if (is_null($pass)) $pass = ilObjTest::_getPass($active_id);
367  }
368  $solutions =& $this->object->getSolutionValues($active_id, $pass);
369  foreach ($solutions as $idx => $solution_value)
370  {
371  $user_solution[$solution_value["value1"]] = $solution_value["value2"];
372  }
373  }
374 
375  // generate the question output
376  include_once "./Services/UICore/classes/class.ilTemplate.php";
377  $template = new ilTemplate("tpl.il_as_qpl_mc_kprim_output.html", TRUE, TRUE, "Modules/TestQuestionPool");
378 
379  foreach ($keys as $answer_id)
380  {
381  $answer = $this->object->getAnswer($answer_id);
382  if (strlen($answer->getImageFile()))
383  {
384  if ($this->object->getThumbSize())
385  {
386  $template->setCurrentBlock("preview");
387  $template->setVariable("URL_PREVIEW", $answer->getImageWebPath());
388  $template->setVariable("TEXT_PREVIEW", $this->lng->txt('preview'));
389  $template->setVariable("IMG_PREVIEW", ilUtil::getImagePath('enlarge.svg'));
390  $template->setVariable("ANSWER_IMAGE_URL", $answer->getThumbWebPath());
391  list($width, $height, $type, $attr) = getimagesize($answer->getImageFsPath());
392  $alt = $answer->getImageFile();
393  if (strlen($answer->getAnswertext()))
394  {
395  $alt = $answer->getAnswertext();
396  }
397  $alt = preg_replace("/<[^>]*?>/", "", $alt);
398  $template->setVariable("ANSWER_IMAGE_ALT", ilUtil::prepareFormOutput($alt));
399  $template->setVariable("ANSWER_IMAGE_TITLE", ilUtil::prepareFormOutput($alt));
400  $template->parseCurrentBlock();
401  }
402  else
403  {
404  $template->setCurrentBlock("answer_image");
405  $template->setVariable("ANSWER_IMAGE_URL", $answer->getImageWebPath());
406  list($width, $height, $type, $attr) = getimagesize($answer->getImageFsPath());
407  $alt = $answer->getImageFile();
408  if (strlen($answer->getAnswertext()))
409  {
410  $alt = $answer->getAnswertext();
411  }
412  $alt = preg_replace("/<[^>]*?>/", "", $alt);
413  $template->setVariable("ATTR", $attr);
414  $template->setVariable("ANSWER_IMAGE_ALT", ilUtil::prepareFormOutput($alt));
415  $template->setVariable("ANSWER_IMAGE_TITLE", ilUtil::prepareFormOutput($alt));
416  $template->parseCurrentBlock();
417  }
418  }
419 
420  if( $showInlineFeedback )
421  {
422  $this->populateSpecificFeedbackInline($user_solution, $answer_id, $template);
423  }
424 
425  $template->setCurrentBlock("answer_row");
426  $template->setVariable("ANSWER_ID", $answer_id);
427  $template->setVariable("ANSWER_TEXT", $this->object->prepareTextareaOutput($answer->getAnswertext(), TRUE));
428  $template->setVariable('VALUE_TRUE', 1);
429  $template->setVariable('VALUE_FALSE', 0);
430 
431  if( isset($user_solution[$answer->getPosition()]) )
432  {
433  $tplVar = $user_solution[$answer->getPosition()] ? 'CHECKED_ANSWER_TRUE' : 'CHECKED_ANSWER_FALSE';
434  $template->setVariable($tplVar, " checked=\"checked\"");
435  }
436 
437  $template->parseCurrentBlock();
438  }
439 
440  $questiontext = $this->object->getQuestion();
441  $template->setVariable("QUESTIONTEXT", $this->object->prepareTextareaOutput($questiontext, TRUE));
442 
443  $template->setVariable("INSTRUCTIONTEXT", $this->object->getInstructionTextTranslation(
444  $this->lng, $this->object->getOptionLabel()
445  ));
446 
447  $template->setVariable("OPTION_LABEL_TRUE", $this->object->getTrueOptionLabelTranslation(
448  $this->lng, $this->object->getOptionLabel()
449  ));
450 
451  $template->setVariable("OPTION_LABEL_FALSE", $this->object->getFalseOptionLabelTranslation(
452  $this->lng, $this->object->getOptionLabel()
453  ));
454 
455  $questionoutput = $template->get();
456  $pageoutput = $this->outQuestionPage("", $is_postponed, $active_id, $questionoutput);
457  return $pageoutput;
458  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
_getPass($active_id)
Retrieves the actual pass of a given user for a given test.
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
_getUsePreviousAnswers($active_id, $user_active_user_setting=false)
Returns if the previous results should be hidden for a learner.
outQuestionPage($a_temp_var, $a_postponed=false, $active_id="", $html="")
output question page
populateSpecificFeedbackInline($user_solution, $answer_id, $template)
+ Here is the call graph for this function:

◆ handleAnswerTextsSubmit()

assKprimChoiceGUI::handleAnswerTextsSubmit (   $answers)
private

Definition at line 313 of file class.assKprimChoiceGUI.php.

References assKprimChoice\ANSWER_TYPE_MULTI_LINE, and ilUtil\secureString().

Referenced by writeAnswerSpecificPostData().

314  {
315  if( $this->object->getAnswerType() == assKprimChoice::ANSWER_TYPE_MULTI_LINE )
316  {
317  return $answers;
318  }
319 
320  foreach($answers as $key => $answer)
321  {
322  $answer->setAnswerText(ilUtil::secureString($answer->getAnswerText()));
323  }
324 
325  return $answers;
326  }
static secureString($a_str, $a_strip_html=true, $a_allow="")
Remove unsecure tags.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateAnswerSpecificFormPart()

assKprimChoiceGUI::populateAnswerSpecificFormPart ( ilPropertyFormGUI  $form)
Parameters
ilPropertyFormGUI$form
Returns
ilPropertyFormGUI

Implements ilGuiAnswerScoringAdjustable.

Definition at line 276 of file class.assKprimChoiceGUI.php.

References ilPropertyFormGUI\addItem(), and ilFormPropertyGUI\setInfo().

Referenced by buildEditForm().

277  {
278  require_once 'Modules/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php';
279  $kprimAnswers = new ilKprimChoiceWizardInputGUI($this->lng->txt('answers'), 'kprim_answers');
280  $kprimAnswers->setInfo($this->lng->txt('kprim_answers_info'));
281  $kprimAnswers->setSize(64);
282  $kprimAnswers->setMaxLength(1000);
283  $kprimAnswers->setRequired(true);
284  $kprimAnswers->setAllowMove(true);
285  $kprimAnswers->setQuestionObject($this->object);
286  if( !$this->object->getSelfAssessmentEditingMode() )
287  {
288  $kprimAnswers->setSingleline($this->object->isSingleLineAnswerType($this->object->getAnswerType()));
289  }
290  else
291  {
292  $kprimAnswers->setSingleline(false);
293  }
294  $kprimAnswers->setValues($this->object->getAnswers());
295  $form->addItem($kprimAnswers);
296 
297  return $form;
298  }
addItem($a_item)
Add Item (Property, SectionHeader).
setInfo($a_info)
Set Information Text.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateQuestionSpecificFormPart()

assKprimChoiceGUI::populateQuestionSpecificFormPart ( ilPropertyFormGUI  $form)
Parameters
ilPropertyFormGUI$form
Returns
ilPropertyFormGUI

Implements ilGuiQuestionScoringAdjustable.

Definition at line 157 of file class.assKprimChoiceGUI.php.

References ilPropertyFormGUI\addItem(), ilCheckboxInputGUI\setChecked(), ilFormPropertyGUI\setInfo(), ilSelectInputGUI\setOptions(), ilFormPropertyGUI\setRequired(), ilNumberInputGUI\setSuffix(), and ilTextInputGUI\setValue().

Referenced by buildEditForm().

158  {
159  // shuffle answers
160  $shuffleAnswers = new ilCheckboxInputGUI($this->lng->txt( "shuffle_answers" ), "shuffle_answers_enabled");
161  $shuffleAnswers->setChecked( $this->object->isShuffleAnswersEnabled() );
162  $form->addItem($shuffleAnswers);
163 
164  if( !$this->object->getSelfAssessmentEditingMode() )
165  {
166  // answer mode (single-/multi-line)
167  $answerType = new ilSelectInputGUI($this->lng->txt('answer_types'), 'answer_type');
168  $answerType->setOptions($this->object->getAnswerTypeSelectOptions($this->lng));
169  $answerType->setValue( $this->object->getAnswerType() );
170  $form->addItem($answerType);
171  }
172 
173  if( !$this->object->getSelfAssessmentEditingMode() && $this->object->isSingleLineAnswerType($this->object->getAnswerType()) )
174  {
175  // thumb size
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  $thumbSize->setValue( $this->object->getThumbSize() );
183  $form->addItem($thumbSize);
184  }
185 
186  // option label
187  $optionLabel = new ilRadioGroupInputGUI($this->lng->txt('option_label'), 'option_label');
188  $optionLabel->setInfo($this->lng->txt('option_label_info'));
189  $optionLabel->setRequired(true);
190  $optionLabel->setValue($this->object->getOptionLabel());
191  foreach($this->object->getValidOptionLabelsTranslated($this->lng) as $labelValue => $labelText)
192  {
193  $option = new ilRadioOption($labelText, $labelValue);
194  $optionLabel->addOption($option);
195 
196  if( $this->object->isCustomOptionLabel($labelValue) )
197  {
198  $customLabelTrue = new ilTextInputGUI(
199  $this->lng->txt('option_label_custom_true'), 'option_label_custom_true'
200  );
201  $customLabelTrue->setValue($this->object->getCustomTrueOptionLabel());
202  $option->addSubItem($customLabelTrue);
203 
204  $customLabelFalse = new ilTextInputGUI(
205  $this->lng->txt('option_label_custom_false'), 'option_label_custom_false'
206  );
207  $customLabelFalse->setValue($this->object->getCustomFalseOptionLabel());
208  $option->addSubItem($customLabelFalse);
209  }
210  }
211  $form->addItem($optionLabel);
212 
213  // points
214  $points = new ilNumberInputGUI($this->lng->txt('points'), 'points');
215  $points->setRequired(true);
216  $points->setSize(3);
217  $points->allowDecimals(true);
218  $points->setMinValue(0);
219  $points->setMinvalueShouldBeGreater(true);
220  $points->setValue($this->object->getPoints());
221  $form->addItem($points);
222 
223  // score partial solution
224  $scorePartialSolution = new ilCheckboxInputGUI($this->lng->txt('score_partsol_enabled'), 'score_partsol_enabled');
225  $scorePartialSolution->setInfo($this->lng->txt('score_partsol_enabled_info'));
226  $scorePartialSolution->setChecked( $this->object->isScorePartialSolutionEnabled() );
227  $form->addItem($scorePartialSolution);
228 
229  return $form;
230  }
This class represents an option in a radio group.
This class represents a selection list property in a property form.
This class represents a checkbox property in a property form.
addItem($a_item)
Add Item (Property, SectionHeader).
setInfo($a_info)
Set Information Text.
setChecked($a_checked)
Set Checked.
This class represents a property in a property form.
setSuffix($a_value)
Set suffix.
This class represents a number property in a property form.
This class represents a text property in a property form.
setOptions($a_options)
Set Options.
setValue($a_value)
Set Value.
setRequired($a_required)
Set Required.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateSpecificFeedbackInline()

assKprimChoiceGUI::populateSpecificFeedbackInline (   $user_solution,
  $answer_id,
  $template 
)
private

Definition at line 749 of file class.assKprimChoiceGUI.php.

References ilAssConfigurableMultiOptionQuestionFeedback\FEEDBACK_SETTING_ALL, ilAssConfigurableMultiOptionQuestionFeedback\FEEDBACK_SETTING_CHECKED, and ilAssConfigurableMultiOptionQuestionFeedback\FEEDBACK_SETTING_CORRECT.

Referenced by getPreview(), getSolutionOutput(), and getTestOutput().

750  {
751  require_once 'Modules/TestQuestionPool/classes/feedback/class.ilAssConfigurableMultiOptionQuestionFeedback.php';
752 
753  if($this->object->getSpecificFeedbackSetting() == ilAssConfigurableMultiOptionQuestionFeedback::FEEDBACK_SETTING_CHECKED)
754  {
755  if($user_solution[$answer_id])
756  {
757  $fb = $this->object->feedbackOBJ->getSpecificAnswerFeedbackTestPresentation($this->object->getId(), $answer_id);
758  if(strlen($fb))
759  {
760  $template->setCurrentBlock("feedback");
761  $template->setVariable("FEEDBACK", $this->object->prepareTextareaOutput($fb, true));
762  $template->parseCurrentBlock();
763  }
764  }
765  }
766 
767  if($this->object->getSpecificFeedbackSetting() == ilAssConfigurableMultiOptionQuestionFeedback::FEEDBACK_SETTING_ALL)
768  {
769  $fb = $this->object->feedbackOBJ->getSpecificAnswerFeedbackTestPresentation($this->object->getId(), $answer_id);
770  if(strlen($fb))
771  {
772  $template->setCurrentBlock("feedback");
773  $template->setVariable("FEEDBACK", $this->object->prepareTextareaOutput($fb, true));
774  $template->parseCurrentBlock();
775  }
776  }
777 
778  if($this->object->getSpecificFeedbackSetting() == ilAssConfigurableMultiOptionQuestionFeedback::FEEDBACK_SETTING_CORRECT)
779  {
780  $answer = $this->object->getAnswer($answer_id);
781 
782  if($answer->getCorrectness())
783  {
784  $fb = $this->object->feedbackOBJ->getSpecificAnswerFeedbackTestPresentation($this->object->getId(), $answer_id);
785  if(strlen($fb))
786  {
787  $template->setCurrentBlock("feedback");
788  $template->setVariable("FEEDBACK", $this->object->prepareTextareaOutput($fb, true));
789  $template->parseCurrentBlock();
790  }
791  }
792  }
793  }
+ Here is the caller graph for this function:

◆ removeImage()

assKprimChoiceGUI::removeImage ( )

Definition at line 68 of file class.assKprimChoiceGUI.php.

References $_POST, and editQuestion().

69  {
70  $position = key($_POST['cmd']['removeImage']);
71  $this->object->removeAnswerImage($position);
72 
73  $this->object->saveToDb();
74  $this->editQuestion();
75  }
$_POST['username']
Definition: cron.php:12
editQuestion(ilPropertyFormGUI $form=null)
+ Here is the call graph for this function:

◆ renderAggregateView()

assKprimChoiceGUI::renderAggregateView (   $aggregate)

Definition at line 839 of file class.assKprimChoiceGUI.php.

References assQuestionGUI\$tpl.

Referenced by getAggregatedAnswersView().

840  {
841  $trueOptionLabel = $this->object->getTrueOptionLabelTranslation($this->lng, $this->object->getOptionLabel());
842  $falseOptionLabel = $this->object->getFalseOptionLabelTranslation($this->lng, $this->object->getOptionLabel());
843 
844  $tpl = new ilTemplate('tpl.il_as_aggregated_kprim_answers_table.html', true, true, "Modules/TestQuestionPool");
845 
846  foreach( $aggregate as $lineData )
847  {
848  $tpl->setCurrentBlock('aggregaterow');
849  $tpl->setVariable('OPTION', $lineData['answertext']);
850  $tpl->setVariable('COUNT_TRUE', $lineData['count_true']);
851  $tpl->setVariable('COUNT_FALSE', $lineData['count_false']);
852  $tpl->parseCurrentBlock();
853  }
854 
855  $tpl->setVariable('OPTION_HEAD', $this->lng->txt('answers'));
856  $tpl->setVariable('COUNT_TRUE_HEAD', $trueOptionLabel);
857  $tpl->setVariable('COUNT_FALSE_HEAD', $falseOptionLabel);
858 
859  return $tpl;
860  }
special template class to simplify handling of ITX/PEAR
+ Here is the caller graph for this function:

◆ upkprim_answers()

assKprimChoiceGUI::upkprim_answers ( )

Definition at line 88 of file class.assKprimChoiceGUI.php.

References $_POST, and editQuestion().

89  {
90  if( isset($_POST['cmd'][__FUNCTION__]) && count($_POST['cmd'][__FUNCTION__]) )
91  {
92  $this->object->moveAnswerUp( key($_POST['cmd'][__FUNCTION__]) );
93  $this->object->saveToDb();
94  }
95 
96  $this->editQuestion();
97  }
$_POST['username']
Definition: cron.php:12
editQuestion(ilPropertyFormGUI $form=null)
+ Here is the call graph for this function:

◆ uploadImage()

assKprimChoiceGUI::uploadImage ( )
protected

Definition at line 57 of file class.assKprimChoiceGUI.php.

References $result, editQuestion(), and assQuestionGUI\writePostData().

58  {
59  $result = $this->writePostData(true);
60 
61  if( $result == 0 )
62  {
63  $this->object->saveToDb();
64  $this->editQuestion();
65  }
66  }
writePostData()
Evaluates a posted edit form and writes the form data in the question object.
$result
editQuestion(ilPropertyFormGUI $form=null)
+ Here is the call graph for this function:

◆ writeAnswerSpecificPostData()

assKprimChoiceGUI::writeAnswerSpecificPostData ( ilPropertyFormGUI  $form)
Parameters
ilPropertyFormGUI$form

Implements ilGuiAnswerScoringAdjustable.

Definition at line 303 of file class.assKprimChoiceGUI.php.

References ilPropertyFormGUI\getItemByPostVar(), and handleAnswerTextsSubmit().

Referenced by writePostData().

304  {
305  $answers = $form->getItemByPostVar('kprim_answers')->getValues();
306  $answers = $this->handleAnswerTextsSubmit($answers);
307  $files = $form->getItemByPostVar('kprim_answers')->getFiles();
308 
309  $this->object->handleFileUploads($answers, $files);
310  $this->object->setAnswers($answers);
311  }
getItemByPostVar($a_post_var)
Get Item by POST variable.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ writePostData()

assKprimChoiceGUI::writePostData (   $upload = false)
protected

Definition at line 99 of file class.assKprimChoiceGUI.php.

References $_POST, buildEditForm(), editQuestion(), assQuestionGUI\saveTaxonomyAssignments(), ilUtil\sendFailure(), writeAnswerSpecificPostData(), assQuestionGUI\writeQuestionGenericPostData(), and writeQuestionSpecificPostData().

100  {
101  $form = $this->buildEditForm();
102  $form->setValuesByPost();
103 
104  if( $upload )
105  {
106  $answersInput = $form->getItemByPostVar('kprim_answers');
107  $answersInput->setIgnoreMissingUploadsEnabled(true);
108 
109  if( !$answersInput->checkUploads($_POST[$answersInput->getPostVar()]) )
110  {
111  ilUtil::sendFailure($this->lng->txt("form_input_not_valid"));
112  $this->editQuestion($form);
113  return 1;
114  }
115 
116  $answersInput->collectValidFiles();
117  }
118  elseif( !$form->checkInput() )
119  {
120  $this->editQuestion($form);
121  return 1;
122  }
123 
125 
126  $this->writeQuestionSpecificPostData($form);
127  $this->writeAnswerSpecificPostData($form);
128 
129  $this->saveTaxonomyAssignments();
130 
131  return 0;
132  }
writeQuestionSpecificPostData(ilPropertyFormGUI $form)
$_POST['username']
Definition: cron.php:12
writeAnswerSpecificPostData(ilPropertyFormGUI $form)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
editQuestion(ilPropertyFormGUI $form=null)
+ Here is the call graph for this function:

◆ writeQuestionSpecificPostData()

assKprimChoiceGUI::writeQuestionSpecificPostData ( ilPropertyFormGUI  $form)
Parameters
ilPropertyFormGUI$form

Implements ilGuiQuestionScoringAdjustable.

Definition at line 235 of file class.assKprimChoiceGUI.php.

References assKprimChoice\ANSWER_TYPE_MULTI_LINE, and ilPropertyFormGUI\getItemByPostVar().

Referenced by writePostData().

236  {
237  $oldAnswerType = $this->object->getAnswerType();
238 
239  $this->object->setShuffleAnswersEnabled($form->getItemByPostVar('shuffle_answers_enabled')->getChecked());
240 
241  if( !$this->object->getSelfAssessmentEditingMode() )
242  {
243  $this->object->setAnswerType($form->getItemByPostVar('answer_type')->getValue());
244  }
245  else
246  {
247  $this->object->setAnswerType(assKprimChoice::ANSWER_TYPE_MULTI_LINE);
248  }
249 
250  if( !$this->object->getSelfAssessmentEditingMode() && $this->object->isSingleLineAnswerType($oldAnswerType) )
251  {
252  $this->object->setThumbSize($form->getItemByPostVar('thumb_size')->getValue());
253  }
254 
255  $this->object->setOptionLabel($form->getItemByPostVar('option_label')->getValue());
256 
257  if( $this->object->isCustomOptionLabel($this->object->getOptionLabel()) )
258  {
259  $this->object->setCustomTrueOptionLabel( strip_tags(
260  $form->getItemByPostVar('option_label_custom_true')->getValue()
261  ));
262  $this->object->setCustomFalseOptionLabel( strip_tags(
263  $form->getItemByPostVar('option_label_custom_false')->getValue()
264  ));
265  }
266 
267  $this->object->setPoints($form->getItemByPostVar('points')->getValue());
268 
269  $this->object->setScorePartialSolutionEnabled($form->getItemByPostVar('score_partsol_enabled')->getChecked());
270  }
getItemByPostVar($a_post_var)
Get Item by POST variable.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $object

assKprimChoiceGUI::$object

Definition at line 21 of file class.assKprimChoiceGUI.php.


The documentation for this class was generated from the following file: