ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
assQuestionGUI Class Reference
+ Inheritance diagram for assQuestionGUI:
+ Collaboration diagram for assQuestionGUI:

Public Member Functions

 editQuestion (bool $checkonly=false, ?bool $is_save_cmd=null)
 
 getSpecificFeedbackOutput (array $userSolution)
 Returns the answer specific feedback for the question. More...
 
 getSolutionOutput (int $active_id, ?int $pass=null, bool $graphical_output=false, bool $result_output=false, bool $show_question_only=true, bool $show_feedback=false, bool $show_correct_solution=false, bool $show_manual_scoring=false, bool $show_question_text=true, bool $show_inline_feedback=true)
 
 getPreview (bool $show_question_only=false, bool $show_inline_feedback=false)
 
 getTestOutput (int $active_id, int $pass, bool $is_question_postponed=false, array|bool $user_post_solutions=false, bool $show_specific_inline_feedback=false)
 
 renderSolutionOutput (mixed $user_solutions, int $active_id, ?int $pass, bool $graphical_output=false, bool $result_output=false, bool $show_question_only=true, bool $show_feedback=false, bool $show_correct_solution=false, bool $show_manual_scoring=false, bool $show_question_text=true, bool $show_autosave_title=false, bool $show_inline_feedback=false,)
 
 getObject ()
 
 setObject (assQuestion $question)
 
 setCopyToExistingPoolOnSave (?int $pool_ref_id)
 
 getCopyToExistingPoolOnSave ()
 
 setCopyToNewPoolOnSave (?string $pool_title)
 
 getCopyToNewPoolOnSave ()
 
 setMoveAfterQuestionId (?int $question_id)
 
 getMoveAfterQuestionId ()
 
 hasInlineFeedback ()
 
 addHeaderAction ()
 
 redrawHeaderAction ()
 
 getHeaderAction ()
 
 getCommentsPanelHTML ()
 
 executeCommand ()
 
 getType ()
 needed for page editor compliance More...
 
 getPresentationContext ()
 
 setPresentationContext (string $presentationContext)
 
 isTestPresentationContext ()
 
 isPreviousSolutionPrefilled ()
 
 setPreviousSolutionPrefilled (bool $previousSolutionPrefilled)
 
 getRenderPurpose ()
 
 setRenderPurpose (string $renderPurpose)
 
 isRenderPurposePrintPdf ()
 
 isRenderPurposePreview ()
 
 isRenderPurposeInputValue ()
 
 isRenderPurposePlayback ()
 
 isRenderPurposeDemoplay ()
 
 renderPurposeSupportsFormHtml ()
 
 getEditContext ()
 
 setEditContext (string $editContext)
 
 isAuthoringEditContext ()
 
 isAdjustmentEditContext ()
 
 setAdjustmentEditContext ()
 
 getNavigationGUI ()
 
 setNavigationGUI (?ilTestQuestionNavigationGUI $navigationGUI)
 
 setTaxonomyIds (array $taxonomyIds)
 
 getTaxonomyIds ()
 
 setTargetGui ($linkTargetGui)
 
 setTargetGuiClass (string $targetGuiClass)
 
 getTargetGuiClass ()
 
 setQuestionHeaderBlockBuilder (\ilQuestionHeaderBlockBuilder $questionHeaderBlockBuilder)
 
 getQuestionHeaderBlockBuilder ()
 
 setQuestionActionCmd (string $questionActionCmd)
 
 getQuestionActionCmd ()
 
 assessment ()
 
 populateJavascriptFilesRequiredForWorkForm (ilGlobalTemplateInterface $tpl)
 
 getPresentationJavascripts ()
 
 getQuestionTemplate ()
 
 getILIASPage (string $html="")
 Returns the ILIAS Page around a question. More...
 
 outQuestionPage ($a_temp_var, $a_postponed=false, $active_id="", $html="", $inlineFeedbackEnabled=false)
 
 syncQuestion ()
 
 saveReturn ()
 
 saveQuestion ()
 
 setAdditionalContentEditingModeFromPost ()
 
 getContextPath ($cont_obj, int $a_endnode_id, int $a_startnode_id=1)
 get context path in content object tree More...
 
 setSequenceNumber (int $nr)
 
 getSequenceNumber ()
 
 setQuestionCount (int $a_question_count)
 
 getQuestionCount ()
 
 getErrorMessage ()
 
 setErrorMessage (string $errormessage)
 
 addErrorMessage (string $errormessage)
 
 getQuestionType ()
 
 getAsValueAttribute (string $a_value)
 
 addQuestionFormCommandButtons (ilPropertyFormGUI $form)
 
 addBasicQuestionFormProperties (ilPropertyFormGUI $form)
 
 getGenericFeedbackOutput (int $active_id, ?int $pass)
 
 getGenericFeedbackOutputForCorrectSolution ()
 
 getGenericFeedbackOutputForIncorrectSolution ()
 
 outQuestionType ()
 
 saveSuggestedSolution ()
 
 cancelSuggestedSolution ()
 
 suggestedsolution (bool $save=false)
 
 outSolutionExplorer ()
 
 saveSuggestedSolutionType ()
 
 cancelExplorer ()
 
 outPageSelector ()
 
 outChapterSelector ()
 
 outGlossarySelector ()
 
 linkChilds ()
 
 addPG ()
 
 addST ()
 
 addGIT ()
 
 isSaveCommand ()
 
 setQuestionTabs ()
 
 addTab_SuggestedSolution (ilTabsGUI $tabs, string $classname)
 
 getEditQuestionTabCommands ()
 
 isAutosaveable ()
 
 outQuestionForTest (string $formaction, int $active_id, ?int $pass, bool $is_question_postponed=false, array|bool $user_post_solutions=false, bool $show_specific_inline_feedback=false)
 
 magicAfterTestOutput ()
 
 getFormEncodingType ()
 
 setPreviewSession (ilAssQuestionPreviewSession $preview_session)
 
 getPreviewSession ()
 
 showHints ()
 
 buildFocusAnchorHtml ()
 
 isAnswerFrequencyStatisticSupported ()
 
 getSubQuestionsIndex ()
 
 getAnswersFrequency ($relevantAnswers, $questionIndex)
 
 getAnswerFrequencyTableGUI ($parentGui, $parentCmd, $relevantAnswers, $questionIndex)
 
 prepareReprintableCorrectionsForm (ilPropertyFormGUI $form)
 
 populateCorrectionsFormProperties (ilPropertyFormGUI $form)
 
 saveCorrectionsFormProperties (ilPropertyFormGUI $form)
 
 isInLearningModuleContext ()
 
 setInLearningModuleContext (bool $flag)
 
 cmdNeedsExistingQuestion (string $cmd)
 
 setContextAllowsSyncToPool (bool $sync_allowed)
 
 needsSyncQuery ()
 
 getQuestionSyncModal (string $cmd, string $cmd_class='')
 
 getAutoSavedSolutionOutput (int $active_id, int $pass, bool $graphical_output=false, bool $result_output=false, bool $show_question_only=true, bool $show_feedback=false, bool $show_correct_solution=false, bool $show_manual_scoring=false, bool $show_question_text=true, bool $show_autosave_title=false, bool $show_inline_feedback=false)
 

Static Public Member Functions

static _getQuestionGUI (string $question_type='', int $question_id=-1)
 Creates a question gui representation and returns the alias to the question gui. More...
 
static getCommandsFromClassConstants (string $guiClassName, string $cmdConstantNameBegin='CMD_')
 
static prepareTextareaOutput (?string $txt_output, bool $prepare_for_latex_output=false, bool $omitNl2BrWhenTextArea=false)
 Prepares a string for a text area output where latex code may be in it If the text is HTML-free, CHR(13) will be converted to a line break. More...
 

Data Fields

const ALLOWED_PLAIN_TEXT_TAGS = "<em>, <strong>"
 sk - 12.05.2023: This const is also used in ilKprimChoiceWizardInputGUI. More...
 
const SESSION_PREVIEW_DATA_BASE_INDEX = 'ilAssQuestionPreviewAnswers'
 
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 CORRECTNESS_NOT_OK = 0
 
const CORRECTNESS_MOSTLY_OK = 1
 
const CORRECTNESS_OK = 2
 
const RENDER_PURPOSE_PLAYBACK = 'renderPurposePlayback'
 
const RENDER_PURPOSE_DEMOPLAY = 'renderPurposeDemoplay'
 
const RENDER_PURPOSE_PREVIEW = 'renderPurposePreview'
 
const RENDER_PURPOSE_PRINT_PDF = 'renderPurposePrintPdf'
 
const RENDER_PURPOSE_INPUT_VALUE = 'renderPurposeInputValue'
 
const EDIT_CONTEXT_AUTHORING = 'authoring'
 
const EDIT_CONTEXT_ADJUSTMENT = 'adjustment'
 
const PRESENTATION_CONTEXT_TEST = 'pContextTest'
 
const PRESENTATION_CONTEXT_RESULTS = 'pContextResults'
 
const CMD_SYNC_QUESTION_AND_RETURN = 'syncQuestionReturn'
 

Protected Member Functions

 hasSpecialQuestionCommands ()
 
 writePostData (bool $always=false)
 Evaluates a posted edit form and writes the form data in the question object. More...
 
 renderEditForm (ilPropertyFormGUI $form)
 
 getUseUnchangedAnswerCheckboxHtml ()
 
 getPreviousSolutionProvidedMessage ()
 
 getPreviousSolutionConfirmationCheckboxHtml ()
 
 setTestSpecificProperties ()
 
 addNumberOfTriesToFormIfNecessary (ilPropertyFormGUI $form)
 
 saveTaxonomyAssignments ()
 
 populateTaxonomyFormSection (ilPropertyFormGUI $form)
 
 genericFeedbackOutputBuilder (int $active_id, ?int $pass)
 
 getTypeOptions ()
 
 createSuggestedSolutionLinkingTo (string $type, string $target)
 
 setDefaultTabs (ilTabsGUI $tabs_gui)
 
 setQuestionSpecificTabs (ilTabsGUI $tabs_gui)
 
 getBasicEditQuestionTabCommands ()
 
 getAdditionalEditQuestionCommands ()
 
 addTab_QuestionFeedback (ilTabsGUI $tabs)
 
 addTab_QuestionHints (ilTabsGUI $tabs)
 
 addTab_Question (ilTabsGUI $tabs_gui)
 
 hasCorrectSolution ($activeId, $passIndex)
 
 writeQuestionGenericPostData ()
 
 completeTestOutputFormAction (string $form_action, int $active_id, int $pass)
 
 addBackTab (ilTabsGUI $tabs_gui)
 
 buildBasicEditFormObject ()
 
 escapeTemplatePlaceholders (string $text)
 
 buildEditForm ()
 
 generateCorrectnessIconsForCorrectness (int $correctness)
 
 getSuggestedSolutionsRepo ()
 
 cleanupAnswerText (array $answer_text, bool $is_rte)
 sk - 12.05.2023: This is one more of those that we need, but don't want. More...
 
 addSaveOnEnterOnLoadCode ()
 

Protected Attributes

const HAS_SPECIAL_QUESTION_COMMANDS = false
 
const SUGGESTED_SOLUTION_COMMANDS_CANCEL = 'cancelSuggestedSolution'
 
const SUGGESTED_SOLUTION_COMMANDS_SAVE = 'saveSuggestedSolution'
 
const SUGGESTED_SOLUTION_COMMANDS_DEFAULT = 'suggestedsolution'
 
const QUESTION_SAVE_CMDS
 
const ADDITIONAL_CMDS_NEEDING_EXISTING_QST
 There are functions that need an existing question. More...
 
ilLogger $logger
 
GeneralQuestionPropertiesRepository $questionrepository
 
GUIService $notes_gui
 
ilCtrl $ctrl
 
assQuestion $object
 
ilGlobalPageTemplate $tpl
 
ilLanguage $lng
 
Refinery $refinery
 
 $error
 
string $errormessage
 
int $sequence_no
 sequence number in test More...
 
int $question_count
 question count in test More...
 
ilPropertyFormGUI $editForm = null
 
readonly ilTestLegacyFormsHelper $forms_helper
 
readonly RequestDataCollector $request_data_collector
 
bool $parent_type_is_lm = false
 
SuggestedSolutionsDatabaseRepository $suggestedsolution_repo = null
 

Private Attributes

const CMD_SAVE = 'save'
 
const CMD_SAVE_AND_RETURN = 'saveReturn'
 
const CMD_SYNC_QUESTION = 'syncQuestion'
 
 $ui
 
ilObjectDataCache $ilObjDataCache
 
ilHelpGUI $ilHelp
 
ilAccessHandler $access
 
ilTabsGUI $tabs_gui
 
ilRbacSystem $rbacsystem
 
ilTree $tree
 
ilDBInterface $db
 
ilComponentRepository $component_repository
 
ilAssQuestionPreviewSession $preview_session = null
 
 $taxonomyIds = []
 
 $targetGuiClass = null
 
string $questionActionCmd = 'handleQuestionAction'
 
ilQuestionHeaderBlockBuilder $questionHeaderBlockBuilder
 
ilTestQuestionNavigationGUI $navigationGUI = null
 
string $presentationContext = null
 
string $renderPurpose = self::RENDER_PURPOSE_PLAYBACK
 
string $editContext = self::EDIT_CONTEXT_AUTHORING
 
bool $previousSolutionPrefilled = false
 
int $copy_to_existing_pool_on_save = null
 
string $copy_to_new_pool_on_save = null
 
int $move_after_question_with_id = null
 
bool $context_allows_sync_to_pool = false
 
string $question_sync_modal = ''
 

Detailed Description

Member Function Documentation

◆ _getQuestionGUI()

static assQuestionGUI::_getQuestionGUI ( string  $question_type = '',
int  $question_id = -1 
)
static

Creates a question gui representation and returns the alias to the question gui.

Definition at line 570 of file class.assQuestionGUI.php.

References $DIC, $ilDB, and assQuestion\getFeedbackClassNameByQuestionType().

Referenced by ilObjQuestionPoolGUI\addLocatorItems(), ilObjQuestionPoolGUI\cleanupAfterImport(), ilObjTestGUI\createQuestionPool(), ilPCQuestionGUI\edit(), ilQuestionEditGUI\executeCommand(), ilObjTestGUI\executeCommand(), ilPageObjectGUI\executeCommand(), ilQuestionExporter\exportQuestion(), ilAssQuestionPageCommandForwarder\forward(), ilObjTestGUI\forwardCommandToQuestion(), ilPCQuestion\getJavascriptFiles(), ilPCQuestion\modifyPageContentPostXsl(), ilAssQuestionSkillAssignmentsGUI\saveSkillQuestionAssignmentPropertiesFormCmd(), ilObjQuestionPoolGUI\setTitleAndDescription(), and ilAssQuestionSkillAssignmentsGUI\showSkillQuestionAssignmentPropertiesFormCmd().

570  : ?assQuestionGUI
571  {
572  global $DIC;
573  $ilCtrl = $DIC['ilCtrl'];
574  $ilDB = $DIC['ilDB'];
575  $lng = $DIC['lng'];
576 
577  if (($question_type === '') && ($question_id > 0)) {
578  $question_type = QuestionPoolDIC::dic()['question.general_properties.repository']
579  ->getForQuestionId($question_id)?->getClassName();
580  }
581 
582  if ($question_type === null || $question_type === '') {
583  return null;
584  }
585 
586  $question_type_gui = $question_type . 'GUI';
587  $question = new $question_type_gui();
588 
589  $feedbackObjectClassname = assQuestion::getFeedbackClassNameByQuestionType($question_type);
590  $question->object->feedbackOBJ = new $feedbackObjectClassname($question->object, $ilCtrl, $ilDB, $lng);
591 
592  if ($question_id > 0) {
593  $question->object->loadFromDb($question_id);
594  }
595 
596  return $question;
597  }
global $DIC
Definition: shib_login.php:25
static getFeedbackClassNameByQuestionType(string $questionType)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addBackTab()

assQuestionGUI::addBackTab ( ilTabsGUI  $tabs_gui)
protected

Definition at line 1733 of file class.assQuestionGUI.php.

References ilObject\_lookupType(), ilAssQuestionPreviewGUI\CMD_SHOW, ILIAS\Repository\ctrl(), ilObjectFactory\getClassByType(), ILIAS\Repository\lng(), ILIAS\Repository\object(), and ilTabsGUI\setBackTarget().

Referenced by setQuestionTabs().

1733  : void
1734  {
1735  if ($this->object->getId() <= 0) {
1736  $tabs_gui->setBackTarget(
1737  $this->lng->txt('cancel'),
1738  $this->ctrl->getParentReturnByClass(
1740  ilObject::_lookupType($this->object->getObjId())
1741  ) . 'GUI'
1742  )
1743  );
1744  return;
1745  }
1746  $this->ctrl->setParameterByClass(
1747  ilAssQuestionPreviewGUI::class,
1748  'q_id',
1749  $this->object->getId()
1750  );
1751  $this->ctrl->saveParameterByClass(ilAssQuestionPreviewGUI::class, 'prev_qid');
1752  $tabs_gui->setBackTarget(
1753  $this->lng->txt('backtocallingpage'),
1754  $this->ctrl->getLinkTargetByClass(
1755  ilAssQuestionPreviewGUI::class,
1757  )
1758  );
1759  $this->ctrl->clearParameterByClass(ilAssQuestionPreviewGUI::class, 'prev_qid');
1760  }
setBackTarget(string $a_title, string $a_target, string $a_frame="")
static getClassByType(string $obj_type)
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addBasicQuestionFormProperties()

assQuestionGUI::addBasicQuestionFormProperties ( ilPropertyFormGUI  $form)

Definition at line 851 of file class.assQuestionGUI.php.

References $lifecycle, ilObjAdvancedEditing\_getUsedHTMLTags(), ilPropertyFormGUI\addItem(), assQuestion\ADDITIONAL_CONTENT_EDITING_MODE_IPE, addNumberOfTriesToFormIfNecessary(), getQuestionType(), ilAssSelfAssessmentQuestionFormatter\getSelfAssessmentTags(), ILIAS\Repository\lng(), ILIAS\Repository\object(), ilLegacyFormElementsUtil\prepareFormOutput(), and ilTextAreaInputGUI\setValue().

Referenced by assImagemapQuestionGUI\buildEditForm(), assKprimChoiceGUI\buildEditForm(), assLongMenuGUI\buildEditForm(), assOrderingQuestionGUI\buildEditForm(), assTextQuestionGUI\editQuestion(), assOrderingHorizontalGUI\editQuestion(), assNumericGUI\editQuestion(), assTextSubsetGUI\editQuestion(), assFileUploadGUI\editQuestion(), assSingleChoiceGUI\editQuestion(), assErrorTextGUI\editQuestion(), assMatchingQuestionGUI\editQuestion(), assClozeTestGUI\editQuestion(), and assFormulaQuestionGUI\resetSavedPreviewSession().

851  : void
852  {
853  $title = new ilTextInputGUI($this->lng->txt('title'), 'title');
854  $title->setMaxLength(100);
855  $title->setValue($this->object->getTitle());
856  $title->setRequired(true);
857  $form->addItem($title);
858 
859  if (!$this->object->getSelfAssessmentEditingMode()) {
860  // author
861  $author = new ilTextInputGUI($this->lng->txt('author'), 'author');
862  $author->setValue($this->object->getAuthor());
863  $author->setMaxLength(512);
864  $author->setRequired(true);
865  $form->addItem($author);
866 
867  // description
868  $description = new ilTextInputGUI($this->lng->txt('description'), 'comment');
869  $description->setValue($this->object->getComment());
870  $description->setRequired(false);
871  $description->setMaxLength(1000);
872  $form->addItem($description);
873  } else {
874  // author as hidden field
875  $hi = new ilHiddenInputGUI('author');
876  $author = ilLegacyFormElementsUtil::prepareFormOutput($this->object->getAuthor());
877  if (trim($author) == "") {
878  $author = "-";
879  }
880  $hi->setValue($author);
881  $form->addItem($hi);
882  }
883 
884  // lifecycle
885  $lifecycle = new ilSelectInputGUI($this->lng->txt('qst_lifecycle'), 'lifecycle');
886  $lifecycle->setOptions($this->object->getLifecycle()->getSelectOptions($this->lng));
887  $lifecycle->setValue($this->object->getLifecycle()->getIdentifier());
888  $form->addItem($lifecycle);
889 
890  // questiontext
891  $question = new ilTextAreaInputGUI($this->lng->txt('question'), 'question');
892  $question->setValue($this->object->getQuestion());
893  $question->setRequired(true);
894  $question->setRows(10);
895  $question->setCols(80);
896 
897  if (!$this->object->getSelfAssessmentEditingMode()) {
898  if ($this->object->getAdditionalContentEditingMode() !== assQuestion::ADDITIONAL_CONTENT_EDITING_MODE_IPE) {
899  $question->setUseRte(true);
900  $question->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags('assessment'));
901  $question->setRTESupport($this->object->getId(), 'qpl', 'assessment');
902  }
903  } else {
905  $question->setUseTagsForRteOnly(false);
906  }
907  $form->addItem($question);
908 
909  $question_type = new ilHiddenInputGUI('question_type');
910  $question_type->setValue((string) $this->getQuestionType());
911  $form->addItem($question_type);
912 
913  if ($this->copy_to_existing_pool_on_save !== null) {
914  $pool_ref = new ilHiddenInputGUI('pool_ref');
915  $pool_ref->setValue((string) $this->copy_to_existing_pool_on_save);
916  $form->addItem($pool_ref);
917  }
918 
919  if ($this->copy_to_new_pool_on_save !== null) {
920  $pool_title = new ilHiddenInputGUI('pool_title');
921  $pool_title->setValue($this->copy_to_new_pool_on_save);
922  $form->addItem($pool_title);
923  }
924 
925  if ($this->move_after_question_with_id !== null) {
926  $move_after_question_id = new ilHiddenInputGUI('move_after_question_with_id');
927  $move_after_question_id->setValue((string) $this->move_after_question_with_id);
928  $form->addItem($move_after_question_id);
929  }
930 
931  $additional_content_editing_mode = new ilHiddenInputGUI('additional_content_editing_mode');
932  $additional_content_editing_mode->setValue($this->object->getAdditionalContentEditingMode());
933  $form->addItem($additional_content_editing_mode);
934 
935  $this->addNumberOfTriesToFormIfNecessary($form);
936  }
const ADDITIONAL_CONTENT_EDITING_MODE_IPE
static getSelfAssessmentTags()
Get tags allowed in question tags in self assessment mode.
This class represents a selection list property in a property form.
static prepareFormOutput($a_str, bool $a_strip=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$lifecycle
This class represents a text area property in a property form.
addNumberOfTriesToFormIfNecessary(ilPropertyFormGUI $form)
static _getUsedHTMLTags(string $a_module="")
Returns an array of all allowed HTML tags for text editing.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addErrorMessage()

assQuestionGUI::addErrorMessage ( string  $errormessage)

Definition at line 824 of file class.assQuestionGUI.php.

References $errormessage.

Referenced by assFormulaQuestionGUI\checkInput(), and assFormulaQuestionGUI\writePostData().

824  : void
825  {
826  $this->errormessage .= ((strlen($this->errormessage)) ? "<br />" : "") . $errormessage;
827  }
+ Here is the caller graph for this function:

◆ addGIT()

assQuestionGUI::addGIT ( )

Definition at line 1503 of file class.assQuestionGUI.php.

References createSuggestedSolutionLinkingTo(), ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

1503  : void
1504  {
1505  $target = "il__git_" . $this->request_data_collector->raw("git");
1506  $this->createSuggestedSolutionLinkingTo('git', $target);
1507  $this->tpl->setOnScreenMessage('success', $this->lng->txt("suggested_solution_added_successfully"), true);
1508  $this->ctrl->redirect($this, 'suggestedsolution');
1509  }
createSuggestedSolutionLinkingTo(string $type, string $target)
+ Here is the call graph for this function:

◆ addHeaderAction()

assQuestionGUI::addHeaderAction ( )

Definition at line 296 of file class.assQuestionGUI.php.

296  : void
297  {
298  }

◆ addNumberOfTriesToFormIfNecessary()

assQuestionGUI::addNumberOfTriesToFormIfNecessary ( ilPropertyFormGUI  $form)
protected

Definition at line 938 of file class.assQuestionGUI.php.

References ilPropertyFormGUI\addItem(), ILIAS\Repository\lng(), and ILIAS\Repository\object().

Referenced by addBasicQuestionFormProperties().

939  {
940  if (!$this->object->getSelfAssessmentEditingMode()) {
941  return;
942  }
943 
944  $nr_tries = $this->object->getNrOfTries() ?? $this->object->getDefaultNrOfTries();
945 
946  if ($nr_tries < 1) {
947  $nr_tries = "";
948  }
949 
950  $ni = new ilNumberInputGUI($this->lng->txt("qst_nr_of_tries"), "nr_of_tries");
951  $ni->setValue((string) $nr_tries);
952  $ni->setMinValue(0);
953  $ni->setSize(5);
954  $ni->setMaxLength(5);
955  $form->addItem($ni);
956  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addPG()

assQuestionGUI::addPG ( )

Definition at line 1487 of file class.assQuestionGUI.php.

References createSuggestedSolutionLinkingTo(), ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

1487  : void
1488  {
1489  $target = "il__pg_" . $this->request_data_collector->raw("pg");
1490  $this->createSuggestedSolutionLinkingTo('pg', $target);
1491  $this->tpl->setOnScreenMessage('success', $this->lng->txt("suggested_solution_added_successfully"), true);
1492  $this->ctrl->redirect($this, 'suggestedsolution');
1493  }
createSuggestedSolutionLinkingTo(string $type, string $target)
+ Here is the call graph for this function:

◆ addQuestionFormCommandButtons()

assQuestionGUI::addQuestionFormCommandButtons ( ilPropertyFormGUI  $form)

◆ addSaveOnEnterOnLoadCode()

assQuestionGUI::addSaveOnEnterOnLoadCode ( )
protected

Definition at line 1976 of file class.assQuestionGUI.php.

Referenced by assFormulaQuestionGUI\parseQuestion(), and renderEditForm().

1976  : void
1977  {
1978  $this->tpl->addOnloadCode("
1979  let form = document.querySelector('#ilContentContainer form');
1980  let button = form.querySelector('input[name=\"cmd[save]\"]');
1981  if (form && button) {
1982  form.addEventListener('keydown', function (e) {
1983  if (e.key === 'Enter'
1984  && e.target.type !== 'textarea'
1985  && e.target.type !== 'submit'
1986  && e.target.type !== 'file'
1987  ) {
1988  e.preventDefault();
1989  form.requestSubmit(button);
1990  }
1991  })
1992  }
1993  ");
1994  }
+ Here is the caller graph for this function:

◆ addST()

assQuestionGUI::addST ( )

Definition at line 1495 of file class.assQuestionGUI.php.

References createSuggestedSolutionLinkingTo(), ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

1495  : void
1496  {
1497  $target = "il__st_" . $this->request_data_collector->raw("st");
1498  $this->createSuggestedSolutionLinkingTo('st', $target);
1499  $this->tpl->setOnScreenMessage('success', $this->lng->txt("suggested_solution_added_successfully"), true);
1500  $this->ctrl->redirect($this, 'suggestedsolution');
1501  }
createSuggestedSolutionLinkingTo(string $type, string $target)
+ Here is the call graph for this function:

◆ addTab_Question()

assQuestionGUI::addTab_Question ( ilTabsGUI  $tabs_gui)
protected

Definition at line 1633 of file class.assQuestionGUI.php.

References ilTabsGUI\addTarget(), and ILIAS\Repository\ctrl().

Referenced by setDefaultTabs().

1633  : void
1634  {
1635  $tabs_gui->addTarget(
1636  'edit_question',
1637  $this->ctrl->getLinkTargetByClass(
1638  static::class,
1639  'editQuestion'
1640  ),
1641  'editQuestion',
1642  '',
1643  '',
1644  false
1645  );
1646  }
addTarget(string $a_text, string $a_link, $a_cmd="", $a_cmdClass="", string $a_frame="", bool $a_activate=false, bool $a_dir_text=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addTab_QuestionFeedback()

assQuestionGUI::addTab_QuestionFeedback ( ilTabsGUI  $tabs)
protected

Definition at line 1598 of file class.assQuestionGUI.php.

References ilTabsGUI\addTarget(), ilAssQuestionFeedbackEditingGUI\CMD_SHOW, ILIAS\Repository\ctrl(), and ILIAS\Repository\object().

Referenced by setDefaultTabs().

1598  : void
1599  {
1600  $tabCommands = self::getCommandsFromClassConstants(ilAssQuestionFeedbackEditingGUI::class);
1601 
1602  $this->ctrl->setParameterByClass(ilAssQuestionFeedbackEditingGUI::class, 'q_id', $this->object->getId());
1603  $tabLink = $this->ctrl->getLinkTargetByClass(ilAssQuestionFeedbackEditingGUI::class, ilAssQuestionFeedbackEditingGUI::CMD_SHOW);
1604 
1605  $tabs->addTarget('feedback', $tabLink, $tabCommands, $this->ctrl->getCmdClass(), '');
1606  }
addTarget(string $a_text, string $a_link, $a_cmd="", $a_cmdClass="", string $a_frame="", bool $a_activate=false, bool $a_dir_text=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addTab_QuestionHints()

assQuestionGUI::addTab_QuestionHints ( ilTabsGUI  $tabs)
protected

Definition at line 1608 of file class.assQuestionGUI.php.

References ilTabsGUI\addTarget(), ilAssQuestionHintsGUI\CMD_SHOW_LIST, ILIAS\Repository\ctrl(), and ILIAS\Repository\object().

Referenced by setDefaultTabs().

1608  : void
1609  {
1610  switch (strtolower($this->ctrl->getCmdClass())) {
1611  case 'ilassquestionhintsgui':
1612  $tab_commands = self::getCommandsFromClassConstants(ilAssQuestionHintsGUI::class);
1613  break;
1614 
1615  case 'ilassquestionhintgui':
1616  $tab_commands = self::getCommandsFromClassConstants(ilAssQuestionHintGUI::class);
1617  break;
1618 
1619  default:
1620  $tab_commands = [];
1621  }
1622 
1623  $this->ctrl->setParameterByClass(ilAssQuestionHintsGUI::class, 'q_id', $this->object->getId());
1624  $tabs->addTarget(
1625  'tst_question_hints_tab',
1626  $this->ctrl->getLinkTargetByClass(ilAssQuestionHintsGUI::class, ilAssQuestionHintsGUI::CMD_SHOW_LIST),
1627  $tab_commands,
1628  $this->ctrl->getCmdClass(),
1629  ''
1630  );
1631  }
addTarget(string $a_text, string $a_link, $a_cmd="", $a_cmdClass="", string $a_frame="", bool $a_activate=false, bool $a_dir_text=false)
const CMD_SHOW_LIST
command constants
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addTab_SuggestedSolution()

assQuestionGUI::addTab_SuggestedSolution ( ilTabsGUI  $tabs,
string  $classname 
)

Definition at line 1564 of file class.assQuestionGUI.php.

References ilTabsGUI\addTarget(), ILIAS\Repository\ctrl(), and ILIAS\Repository\object().

Referenced by setDefaultTabs().

1564  : void
1565  {
1566  $this->ctrl->setParameterByClass($classname, 'q_id', $this->object->getId());
1567  $tabs->addTarget(
1568  'suggested_solution',
1569  $this->ctrl->getLinkTargetByClass($classname, 'suggestedsolution'),
1570  [
1571  'suggestedsolution',
1572  'saveSuggestedSolution',
1573  'outSolutionExplorer',
1574  'cancel',
1575  'addSuggestedSolution',
1576  'cancelExplorer' ,
1577  'linkChilds',
1578  'removeSuggestedSolution'
1579  ]
1580  );
1581  }
addTarget(string $a_text, string $a_link, $a_cmd="", $a_cmdClass="", string $a_frame="", bool $a_activate=false, bool $a_dir_text=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ assessment()

assQuestionGUI::assessment ( )

Definition at line 556 of file class.assQuestionGUI.php.

556  : void
557  {
558  $stats_table = new ilQuestionCumulatedStatisticsTableGUI($this, 'assessment', '', $this->object, $this->questionrepository);
559  $usage_table = new ilQuestionUsagesTableGUI($this, 'assessment', '', $this->object);
560 
561  $this->tpl->setContent(implode('<br />', [
562  $stats_table->getHTML(),
563  $usage_table->getHTML()
564  ]));
565  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ buildBasicEditFormObject()

assQuestionGUI::buildBasicEditFormObject ( )
protected

Definition at line 1775 of file class.assQuestionGUI.php.

References ILIAS\Repository\ctrl(), getType(), and outQuestionType().

Referenced by assImagemapQuestionGUI\buildEditForm(), assKprimChoiceGUI\buildEditForm(), and assLongMenuGUI\buildEditForm().

1776  {
1777  $form = new ilPropertyFormGUI();
1778  $form->setFormAction($this->ctrl->getFormAction($this));
1779  $form->setId($this->getType());
1780  $form->setTitle($this->outQuestionType());
1781  $form->setTableWidth('100%');
1782  $form->setMultipart(true);
1783  return $form;
1784  }
getType()
needed for page editor compliance
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildEditForm()

assQuestionGUI::buildEditForm ( )
protected

Definition at line 1796 of file class.assQuestionGUI.php.

References $editForm, and editQuestion().

Referenced by assMultipleChoiceGUI\editQuestion(), executeCommand(), and assMultipleChoiceGUI\writePostData().

1797  {
1798  $this->editQuestion(true); // TODO bheyser: editQuestion should be added to the abstract base class with a unified signature
1799  return $this->editForm;
1800  }
ilPropertyFormGUI $editForm
editQuestion(bool $checkonly=false, ?bool $is_save_cmd=null)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildFocusAnchorHtml()

assQuestionGUI::buildFocusAnchorHtml ( )

Definition at line 1802 of file class.assQuestionGUI.php.

Referenced by assSingleChoiceGUI\getPreview(), assMultipleChoiceGUI\getPreview(), assKprimChoiceGUI\getPreview(), assSingleChoiceGUI\renderSolutionOutput(), assMultipleChoiceGUI\renderSolutionOutput(), and assKprimChoiceGUI\renderSolutionOutput().

1802  : string
1803  {
1804  return '<div id="focus"></div>';
1805  }
+ Here is the caller graph for this function:

◆ cancelExplorer()

assQuestionGUI::cancelExplorer ( )

Definition at line 1336 of file class.assQuestionGUI.php.

References ILIAS\Repository\ctrl().

1336  : void
1337  {
1338  $this->ctrl->redirect($this, 'suggestedsolution');
1339  }
+ Here is the call graph for this function:

◆ cancelSuggestedSolution()

assQuestionGUI::cancelSuggestedSolution ( )

Definition at line 1079 of file class.assQuestionGUI.php.

References suggestedsolution().

1079  : void
1080  {
1081  $this->suggestedsolution();
1082  }
suggestedsolution(bool $save=false)
+ Here is the call graph for this function:

◆ cleanupAnswerText()

assQuestionGUI::cleanupAnswerText ( array  $answer_text,
bool  $is_rte 
)
protected

sk - 12.05.2023: This is one more of those that we need, but don't want.

Deprecated:

Definition at line 1946 of file class.assQuestionGUI.php.

References ilObjAdvancedEditing\_getUsedHTMLTagsAsString(), and ilArrayUtil\stripSlashesRecursive().

Referenced by assSingleChoiceGUI\writeAnswerSpecificPostData(), and assMultipleChoiceGUI\writeAnswerSpecificPostData().

1946  : array
1947  {
1948  if (!is_array($answer_text)) {
1949  return [];
1950  }
1951 
1952  if ($is_rte) {
1954  $answer_text,
1955  false,
1957  );
1958  }
1959 
1961  $answer_text,
1962  true,
1963  self::ALLOWED_PLAIN_TEXT_TAGS
1964  );
1965  }
static stripSlashesRecursive($a_data, bool $a_strip_html=true, string $a_allow="")
static _getUsedHTMLTagsAsString(string $a_module="")
Returns a string of all allowed HTML tags for text editing.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cmdNeedsExistingQuestion()

assQuestionGUI::cmdNeedsExistingQuestion ( string  $cmd)

Definition at line 1996 of file class.assQuestionGUI.php.

1996  : bool
1997  {
1998  return in_array($cmd, static::ADDITIONAL_CMDS_NEEDING_EXISTING_QST);
1999  }

◆ completeTestOutputFormAction()

assQuestionGUI::completeTestOutputFormAction ( string  $form_action,
int  $active_id,
int  $pass 
)
protected

Definition at line 1715 of file class.assQuestionGUI.php.

Referenced by outQuestionForTest().

1719  : string {
1720  return $form_action;
1721  }
+ Here is the caller graph for this function:

◆ createSuggestedSolutionLinkingTo()

assQuestionGUI::createSuggestedSolutionLinkingTo ( string  $type,
string  $target 
)
protected

Definition at line 1451 of file class.assQuestionGUI.php.

References getSuggestedSolutionsRepo().

Referenced by addGIT(), addPG(), addST(), and linkChilds().

1452  {
1453  $repo = $this->getSuggestedSolutionsRepo();
1454  $question_id = $this->object->getId();
1455  $subquestion_index = $this->request_data_collector->int('subquestion_index');
1456  $subquestion_index = ($subquestion_index > 0) ? $subquestion_index : 0;
1457 
1458  $solution = $repo->create($question_id, $type)
1459  ->withSubquestionIndex($subquestion_index)
1460  ->withInternalLink($target);
1461 
1462  $repo->update([$solution]);
1463  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ editQuestion()

assQuestionGUI::editQuestion ( bool  $checkonly = false,
?bool  $is_save_cmd = null 
)
abstract

◆ escapeTemplatePlaceholders()

assQuestionGUI::escapeTemplatePlaceholders ( string  $text)
protected

Definition at line 1791 of file class.assQuestionGUI.php.

Referenced by assTextSubsetGUI\getPreview(), assTextSubsetGUI\getTestOutput(), assClozeTestGUI\populateJSON(), and assTextSubsetGUI\renderSolutionOutput().

1791  : string
1792  {
1793  return str_replace(['{','}'], ['&#123;','&#125;'], $text);
1794  }
$text
Definition: xapiexit.php:21
+ Here is the caller graph for this function:

◆ executeCommand()

assQuestionGUI::executeCommand ( )

Definition at line 332 of file class.assQuestionGUI.php.

References buildEditForm(), ILIAS\Repository\ctrl(), and ilUtil\stripSlashes().

333  {
334  $this->ilHelp->setScreenIdComponent('qpl');
335 
336  $next_class = $this->ctrl->getNextClass($this);
337 
338  switch ($next_class) {
339  case 'ilformpropertydispatchgui':
340  $form = $this->buildEditForm();
341  $form_prop_dispatch = new ilFormPropertyDispatchGUI();
342  $form_prop_dispatch->setItem($form->getItemByPostVar(ilUtil::stripSlashes($this->request_data_collector->string('postvar'))));
343  $this->ctrl->forwardCommand($form_prop_dispatch);
344  break;
345  default:
346  $cmd = $this->ctrl->getCmd('editQuestion');
347  switch ($cmd) {
348  case self::SUGGESTED_SOLUTION_COMMANDS_CANCEL:
349  case self::SUGGESTED_SOLUTION_COMMANDS_SAVE:
350  case self::SUGGESTED_SOLUTION_COMMANDS_DEFAULT:
351  case 'saveSuggestedSolutionType':
352  case 'saveContentsSuggestedSolution':
353  case 'deleteSuggestedSolution':
354  case 'linkChilds':
355  case 'cancelExplorer':
356  case 'outSolutionExplorer':
357  case 'addST':
358  case 'addPG':
359  case 'addGIT':
360  case 'save':
361  case 'saveReturn':
362  case self::CMD_SYNC_QUESTION:
363  case self::CMD_SYNC_QUESTION_AND_RETURN:
364  case 'editQuestion':
365  $this->$cmd();
366  break;
367  default:
368  if (method_exists($this, $cmd)) {
369  $this->$cmd();
370  }
371  }
372  }
373  }
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:

◆ generateCorrectnessIconsForCorrectness()

assQuestionGUI::generateCorrectnessIconsForCorrectness ( int  $correctness)
protected

Definition at line 1844 of file class.assQuestionGUI.php.

References $path, ilUtil\getImagePath(), ILIAS\Repository\lng(), and ILIAS\Repository\ui().

Referenced by assLongMenuGUI\getSelectGapTemplate(), assFileUploadGUI\getSolutionOutput(), assImagemapQuestionGUI\getSolutionOutput(), assLongMenuGUI\getTextGapTemplate(), assOrderingHorizontalGUI\renderSolutionOutput(), assTextQuestionGUI\renderSolutionOutput(), assTextSubsetGUI\renderSolutionOutput(), assNumericGUI\renderSolutionOutput(), assSingleChoiceGUI\renderSolutionOutput(), assMultipleChoiceGUI\renderSolutionOutput(), assErrorTextGUI\renderSolutionOutput(), assMatchingQuestionGUI\renderSolutionOutput(), assKprimChoiceGUI\renderSolutionOutput(), assClozeTestGUI\renderSolutionOutput(), and assFormulaQuestionGUI\renderSolutionOutput().

1844  : string
1845  {
1846  switch ($correctness) {
1847  case self::CORRECTNESS_NOT_OK:
1848  $icon_name = 'standard/icon_not_ok.svg';
1849  $label = $this->lng->txt("answer_is_wrong");
1850  break;
1851  case self::CORRECTNESS_MOSTLY_OK:
1852  $icon_name = 'standard/icon_mostly_ok.svg';
1853  $label = $this->lng->txt("answer_is_not_correct_but_positive");
1854  break;
1855  case self::CORRECTNESS_OK:
1856  $icon_name = 'standard/icon_ok.svg';
1857  $label = $this->lng->txt("answer_is_right");
1858  break;
1859  default:
1860  return '';
1861  }
1862  $path = ilUtil::getImagePath($icon_name);
1863  $icon = $this->ui->factory()->symbol()->icon()->custom(
1864  $path,
1865  $label
1866  );
1867  return $this->ui->renderer()->render($icon);
1868  }
$path
Definition: ltiservices.php:30
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ genericFeedbackOutputBuilder()

assQuestionGUI::genericFeedbackOutputBuilder ( int  $active_id,
?int  $pass 
)
protected

Definition at line 1016 of file class.assQuestionGUI.php.

References ILIAS\Repository\object().

Referenced by getGenericFeedbackOutput(), and assClozeTestGUI\getGenericFeedbackOutput().

1019  : string {
1020  if ($pass === null) {
1021  return '';
1022  }
1023  $reached_points = $this->object->calculateReachedPoints($active_id, $pass);
1024  $max_points = $this->object->getMaximumPoints();
1025 
1026  $is_correct = false;
1027  if ($reached_points == $max_points) {
1028  $is_correct = true;
1029  }
1030 
1031  return $this->object->feedbackOBJ->getGenericFeedbackTestPresentation(
1032  $this->object->getId(),
1033  $is_correct
1034  );
1035  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAdditionalEditQuestionCommands()

assQuestionGUI::getAdditionalEditQuestionCommands ( )
protected

Definition at line 1593 of file class.assQuestionGUI.php.

Referenced by getEditQuestionTabCommands().

1593  : array
1594  {
1595  return [];
1596  }
+ Here is the caller graph for this function:

◆ getAnswerFrequencyTableGUI()

assQuestionGUI::getAnswerFrequencyTableGUI (   $parentGui,
  $parentCmd,
  $relevantAnswers,
  $questionIndex 
)

Definition at line 1822 of file class.assQuestionGUI.php.

References getAnswersFrequency().

1823  {
1824  $table = new ilAnswerFrequencyStatisticTableGUI($parentGui, $parentCmd, $this->object);
1825  $table->setQuestionIndex($questionIndex);
1826  $table->setData($this->getAnswersFrequency($relevantAnswers, $questionIndex));
1827  $table->initColumns();
1828  return $table;
1829  }
getAnswersFrequency($relevantAnswers, $questionIndex)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:

◆ getAnswersFrequency()

assQuestionGUI::getAnswersFrequency (   $relevantAnswers,
  $questionIndex 
)

Definition at line 1817 of file class.assQuestionGUI.php.

Referenced by getAnswerFrequencyTableGUI().

1817  : array
1818  {
1819  return [];
1820  }
+ Here is the caller graph for this function:

◆ getAsValueAttribute()

assQuestionGUI::getAsValueAttribute ( string  $a_value)

Definition at line 834 of file class.assQuestionGUI.php.

834  : string
835  {
836  $result = "";
837  if (strlen($a_value)) {
838  $result = " value=\"$a_value\" ";
839  }
840  return $result;
841  }

◆ getAutoSavedSolutionOutput()

assQuestionGUI::getAutoSavedSolutionOutput ( int  $active_id,
int  $pass,
bool  $graphical_output = false,
bool  $result_output = false,
bool  $show_question_only = true,
bool  $show_feedback = false,
bool  $show_correct_solution = false,
bool  $show_manual_scoring = false,
bool  $show_question_text = true,
bool  $show_autosave_title = false,
bool  $show_inline_feedback = false 
)

Definition at line 2032 of file class.assQuestionGUI.php.

References renderSolutionOutput().

Referenced by ILIAS\Test\Scoring\Manual\TestScoringByQuestionGUI\buildAutosavedSolutionPanel().

2044  : ?string {
2045  $autosave_solutions = $this->object->getSolutionValues($active_id, $pass, false);
2046  if ($autosave_solutions === []) {
2047  return null;
2048  }
2049  return $this->renderSolutionOutput(
2050  $autosave_solutions,
2051  $active_id,
2052  $pass,
2053  $graphical_output,
2054  $result_output,
2055  $show_question_only,
2056  $show_feedback,
2057  $show_correct_solution,
2058  $show_manual_scoring,
2059  $show_question_text,
2060  $show_autosave_title,
2061  $show_inline_feedback
2062  );
2063  }
renderSolutionOutput(mixed $user_solutions, int $active_id, ?int $pass, bool $graphical_output=false, bool $result_output=false, bool $show_question_only=true, bool $show_feedback=false, bool $show_correct_solution=false, bool $show_manual_scoring=false, bool $show_question_text=true, bool $show_autosave_title=false, bool $show_inline_feedback=false,)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getBasicEditQuestionTabCommands()

assQuestionGUI::getBasicEditQuestionTabCommands ( )
protected

Definition at line 1588 of file class.assQuestionGUI.php.

Referenced by getEditQuestionTabCommands().

1588  : array
1589  {
1590  return ['editQuestion', 'save', 'originalSyncForm'];
1591  }
+ Here is the caller graph for this function:

◆ getCommandsFromClassConstants()

static assQuestionGUI::getCommandsFromClassConstants ( string  $guiClassName,
string  $cmdConstantNameBegin = 'CMD_' 
)
static

Definition at line 1516 of file class.assQuestionGUI.php.

Referenced by ilPCQuestionGUI\setTabs().

1519  : array {
1520  $reflectionClass = new ReflectionClass($guiClassName);
1521 
1522  $commands = null;
1523 
1524  if ($reflectionClass instanceof ReflectionClass) {
1525  $commands = [];
1526 
1527  foreach ($reflectionClass->getConstants() as $constName => $constValue) {
1528  if (substr($constName, 0, strlen($cmdConstantNameBegin)) == $cmdConstantNameBegin) {
1529  $commands[] = $constValue;
1530  }
1531  }
1532  }
1533 
1534  return $commands;
1535  }
+ Here is the caller graph for this function:

◆ getCommentsPanelHTML()

assQuestionGUI::getCommentsPanelHTML ( )

Definition at line 326 of file class.assQuestionGUI.php.

References ilCommentGUI\getListHTML(), and ILIAS\Repository\object().

326  : string
327  {
328  $comment_gui = new ilCommentGUI($this->object->getObjId(), $this->object->getId(), 'quest');
329  return $comment_gui->getListHTML();
330  }
getListHTML(bool $a_init_form=true)
Comment GUI.
+ Here is the call graph for this function:

◆ getContextPath()

assQuestionGUI::getContextPath (   $cont_obj,
int  $a_endnode_id,
int  $a_startnode_id = 1 
)

get context path in content object tree

Definition at line 776 of file class.assQuestionGUI.php.

References $path.

Referenced by outPageSelector().

776  : string
777  {
778  $path = "";
779 
780  $tmpPath = $cont_obj->getLMTree()->getPathFull($a_endnode_id, $a_startnode_id);
781 
782  // count -1, to exclude the learning module itself
783  for ($i = 1; $i < (count($tmpPath) - 1); $i++) {
784  if ($path != "") {
785  $path .= " > ";
786  }
787 
788  $path .= $tmpPath[$i]["title"];
789  }
790 
791  return $path;
792  }
$path
Definition: ltiservices.php:30
+ Here is the caller graph for this function:

◆ getCopyToExistingPoolOnSave()

assQuestionGUI::getCopyToExistingPoolOnSave ( )

Definition at line 266 of file class.assQuestionGUI.php.

References $copy_to_existing_pool_on_save.

Referenced by ilObjTestGUI\executeAfterQuestionCreationTasks().

266  : ?int
267  {
269  }
+ Here is the caller graph for this function:

◆ getCopyToNewPoolOnSave()

assQuestionGUI::getCopyToNewPoolOnSave ( )

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

References $copy_to_new_pool_on_save.

Referenced by ilObjTestGUI\executeAfterQuestionCreationTasks().

276  : ?string
277  {
279  }
+ Here is the caller graph for this function:

◆ getEditContext()

assQuestionGUI::getEditContext ( )

Definition at line 461 of file class.assQuestionGUI.php.

References $editContext.

Referenced by isAdjustmentEditContext(), and isAuthoringEditContext().

461  : string
462  {
463  return $this->editContext;
464  }
+ Here is the caller graph for this function:

◆ getEditQuestionTabCommands()

assQuestionGUI::getEditQuestionTabCommands ( )
final

Definition at line 1583 of file class.assQuestionGUI.php.

References getAdditionalEditQuestionCommands(), and getBasicEditQuestionTabCommands().

1583  : array
1584  {
1585  return array_merge($this->getBasicEditQuestionTabCommands(), $this->getAdditionalEditQuestionCommands());
1586  }
+ Here is the call graph for this function:

◆ getErrorMessage()

assQuestionGUI::getErrorMessage ( )

Definition at line 814 of file class.assQuestionGUI.php.

References $errormessage.

Referenced by assTextQuestionGUI\addSuggestedSolution(), and assFormulaQuestionGUI\suggestRange().

814  : string
815  {
816  return $this->errormessage;
817  }
+ Here is the caller graph for this function:

◆ getFormEncodingType()

assQuestionGUI::getFormEncodingType ( )

Definition at line 1728 of file class.assQuestionGUI.php.

Referenced by outQuestionForTest(), and ilTestPlayerAbstractGUI\showQuestionViewable().

1728  : string
1729  {
1730  return self::FORM_ENCODING_URLENCODE;
1731  }
+ Here is the caller graph for this function:

◆ getGenericFeedbackOutput()

assQuestionGUI::getGenericFeedbackOutput ( int  $active_id,
?int  $pass 
)
Parameters
int | null$passActive pass

Definition at line 1001 of file class.assQuestionGUI.php.

References genericFeedbackOutputBuilder(), ilObjTest\getManualFeedback(), ILIAS\Repository\object(), and ilLegacyFormElementsUtil\prepareTextareaOutput().

Referenced by assTextQuestionGUI\getAutoSavedSolutionOutput(), assFileUploadGUI\getSolutionOutput(), assImagemapQuestionGUI\getSolutionOutput(), ilTestPlayerAbstractGUI\populateGenericFeedbackBlock(), assOrderingHorizontalGUI\renderSolutionOutput(), assTextQuestionGUI\renderSolutionOutput(), assTextSubsetGUI\renderSolutionOutput(), assNumericGUI\renderSolutionOutput(), assSingleChoiceGUI\renderSolutionOutput(), assMultipleChoiceGUI\renderSolutionOutput(), assErrorTextGUI\renderSolutionOutput(), assLongMenuGUI\renderSolutionOutput(), assOrderingQuestionGUI\renderSolutionOutput(), assMatchingQuestionGUI\renderSolutionOutput(), assKprimChoiceGUI\renderSolutionOutput(), and assFormulaQuestionGUI\renderSolutionOutput().

1001  : string
1002  {
1003  $manual_feedback = ilObjTest::getManualFeedback($active_id, $this->object->getId(), $pass);
1004  if ($manual_feedback !== '') {
1005  return $manual_feedback;
1006  }
1007 
1008  $output = $this->genericFeedbackOutputBuilder($active_id, $pass);
1009 
1010  if ($this->object->isAdditionalContentEditingModePageObject()) {
1011  return $output;
1012  }
1014  }
genericFeedbackOutputBuilder(int $active_id, ?int $pass)
static getManualFeedback(int $active_id, int $question_id, ?int $pass)
Retrieves the feedback comment for a question in a test if it is finalized.
static prepareTextareaOutput(string $txt_output, bool $prepare_for_latex_output=false, bool $omitNl2BrWhenTextArea=false)
Prepares a string for a text area output where latex code may be in it If the text is HTML-free...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getGenericFeedbackOutputForCorrectSolution()

assQuestionGUI::getGenericFeedbackOutputForCorrectSolution ( )

Definition at line 1037 of file class.assQuestionGUI.php.

References ILIAS\Repository\object(), and ilLegacyFormElementsUtil\prepareTextareaOutput().

1037  : string
1038  {
1040  $this->object->feedbackOBJ->getGenericFeedbackTestPresentation($this->object->getId(), true),
1041  true
1042  );
1043  }
static prepareTextareaOutput(string $txt_output, bool $prepare_for_latex_output=false, bool $omitNl2BrWhenTextArea=false)
Prepares a string for a text area output where latex code may be in it If the text is HTML-free...
+ Here is the call graph for this function:

◆ getGenericFeedbackOutputForIncorrectSolution()

assQuestionGUI::getGenericFeedbackOutputForIncorrectSolution ( )

Definition at line 1045 of file class.assQuestionGUI.php.

References ILIAS\Repository\object(), and ilLegacyFormElementsUtil\prepareTextareaOutput().

1045  : string
1046  {
1048  $this->object->feedbackOBJ->getGenericFeedbackTestPresentation($this->object->getId(), false),
1049  true
1050  );
1051  }
static prepareTextareaOutput(string $txt_output, bool $prepare_for_latex_output=false, bool $omitNl2BrWhenTextArea=false)
Prepares a string for a text area output where latex code may be in it If the text is HTML-free...
+ Here is the call graph for this function:

◆ getHeaderAction()

assQuestionGUI::getHeaderAction ( )

Definition at line 306 of file class.assQuestionGUI.php.

References ILIAS\Repository\access(), ILIAS\Repository\object(), ilCommonActionDispatcherGUI\setSubObject(), ilCommonActionDispatcherGUI\TYPE_REPOSITORY, and ILIAS\Repository\ui().

Referenced by redrawHeaderAction().

306  : string
307  {
308  $parentObjType = $this->ilObjDataCache->lookupType($this->object->getObjId());
309 
310  $dispatcher = new ilCommonActionDispatcherGUI(
312  $this->access,
313  $parentObjType,
314  $this->request_data_collector->getRefId(),
315  $this->object->getObjId()
316  );
317 
318  $dispatcher->setSubObject("quest", $this->object->getId());
319 
320  $ha = $dispatcher->initHeaderAction();
321  $ha->enableComments(true, false);
322 
323  return $ha->getHeaderAction($this->ui->mainTemplate());
324  }
setSubObject(?string $sub_obj_type, ?int $sub_obj_id)
Set sub object attributes.
Class ilCommonActionDispatcherGUI.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getILIASPage()

assQuestionGUI::getILIASPage ( string  $html = "")

Returns the ILIAS Page around a question.

Definition at line 629 of file class.assQuestionGUI.php.

References ILIAS\Repository\object(), and ilPageObjectGUI\setQuestionHTML().

Referenced by assErrorTextGUI\generateQuestionOutput(), assTextQuestionGUI\getAutoSavedSolutionOutput(), assOrderingHorizontalGUI\getPreview(), assFileUploadGUI\getPreview(), assNumericGUI\getPreview(), assTextSubsetGUI\getPreview(), assSingleChoiceGUI\getPreview(), assTextQuestionGUI\getPreview(), assLongMenuGUI\getPreview(), assMultipleChoiceGUI\getPreview(), assKprimChoiceGUI\getPreview(), assOrderingQuestionGUI\getPreview(), assImagemapQuestionGUI\getPreview(), assMatchingQuestionGUI\getPreview(), assClozeTestGUI\getPreview(), assFormulaQuestionGUI\getPreview(), assFileUploadGUI\getSolutionOutput(), assImagemapQuestionGUI\getSolutionOutput(), assFileUploadGUI\getTestOutput(), assOrderingHorizontalGUI\renderSolutionOutput(), assTextQuestionGUI\renderSolutionOutput(), assTextSubsetGUI\renderSolutionOutput(), assNumericGUI\renderSolutionOutput(), assSingleChoiceGUI\renderSolutionOutput(), assMultipleChoiceGUI\renderSolutionOutput(), assErrorTextGUI\renderSolutionOutput(), assLongMenuGUI\renderSolutionOutput(), assOrderingQuestionGUI\renderSolutionOutput(), assMatchingQuestionGUI\renderSolutionOutput(), assKprimChoiceGUI\renderSolutionOutput(), assClozeTestGUI\renderSolutionOutput(), and assFormulaQuestionGUI\renderSolutionOutput().

629  : string
630  {
631  $page_gui = new ilAssQuestionPageGUI($this->object->getId());
632  $page_gui->setQuestionHTML(
633  [$this->object->getId() => $html]
634  );
635  $presentation = $page_gui->presentation();
636  $presentation = preg_replace("/src=\"\\.\\//ims", "src=\"" . ILIAS_HTTP_PATH . "/", $presentation);
637  return $presentation;
638  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setQuestionHTML(array $question_html)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getMoveAfterQuestionId()

assQuestionGUI::getMoveAfterQuestionId ( )

Definition at line 286 of file class.assQuestionGUI.php.

References $move_after_question_with_id.

Referenced by ilObjTestGUI\executeAfterQuestionCreationTasks().

286  : ?int
287  {
289  }
+ Here is the caller graph for this function:

◆ getNavigationGUI()

assQuestionGUI::getNavigationGUI ( )

Definition at line 486 of file class.assQuestionGUI.php.

References $navigationGUI.

Referenced by outQuestionPage().

+ Here is the caller graph for this function:

◆ getObject()

assQuestionGUI::getObject ( )
Deprecated:
sk 25 FEB 2024: I introduce this to not have to have the object public, I don't think the process to access the question object through the QuestiionGUI is correct and should go asap!

Definition at line 247 of file class.assQuestionGUI.php.

References $object.

Referenced by ilAssQuestionHintAbstractGUI\__construct(), ilAssQuestionHintsGUI\__construct(), ILIAS\Test\Questions\Presentation\Printer\addQuestionResultForTestUsersToTemplate(), ilTestCorrectionsGUI\buildQuestionCorrectionForm(), ilAssQuestionSkillAssignmentsGUI\buildQuestionPage(), ILIAS\Test\Scoring\Manual\TestScoringByQuestionGUI\buildSolutionPanel(), ilObjTestGUI\copyQuestionToPool(), ilTestPlayerAbstractGUI\determineSolutionPassIndex(), ilObjTestGUI\executeAfterQuestionCreationTasks(), ilObjTestGUI\executeAfterQuestionSaveTasks(), ilTestCorrectionsGUI\getQuestionGUI(), ilAssQuestionPreviewGUI\initQuestion(), ilTestPlayerAbstractGUI\populateInstantResponseBlocks(), ilTestPlayerAbstractGUI\populateInstantResponseModal(), ilTestCorrectionsGUI\populatePageTitleAndDescription(), ilTestPlayerAbstractGUI\populateQuestionEditControl(), ilTestPlayerAbstractGUI\populateSpecificFeedbackBlock(), ilTestCorrectionsGUI\saveQuestion(), ilObjTestGUI\showNextViewAfterQuestionSave(), ilTestPlayerAbstractGUI\showQuestionEditable(), ilTestPlayerAbstractGUI\showQuestionViewable(), ilTestCorrectionsGUI\showSolution(), and ilTestCorrectionsGUI\supportsAdjustment().

247  : assQuestion
248  {
249  return $this->object;
250  }
+ Here is the caller graph for this function:

◆ getPresentationContext()

assQuestionGUI::getPresentationContext ( )

Definition at line 386 of file class.assQuestionGUI.php.

References $presentationContext.

Referenced by isTestPresentationContext().

386  : ?string
387  {
389  }
+ Here is the caller graph for this function:

◆ getPresentationJavascripts()

assQuestionGUI::getPresentationJavascripts ( )

Definition at line 606 of file class.assQuestionGUI.php.

Referenced by populateJavascriptFilesRequiredForWorkForm().

606  : array
607  {
608  return [];
609  }
+ Here is the caller graph for this function:

◆ getPreview()

assQuestionGUI::getPreview ( bool  $show_question_only = false,
bool  $show_inline_feedback = false 
)
abstract

◆ getPreviewSession()

◆ getPreviousSolutionConfirmationCheckboxHtml()

assQuestionGUI::getPreviousSolutionConfirmationCheckboxHtml ( )
protected

Definition at line 683 of file class.assQuestionGUI.php.

References ilGlobalPageTemplate\get(), ILIAS\Repository\lng(), and ilGlobalPageTemplate\setVariable().

Referenced by outQuestionPage().

683  : string
684  {
685  $tpl = new ilTemplate('tpl.tst_question_additional_behaviour_checkbox.html', true, true, 'components/ILIAS/TestQuestionPool');
686  $tpl->setVariable('TXT_FORCE_FORM_DIFF_LABEL', $this->lng->txt('use_previous_solution'));
687  return $tpl->get();
688  }
ilGlobalPageTemplate $tpl
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
setVariable(string $variable, $value='')
Sets the given variable to the given value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPreviousSolutionProvidedMessage()

assQuestionGUI::getPreviousSolutionProvidedMessage ( )
protected

Definition at line 678 of file class.assQuestionGUI.php.

References ILIAS\Repository\lng().

Referenced by outQuestionPage().

678  : string
679  {
680  return $this->lng->txt('use_previous_solution_advice');
681  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getQuestionActionCmd()

assQuestionGUI::getQuestionActionCmd ( )

◆ getQuestionCount()

assQuestionGUI::getQuestionCount ( )

Definition at line 809 of file class.assQuestionGUI.php.

References $question_count.

809  : int
810  {
811  return $this->question_count;
812  }
int $question_count
question count in test

◆ getQuestionHeaderBlockBuilder()

assQuestionGUI::getQuestionHeaderBlockBuilder ( )

Definition at line 527 of file class.assQuestionGUI.php.

References $questionHeaderBlockBuilder.

Referenced by ilTestPlayerAbstractGUI\populateInstantResponseModal(), ilTestPlayerAbstractGUI\showQuestionEditable(), and ilTestPlayerAbstractGUI\showQuestionViewable().

528  {
530  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilQuestionHeaderBlockBuilder $questionHeaderBlockBuilder
+ Here is the caller graph for this function:

◆ getQuestionSyncModal()

assQuestionGUI::getQuestionSyncModal ( string  $cmd,
string  $cmd_class = '' 
)

Definition at line 2012 of file class.assQuestionGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ILIAS\Repository\object(), and ILIAS\Repository\ui().

Referenced by saveQuestion().

2012  : string
2013  {
2014  if ($cmd_class === '') {
2015  $cmd_class = static::class;
2016  }
2017  $modal = $this->ui->factory()->modal()->interruptive(
2018  $this->lng->txt('confirm'),
2019  $this->lng->txt('confirm_sync_questions'),
2020  $this->ctrl->getFormActionByClass($cmd_class, $cmd)
2021  )->withAffectedItems([
2022  $this->ui->factory()->modal()->interruptiveItem()->standard(
2023  (string) $this->object->getOriginalId(),
2024  $this->object->getTitleForHTMLOutput()
2025  )
2026  ])->withActionButtonLabel($this->lng->txt('sync_question_to_pool'));
2027  return $this->ui->renderer()->render(
2028  $modal->withOnLoad($modal->getShowSignal())
2029  );
2030  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getQuestionTemplate()

assQuestionGUI::getQuestionTemplate ( )

Definition at line 611 of file class.assQuestionGUI.php.

Referenced by assTextQuestionGUI\addSuggestedSolution(), assImagemapQuestionGUI\areaEditor(), and renderEditForm().

611  : void
612  {
613  // @todo Björn: Maybe this has to be changed for PHP 7/ILIAS 5.2.x because ass[XYZ]QuestionGUI::editQuestion is called multiple times
614  if (!$this->tpl->blockExists('adm_content')) {
615  $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.il_as_question.html', 'components/ILIAS/TestQuestionPool');
616  }
617  }
+ Here is the caller graph for this function:

◆ getQuestionType()

assQuestionGUI::getQuestionType ( )

Definition at line 829 of file class.assQuestionGUI.php.

Referenced by addBasicQuestionFormProperties(), and getType().

829  : string
830  {
831  return $this->object->getQuestionType();
832  }
+ Here is the caller graph for this function:

◆ getRenderPurpose()

assQuestionGUI::getRenderPurpose ( )

Definition at line 413 of file class.assQuestionGUI.php.

References $renderPurpose.

Referenced by isRenderPurposeDemoplay(), isRenderPurposeInputValue(), isRenderPurposePlayback(), isRenderPurposePreview(), and isRenderPurposePrintPdf().

413  : string
414  {
415  return $this->renderPurpose;
416  }
+ Here is the caller graph for this function:

◆ getSequenceNumber()

assQuestionGUI::getSequenceNumber ( )

Definition at line 799 of file class.assQuestionGUI.php.

References $sequence_no.

799  : int
800  {
801  return $this->sequence_no;
802  }
int $sequence_no
sequence number in test

◆ getSolutionOutput()

assQuestionGUI::getSolutionOutput ( int  $active_id,
?int  $pass = null,
bool  $graphical_output = false,
bool  $result_output = false,
bool  $show_question_only = true,
bool  $show_feedback = false,
bool  $show_correct_solution = false,
bool  $show_manual_scoring = false,
bool  $show_question_text = true,
bool  $show_inline_feedback = true 
)
abstract

◆ getSpecificFeedbackOutput()

assQuestionGUI::getSpecificFeedbackOutput ( array  $userSolution)
abstract

Returns the answer specific feedback for the question.

Parameters
array$userSolution($userSolution[<value1>] = <value2>)

Referenced by ilTestPlayerAbstractGUI\populateSpecificFeedbackBlock().

+ Here is the caller graph for this function:

◆ getSubQuestionsIndex()

assQuestionGUI::getSubQuestionsIndex ( )

Definition at line 1812 of file class.assQuestionGUI.php.

1812  : array
1813  {
1814  return [0];
1815  }

◆ getSuggestedSolutionsRepo()

assQuestionGUI::getSuggestedSolutionsRepo ( )
protected

Definition at line 1933 of file class.assQuestionGUI.php.

References $dic, and $suggestedsolution_repo.

Referenced by createSuggestedSolutionLinkingTo(), and suggestedsolution().

1934  {
1935  if (is_null($this->suggestedsolution_repo)) {
1936  $dic = QuestionPoolDIC::dic();
1937  $this->suggestedsolution_repo = $dic['question.repo.suggestedsolutions'];
1938  }
1940  }
SuggestedSolutionsDatabaseRepository $suggestedsolution_repo
$dic
Definition: ltiresult.php:33
+ Here is the caller graph for this function:

◆ getTargetGuiClass()

assQuestionGUI::getTargetGuiClass ( )

Definition at line 516 of file class.assQuestionGUI.php.

References $targetGuiClass.

Referenced by assImagemapQuestionGUI\buildAreaLinkTarget(), assErrorTextGUI\generateQuestionOutput(), assImagemapQuestionGUI\getPreview(), and assImagemapQuestionGUI\getTestOutput().

516  : ?string
517  {
518  return $this->targetGuiClass;
519  }
+ Here is the caller graph for this function:

◆ getTaxonomyIds()

assQuestionGUI::getTaxonomyIds ( )

Definition at line 501 of file class.assQuestionGUI.php.

References $taxonomyIds.

Referenced by populateTaxonomyFormSection(), and saveTaxonomyAssignments().

501  : array
502  {
503  return $this->taxonomyIds;
504  }
+ Here is the caller graph for this function:

◆ getTestOutput()

assQuestionGUI::getTestOutput ( int  $active_id,
int  $pass,
bool  $is_question_postponed = false,
array|bool  $user_post_solutions = false,
bool  $show_specific_inline_feedback = false 
)
abstract

Referenced by outQuestionForTest().

+ Here is the caller graph for this function:

◆ getType()

assQuestionGUI::getType ( )

needed for page editor compliance

Definition at line 381 of file class.assQuestionGUI.php.

References getQuestionType().

Referenced by buildBasicEditFormObject().

381  : string
382  {
383  return $this->getQuestionType();
384  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTypeOptions()

assQuestionGUI::getTypeOptions ( )
protected

Definition at line 1066 of file class.assQuestionGUI.php.

References ILIAS\Repository\lng().

Referenced by suggestedsolution().

1066  : array
1067  {
1068  foreach (SuggestedSolution::TYPES as $k => $v) {
1069  $options[$k] = $this->lng->txt($v);
1070  }
1071  return $options;
1072  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUseUnchangedAnswerCheckboxHtml()

assQuestionGUI::getUseUnchangedAnswerCheckboxHtml ( )
protected

Definition at line 671 of file class.assQuestionGUI.php.

References ilGlobalPageTemplate\get(), ILIAS\Repository\object(), and ilGlobalPageTemplate\setVariable().

Referenced by outQuestionPage().

671  : string
672  {
673  $tpl = new ilTemplate('tpl.tst_question_additional_behaviour_checkbox.html', true, true, 'components/ILIAS/TestQuestionPool');
674  $tpl->setVariable('TXT_FORCE_FORM_DIFF_LABEL', $this->object->getTestPresentationConfig()->getUseUnchangedAnswerLabel());
675  return $tpl->get();
676  }
ilGlobalPageTemplate $tpl
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
setVariable(string $variable, $value='')
Sets the given variable to the given value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasCorrectSolution()

◆ hasInlineFeedback()

assQuestionGUI::hasInlineFeedback ( )

Definition at line 291 of file class.assQuestionGUI.php.

Referenced by ilTestPlayerAbstractGUI\populateInstantResponseBlocks().

291  : bool
292  {
293  return false;
294  }
+ Here is the caller graph for this function:

◆ hasSpecialQuestionCommands()

assQuestionGUI::hasSpecialQuestionCommands ( )
protected

Definition at line 375 of file class.assQuestionGUI.php.

375  : bool
376  {
377  return static::HAS_SPECIAL_QUESTION_COMMANDS;
378  }

◆ isAdjustmentEditContext()

assQuestionGUI::isAdjustmentEditContext ( )

Definition at line 476 of file class.assQuestionGUI.php.

References getEditContext().

476  : bool
477  {
478  return $this->getEditContext() == self::EDIT_CONTEXT_ADJUSTMENT;
479  }
+ Here is the call graph for this function:

◆ isAnswerFrequencyStatisticSupported()

assQuestionGUI::isAnswerFrequencyStatisticSupported ( )

Definition at line 1807 of file class.assQuestionGUI.php.

Referenced by ilTestCorrectionsGUI\setCorrectionTabsContext().

1807  : bool
1808  {
1809  return true;
1810  }
+ Here is the caller graph for this function:

◆ isAuthoringEditContext()

assQuestionGUI::isAuthoringEditContext ( )

Definition at line 471 of file class.assQuestionGUI.php.

References getEditContext().

471  : bool
472  {
473  return $this->getEditContext() == self::EDIT_CONTEXT_AUTHORING;
474  }
+ Here is the call graph for this function:

◆ isAutosaveable()

assQuestionGUI::isAutosaveable ( )

Definition at line 1656 of file class.assQuestionGUI.php.

1656  : bool
1657  {
1658  return $this->object instanceof QuestionAutosaveable;
1659  }

◆ isInLearningModuleContext()

assQuestionGUI::isInLearningModuleContext ( )

Definition at line 1967 of file class.assQuestionGUI.php.

References $parent_type_is_lm.

Referenced by assOrderingQuestionGUI\addEditSubtabs(), and assOrderingQuestionGUI\populateQuestionSpecificFormPart().

1967  : bool
1968  {
1969  return $this->parent_type_is_lm;
1970  }
+ Here is the caller graph for this function:

◆ isPreviousSolutionPrefilled()

assQuestionGUI::isPreviousSolutionPrefilled ( )

Definition at line 402 of file class.assQuestionGUI.php.

References $previousSolutionPrefilled.

402  : bool
403  {
405  }

◆ isRenderPurposeDemoplay()

assQuestionGUI::isRenderPurposeDemoplay ( )

Definition at line 443 of file class.assQuestionGUI.php.

References getRenderPurpose().

Referenced by assOrderingQuestionGUI\isInteractivePresentation().

443  : bool
444  {
445  return $this->getRenderPurpose() == self::RENDER_PURPOSE_DEMOPLAY;
446  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isRenderPurposeInputValue()

assQuestionGUI::isRenderPurposeInputValue ( )

Definition at line 433 of file class.assQuestionGUI.php.

References getRenderPurpose().

Referenced by renderPurposeSupportsFormHtml().

433  : bool
434  {
435  return $this->getRenderPurpose() == self::RENDER_PURPOSE_INPUT_VALUE;
436  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isRenderPurposePlayback()

assQuestionGUI::isRenderPurposePlayback ( )

Definition at line 438 of file class.assQuestionGUI.php.

References getRenderPurpose().

Referenced by assOrderingQuestionGUI\isInteractivePresentation().

438  : bool
439  {
440  return $this->getRenderPurpose() == self::RENDER_PURPOSE_PLAYBACK;
441  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isRenderPurposePreview()

assQuestionGUI::isRenderPurposePreview ( )

Definition at line 428 of file class.assQuestionGUI.php.

References getRenderPurpose().

428  : bool
429  {
430  return $this->getRenderPurpose() == self::RENDER_PURPOSE_PREVIEW;
431  }
+ Here is the call graph for this function:

◆ isRenderPurposePrintPdf()

assQuestionGUI::isRenderPurposePrintPdf ( )

Definition at line 423 of file class.assQuestionGUI.php.

References getRenderPurpose().

Referenced by assOrderingQuestionGUI\buildNestingForm(), assOrderingQuestionGUI\populateAnswerSpecificFormPart(), assClozeTestGUI\populateSolutiontextToGapTpl(), renderPurposeSupportsFormHtml(), assSingleChoiceGUI\renderSolutionOutput(), assMultipleChoiceGUI\renderSolutionOutput(), and assKprimChoiceGUI\renderSolutionOutput().

423  : bool
424  {
425  return $this->getRenderPurpose() == self::RENDER_PURPOSE_PRINT_PDF;
426  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isSaveCommand()

◆ isTestPresentationContext()

◆ linkChilds()

assQuestionGUI::linkChilds ( )

Definition at line 1465 of file class.assQuestionGUI.php.

References createSuggestedSolutionLinkingTo(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), outChapterSelector(), outGlossarySelector(), and outPageSelector().

1465  : void
1466  {
1467  $this->ctrl->saveParameter($this, ["subquestion_index", "link_new_type", "search_link_type"]);
1468  switch ($this->request_data_collector->string("search_link_type")) {
1469  case "pg":
1470  $this->outPageSelector();
1471  break;
1472  case "st":
1473  $this->outChapterSelector();
1474  break;
1475  case "glo":
1476  $this->outGlossarySelector();
1477  break;
1478  case "lm":
1479  $target = "il__lm_" . $this->request_data_collector->raw("source_id");
1480  $this->createSuggestedSolutionLinkingTo('lm', $target);
1481  $this->tpl->setOnScreenMessage('success', $this->lng->txt("suggested_solution_added_successfully"), true);
1482  $this->ctrl->redirect($this, 'suggestedsolution');
1483  break;
1484  }
1485  }
createSuggestedSolutionLinkingTo(string $type, string $target)
+ Here is the call graph for this function:

◆ magicAfterTestOutput()

assQuestionGUI::magicAfterTestOutput ( )

Definition at line 1723 of file class.assQuestionGUI.php.

Referenced by outQuestionForTest().

1723  : void
1724  {
1725  return;
1726  }
+ Here is the caller graph for this function:

◆ needsSyncQuery()

assQuestionGUI::needsSyncQuery ( )

Definition at line 2006 of file class.assQuestionGUI.php.

Referenced by saveQuestion().

2006  : bool
2007  {
2008  return $this->context_allows_sync_to_pool
2009  && $this->object->hasWritableOriginalInQuestionPool();
2010  }
+ Here is the caller graph for this function:

◆ outChapterSelector()

assQuestionGUI::outChapterSelector ( )

Definition at line 1395 of file class.assQuestionGUI.php.

References ILIAS\Repository\ctrl(), ilObjectGUI\getObject(), ILIAS\Repository\lng(), ILIAS\Repository\object(), and ilUtil\stripSlashes().

Referenced by linkChilds().

1395  : void
1396  {
1397  $this->ctrl->setParameter($this, 'q_id', $this->object->getId());
1398 
1399  $cont_obj_gui = new ilObjContentObjectGUI('', $this->request_data_collector->int('source_id'), true);
1400  $cont_obj = $cont_obj_gui->getObject();
1401  $ctree = $cont_obj->getLMTree();
1402  $nodes = $ctree->getSubtree($ctree->getNodeData($ctree->getRootId()));
1403 
1404  $rows = [];
1405 
1406  foreach ($nodes as $node) {
1407  if ($node['type'] == $this->request_data_collector->raw('search_link_type')) {
1408  $this->ctrl->setParameter($this, $node['type'], $node['obj_id']);
1409  $rows[] = [
1410  'title' => $node['title'],
1411  'description' => '',
1412  'text_add' => $this->lng->txt('add'),
1413  'href_add' => $this->ctrl->getLinkTarget($this, 'add' . strtoupper($node['type']))
1414  ];
1415  }
1416  }
1417 
1418  $table = new ilQuestionInternalLinkSelectionTableGUI($this, 'cancelExplorer', __METHOD__);
1419  $table->setTitle($this->lng->txt('obj_' . ilUtil::stripSlashes($this->request_data_collector->string('search_link_type'))));
1420  $table->setData($rows);
1421 
1422  $this->tpl->setContent($table->getHTML());
1423  }
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilObjContentObjectGUI.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outGlossarySelector()

assQuestionGUI::outGlossarySelector ( )

Definition at line 1425 of file class.assQuestionGUI.php.

References ILIAS\Repository\ctrl(), ilObjGlossary\getTermList(), ILIAS\Repository\lng(), and ILIAS\Repository\object().

Referenced by linkChilds().

1425  : void
1426  {
1427  $this->ctrl->setParameter($this, 'q_id', $this->object->getId());
1428 
1429  $glossary = new ilObjGlossary($this->request_data_collector->int('source_id'), true);
1430  $terms = $glossary->getTermList();
1431 
1432  $rows = [];
1433 
1434  foreach ($terms as $term) {
1435  $this->ctrl->setParameter($this, 'git', $term['id']);
1436  $rows[] = [
1437  'title' => $term['term'],
1438  'description' => '',
1439  'text_add' => $this->lng->txt('add'),
1440  'href_add' => $this->ctrl->getLinkTarget($this, 'addGIT')
1441  ];
1442  }
1443 
1444  $table = new ilQuestionInternalLinkSelectionTableGUI($this, 'cancelExplorer', __METHOD__);
1445  $table->setTitle($this->lng->txt('glossary_term'));
1446  $table->setData($rows);
1447 
1448  $this->tpl->setContent($table->getHTML());
1449  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getTermList(string $searchterm="", string $a_letter="", string $a_def="", int $a_tax_node=0, bool $a_include_offline_childs=false, bool $a_add_amet_fields=false, array $a_amet_filter=null, bool $a_omit_virtual=false, bool $a_include_references=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outPageSelector()

assQuestionGUI::outPageSelector ( )

Definition at line 1341 of file class.assQuestionGUI.php.

References ILIAS\Repository\ctrl(), ilTree\getChildsByType(), getContextPath(), ilTree\getNodeData(), ilObjectGUI\getObject(), ilLMPageObject\getPageList(), ilTree\getRootId(), ilTree\isInTree(), ILIAS\Repository\lng(), ILIAS\Repository\object(), ilLegacyFormElementsUtil\prepareFormOutput(), and ilUtil\stripSlashes().

Referenced by linkChilds().

1341  : void
1342  {
1343  $this->ctrl->setParameter($this, 'q_id', $this->object->getId());
1344 
1345  $cont_obj_gui = new ilObjContentObjectGUI('', $this->request_data_collector->int('source_id'), true);
1346  $cont_obj = $cont_obj_gui->getObject();
1347  $pages = ilLMPageObject::getPageList($cont_obj->getId());
1348  $shownpages = [];
1349  $tree = $cont_obj->getLMTree();
1350  $chapters = $tree->getSubtree($tree->getNodeData($tree->getRootId()));
1351 
1352  $rows = [];
1353 
1354  foreach ($chapters as $chapter) {
1355  $chapterpages = $tree->getChildsByType($chapter['obj_id'], 'pg');
1356  foreach ($chapterpages as $page) {
1357  if ($page['type'] == $this->request_data_collector->raw('search_link_type')) {
1358  array_push($shownpages, $page['obj_id']);
1359 
1360  if ($tree->isInTree($page['obj_id'])) {
1361  $path_str = $this->getContextPath($cont_obj, $page['obj_id']);
1362  } else {
1363  $path_str = '---';
1364  }
1365 
1366  $this->ctrl->setParameter($this, $page['type'], $page['obj_id']);
1367  $rows[] = [
1368  'title' => $page['title'],
1369  'description' => ilLegacyFormElementsUtil::prepareFormOutput($path_str),
1370  'text_add' => $this->lng->txt('add'),
1371  'href_add' => $this->ctrl->getLinkTarget($this, 'add' . strtoupper($page['type']))
1372  ];
1373  }
1374  }
1375  }
1376  foreach ($pages as $page) {
1377  if (!in_array($page['obj_id'], $shownpages)) {
1378  $this->ctrl->setParameter($this, $page['type'], $page['obj_id']);
1379  $rows[] = [
1380  'title' => $page['title'],
1381  'description' => '---',
1382  'text_add' => $this->lng->txt('add'),
1383  'href_add' => $this->ctrl->getLinkTarget($this, 'add' . strtoupper($page['type']))
1384  ];
1385  }
1386  }
1387 
1388  $table = new ilQuestionInternalLinkSelectionTableGUI($this, 'cancelExplorer', __METHOD__);
1389  $table->setTitle($this->lng->txt('obj_' . ilUtil::stripSlashes($this->request_data_collector->string('search_link_type'))));
1390  $table->setData($rows);
1391 
1392  $this->tpl->setContent($table->getHTML());
1393  }
getNodeData(int $a_node_id, ?int $a_tree_pk=null)
get all information of a node.
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
isInTree(?int $a_node_id)
get all information of a node.
static prepareFormOutput($a_str, bool $a_strip=false)
getContextPath($cont_obj, int $a_endnode_id, int $a_startnode_id=1)
get context path in content object tree
getChildsByType(int $a_node_id, string $a_type)
get child nodes of given node by object type
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getPageList(int $lm_id)
Class ilObjContentObjectGUI.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outQuestionForTest()

assQuestionGUI::outQuestionForTest ( string  $formaction,
int  $active_id,
?int  $pass,
bool  $is_question_postponed = false,
array|bool  $user_post_solutions = false,
bool  $show_specific_inline_feedback = false 
)
final

Definition at line 1689 of file class.assQuestionGUI.php.

References completeTestOutputFormAction(), getFormEncodingType(), getTestOutput(), and magicAfterTestOutput().

Referenced by ilTestPlayerAbstractGUI\showQuestionEditable().

1696  : void {
1697  $formaction = $this->completeTestOutputFormAction($formaction, $active_id, $pass);
1698 
1699  $test_output = $this->getTestOutput(
1700  $active_id,
1701  $pass,
1702  $is_question_postponed,
1703  $user_post_solutions,
1704  $show_specific_inline_feedback
1705  );
1706 
1707  $this->magicAfterTestOutput();
1708 
1709  $this->tpl->setVariable("QUESTION_OUTPUT", $test_output);
1710  $this->tpl->setVariable("FORMACTION", $formaction);
1711  $this->tpl->setVariable("ENCTYPE", 'enctype="' . $this->getFormEncodingType() . '"');
1712  $this->tpl->setVariable("FORM_TIMESTAMP", (string) time());
1713  }
getTestOutput(int $active_id, int $pass, bool $is_question_postponed=false, array|bool $user_post_solutions=false, bool $show_specific_inline_feedback=false)
completeTestOutputFormAction(string $form_action, int $active_id, int $pass)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outQuestionPage()

assQuestionGUI::outQuestionPage (   $a_temp_var,
  $a_postponed = false,
  $active_id = "",
  $html = "",
  $inlineFeedbackEnabled = false 
)

Definition at line 640 of file class.assQuestionGUI.php.

References getNavigationGUI(), getPreviousSolutionConfirmationCheckboxHtml(), getPreviousSolutionProvidedMessage(), getUseUnchangedAnswerCheckboxHtml(), ILIAS\Repository\lng(), ILIAS\Repository\object(), and ilPageObjectGUI\setOutputMode().

Referenced by assOrderingHorizontalGUI\getTestOutput(), assNumericGUI\getTestOutput(), assTextSubsetGUI\getTestOutput(), assFileUploadGUI\getTestOutput(), assErrorTextGUI\getTestOutput(), assKprimChoiceGUI\getTestOutput(), assSingleChoiceGUI\getTestOutput(), assLongMenuGUI\getTestOutput(), assTextQuestionGUI\getTestOutput(), assMultipleChoiceGUI\getTestOutput(), assOrderingQuestionGUI\getTestOutput(), assImagemapQuestionGUI\getTestOutput(), assMatchingQuestionGUI\getTestOutput(), assFormulaQuestionGUI\getTestOutput(), assClozeTestGUI\getTestOutput(), ilTestPlayerAbstractGUI\populateInstantResponseModal(), and ilTestPlayerAbstractGUI\showQuestionViewable().

640  : string
641  {
642  if ($this->object->getTestPresentationConfig()->isSolutionInitiallyPrefilled()) {
643  // hey
644  $this->tpl->setOnScreenMessage('info', $this->getPreviousSolutionProvidedMessage());
646  } elseif ($this->object->getTestPresentationConfig()->isUnchangedAnswerPossible()) {
647  $html .= $this->getUseUnchangedAnswerCheckboxHtml();
648  }
649 
650  $this->lng->loadLanguageModule("content");
651 
652  $page_gui = new ilAssQuestionPageGUI($this->object->getId());
653  $page_gui->setOutputMode("presentation");
654  $page_gui->setTemplateTargetVar($a_temp_var);
655 
656  if ($this->getNavigationGUI()) {
657  $html .= $this->getNavigationGUI()->getHTML();
658  $page_gui->setQuestionActionsHTML($this->getNavigationGUI()->getActionsHTML());
659  }
660 
661  if (strlen($html)) {
662  $page_gui->setQuestionHTML([$this->object->getId() => $html]);
663  }
664 
665  $page_gui->setPresentationTitle($this->questionHeaderBlockBuilder->getPresentationTitle());
666  $page_gui->setQuestionInfoHTML($this->questionHeaderBlockBuilder->getQuestionInfoHTML());
667 
668  return $page_gui->presentation();
669  }
setOutputMode(string $a_mode=self::PRESENTATION)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outQuestionType()

assQuestionGUI::outQuestionType ( )

Definition at line 1053 of file class.assQuestionGUI.php.

References ILIAS\Repository\lng(), and ILIAS\Repository\object().

Referenced by buildBasicEditFormObject(), assOrderingQuestionGUI\buildEditForm(), assMultipleChoiceGUI\buildEditForm(), assOrderingQuestionGUI\buildNestingForm(), assTextQuestionGUI\editQuestion(), assOrderingHorizontalGUI\editQuestion(), assNumericGUI\editQuestion(), assTextSubsetGUI\editQuestion(), assFileUploadGUI\editQuestion(), assSingleChoiceGUI\editQuestion(), assErrorTextGUI\editQuestion(), assMatchingQuestionGUI\editQuestion(), assClozeTestGUI\editQuestion(), ilTestCorrectionsGUI\populatePageTitleAndDescription(), and assFormulaQuestionGUI\resetSavedPreviewSession().

1053  : string
1054  {
1055  $count = $this->questionrepository->usageCount($this->object->getId());
1056 
1057  if ($this->questionrepository->questionExistsInPool($this->object->getId()) && $count) {
1058  if ($this->rbacsystem->checkAccess("write", $this->request_data_collector->getRefId())) {
1059  $this->tpl->setOnScreenMessage('info', sprintf($this->lng->txt("qpl_question_is_in_use"), $count));
1060  }
1061  }
1062 
1063  return $this->lng->txt($this->object->getQuestionType());
1064  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outSolutionExplorer()

assQuestionGUI::outSolutionExplorer ( )

Definition at line 1268 of file class.assQuestionGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ilExplorer\setExpand().

1268  : void
1269  {
1270  $type = $this->request_data_collector->string("link_new_type");
1271  $search = $this->request_data_collector->string("search_link_type");
1272  $this->ctrl->setParameter($this, "link_new_type", $type);
1273  $this->ctrl->setParameter($this, "search_link_type", $search);
1274  $this->ctrl->saveParameter($this, ["subquestion_index", "link_new_type", "search_link_type"]);
1275 
1276  $this->tpl->setOnScreenMessage('info', $this->lng->txt("select_object_to_link"));
1277 
1278  $parent_ref_id = $this->tree->getParentId($this->request_data_collector->getRefId());
1279  $exp = new ilSolutionExplorer($this->ctrl->getLinkTarget($this, 'suggestedsolution'), get_class($this));
1280  $exp->setExpand($this->request_data_collector->raw('expand_sol') ? $this->request_data_collector->raw('expand_sol') : $parent_ref_id);
1281  $exp->setExpandTarget($this->ctrl->getLinkTarget($this, 'outSolutionExplorer'));
1282  $exp->setTargetGet("ref_id");
1283  $exp->setRefId($this->request_data_collector->getRefId());
1284  $exp->addFilter($type);
1285  $exp->setSelectableType($type);
1286  if ($this->request_data_collector->isset('expandCurrentPath') && $this->request_data_collector->raw('expandCurrentPath')) {
1287  $exp->expandPathByRefId($parent_ref_id);
1288  }
1289 
1290  // build html-output
1291  $exp->setOutput(0);
1292 
1293  $template = new ilTemplate("tpl.il_as_qpl_explorer.html", true, true, "components/ILIAS/TestQuestionPool");
1294  $template->setVariable("EXPLORER_TREE", $exp->getOutput());
1295  $template->setVariable("BUTTON_CANCEL", $this->lng->txt("cancel"));
1296  $template->setVariable("FORMACTION", $this->ctrl->getFormAction($this, "suggestedsolution"));
1297  $this->tpl->setVariable("ADM_CONTENT", $template->get());
1298  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setExpand($a_node_id)
set the expand option this value is stored in a SESSION variable to save it different view (lo view...
+ Here is the call graph for this function:

◆ populateCorrectionsFormProperties()

assQuestionGUI::populateCorrectionsFormProperties ( ilPropertyFormGUI  $form)

Definition at line 1835 of file class.assQuestionGUI.php.

Referenced by ilTestCorrectionsGUI\buildQuestionCorrectionForm().

1835  : void
1836  {
1837  }
+ Here is the caller graph for this function:

◆ populateJavascriptFilesRequiredForWorkForm()

assQuestionGUI::populateJavascriptFilesRequiredForWorkForm ( ilGlobalTemplateInterface  $tpl)

Definition at line 599 of file class.assQuestionGUI.php.

References ilGlobalTemplateInterface\addJavaScript(), and getPresentationJavascripts().

599  : void
600  {
601  foreach ($this->getPresentationJavascripts() as $jsFile) {
602  $tpl->addJavaScript($jsFile);
603  }
604  }
addJavaScript(string $a_js_file, bool $a_add_version_parameter=true, int $a_batch=2)
Add a javascript file that should be included in the header.
+ Here is the call graph for this function:

◆ populateTaxonomyFormSection()

assQuestionGUI::populateTaxonomyFormSection ( ilPropertyFormGUI  $form)
protected

Definition at line 971 of file class.assQuestionGUI.php.

References ilObject\_lookupType(), ilPropertyFormGUI\addItem(), ilTaxNodeAssignment\getAssignmentsOfItem(), getTaxonomyIds(), ILIAS\Repository\lng(), ILIAS\Repository\object(), and ilFormPropertyGUI\setTitle().

Referenced by assImagemapQuestionGUI\buildEditForm(), assKprimChoiceGUI\buildEditForm(), assLongMenuGUI\buildEditForm(), assOrderingQuestionGUI\buildEditForm(), assMultipleChoiceGUI\buildEditForm(), assTextQuestionGUI\editQuestion(), assOrderingHorizontalGUI\editQuestion(), assNumericGUI\editQuestion(), assTextSubsetGUI\editQuestion(), assFileUploadGUI\editQuestion(), assSingleChoiceGUI\editQuestion(), assErrorTextGUI\editQuestion(), assMatchingQuestionGUI\editQuestion(), assClozeTestGUI\editQuestion(), and assFormulaQuestionGUI\resetSavedPreviewSession().

971  : void
972  {
973  if ($this->getTaxonomyIds() !== []) {
974  $sectHeader = new ilFormSectionHeaderGUI();
975  $sectHeader->setTitle($this->lng->txt('qpl_qst_edit_form_taxonomy_section'));
976  $form->addItem($sectHeader);
977 
978  foreach ($this->getTaxonomyIds() as $taxonomyId) {
979  $taxonomy = new ilObjTaxonomy($taxonomyId);
980  $label = sprintf($this->lng->txt('qpl_qst_edit_form_taxonomy'), $taxonomy->getTitle());
981  $postvar = "tax_node_assign_$taxonomyId";
982 
983  $taxSelect = new ilTaxSelectInputGUI($taxonomy->getId(), $postvar, true);
984  $taxSelect->setTitle($label);
985 
986 
987  $taxNodeAssignments = new ilTaxNodeAssignment(ilObject::_lookupType($this->object->getObjId()), $this->object->getObjId(), 'quest', $taxonomyId);
988  $assignedNodes = $taxNodeAssignments->getAssignmentsOfItem($this->object->getId());
989 
990  $taxSelect->setValue(array_map(function ($assignedNode) {
991  return $assignedNode['node_id'];
992  }, $assignedNodes));
993  $form->addItem($taxSelect);
994  }
995  }
996  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getAssignmentsOfItem(int $a_item_id)
Get assignments for item.
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ prepareReprintableCorrectionsForm()

assQuestionGUI::prepareReprintableCorrectionsForm ( ilPropertyFormGUI  $form)

Definition at line 1831 of file class.assQuestionGUI.php.

Referenced by ilTestCorrectionsGUI\saveQuestion().

1831  : void
1832  {
1833  }
+ Here is the caller graph for this function:

◆ prepareTextareaOutput()

static assQuestionGUI::prepareTextareaOutput ( ?string  $txt_output,
bool  $prepare_for_latex_output = false,
bool  $omitNl2BrWhenTextArea = false 
)
static

Prepares a string for a text area output where latex code may be in it If the text is HTML-free, CHR(13) will be converted to a line break.

Parameters
string$txt_outputString which should be prepared for output public

Definition at line 1878 of file class.assQuestionGUI.php.

References ilMathJax\getInstance().

1882  : string {
1883  if ($txt_output === null || $txt_output === '') {
1884  return '';
1885  }
1886 
1887  $result = $txt_output;
1888  $is_html = false;
1889 
1890  if (strlen(strip_tags($result)) < strlen($result)) {
1891  $is_html = true;
1892  }
1893 
1894  // removed: did not work with magic_quotes_gpc = On
1895  if (!$is_html) {
1896  if (!$omitNl2BrWhenTextArea) {
1897  // if the string does not contain HTML code, replace the newlines with HTML line breaks
1898  $result = preg_replace("/[\n]/", "<br />", $result);
1899  }
1900  } else {
1901  // patch for problems with the <pre> tags in tinyMCE
1902  if (preg_match_all("/(<pre>.*?<\/pre>)/ims", $result, $matches)) {
1903  foreach ($matches[0] as $found) {
1904  $replacement = "";
1905  if (strpos("\n", $found) === false) {
1906  $replacement = "\n";
1907  }
1908  $removed = preg_replace("/<br\s*?\/>/ims", $replacement, $found);
1909  $result = str_replace($found, $removed, $result);
1910  }
1911  }
1912  }
1913 
1914  // since server side mathjax rendering does include svg-xml structures that indeed have linebreaks,
1915  // do latex conversion AFTER replacing linebreaks with <br>. <svg> tag MUST NOT contain any <br> tags.
1916  if ($prepare_for_latex_output) {
1917  $result = ilMathJax::getInstance()->insertLatexImages($result, "<span class\=\"latex\">", "<\/span>");
1918  $result = ilMathJax::getInstance()->insertLatexImages($result, "\[tex\]", "\[\/tex\]");
1919  }
1920 
1921  if ($prepare_for_latex_output) {
1922  // replace special characters to prevent problems with the ILIAS template system
1923  // eg. if someone uses {1} as an answer, nothing will be shown without the replacement
1924  $result = str_replace("{", "&#123;", $result);
1925  $result = str_replace("}", "&#125;", $result);
1926  $result = str_replace("\\", "&#92;", $result);
1927  }
1928 
1929  return $result;
1930  }
static getInstance()
Singleton: get instance for use in ILIAS requests with a config loaded from the settings.
+ Here is the call graph for this function:

◆ redrawHeaderAction()

assQuestionGUI::redrawHeaderAction ( )

Definition at line 300 of file class.assQuestionGUI.php.

References exit, getHeaderAction(), and ILIAS\Repository\ui().

300  : void
301  {
302  echo $this->getHeaderAction() . $this->ui->mainTemplate()->getOnLoadCodeForAsynch();
303  exit;
304  }
+ Here is the call graph for this function:

◆ renderEditForm()

assQuestionGUI::renderEditForm ( ilPropertyFormGUI  $form)
protected

Definition at line 619 of file class.assQuestionGUI.php.

References $question_sync_modal, addSaveOnEnterOnLoadCode(), ilPropertyFormGUI\getHTML(), and getQuestionTemplate().

Referenced by assOrderingQuestionGUI\buildEditFormAfterTypeChange(), assOrderingQuestionGUI\editNesting(), assKprimChoiceGUI\editQuestion(), assTextQuestionGUI\editQuestion(), assOrderingHorizontalGUI\editQuestion(), assTextSubsetGUI\editQuestion(), assNumericGUI\editQuestion(), assFileUploadGUI\editQuestion(), assSingleChoiceGUI\editQuestion(), assMultipleChoiceGUI\editQuestion(), assErrorTextGUI\editQuestion(), assLongMenuGUI\editQuestion(), assImagemapQuestionGUI\editQuestion(), assMatchingQuestionGUI\editQuestion(), assClozeTestGUI\editQuestion(), assOrderingQuestionGUI\editQuestion(), assFormulaQuestionGUI\resetSavedPreviewSession(), and assOrderingQuestionGUI\writePostData().

619  : void
620  {
621  $this->addSaveOnEnterOnLoadCode();
622  $this->getQuestionTemplate();
623  $this->tpl->setVariable('QUESTION_DATA', $form->getHTML() . $this->question_sync_modal);
624  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderPurposeSupportsFormHtml()

assQuestionGUI::renderPurposeSupportsFormHtml ( )

Definition at line 448 of file class.assQuestionGUI.php.

References isRenderPurposeInputValue(), and isRenderPurposePrintPdf().

Referenced by assTextQuestionGUI\getAutoSavedSolutionOutput(), assTextQuestionGUI\getSolutionOutput(), assTextQuestionGUI\renderSolutionOutput(), assSingleChoiceGUI\renderSolutionOutput(), assMultipleChoiceGUI\renderSolutionOutput(), and assKprimChoiceGUI\renderSolutionOutput().

448  : bool
449  {
450  if ($this->isRenderPurposePrintPdf()) {
451  return false;
452  }
453 
454  if ($this->isRenderPurposeInputValue()) {
455  return false;
456  }
457 
458  return true;
459  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderSolutionOutput()

assQuestionGUI::renderSolutionOutput ( mixed  $user_solutions,
int  $active_id,
?int  $pass,
bool  $graphical_output = false,
bool  $result_output = false,
bool  $show_question_only = true,
bool  $show_feedback = false,
bool  $show_correct_solution = false,
bool  $show_manual_scoring = false,
bool  $show_question_text = true,
bool  $show_autosave_title = false,
bool  $show_inline_feedback = false 
)

Definition at line 225 of file class.assQuestionGUI.php.

Referenced by getAutoSavedSolutionOutput(), and assImagemapQuestionGUI\getSolutionOutput().

238  : ?string {
239  return null;
240  }
+ Here is the caller graph for this function:

◆ saveCorrectionsFormProperties()

assQuestionGUI::saveCorrectionsFormProperties ( ilPropertyFormGUI  $form)

Definition at line 1839 of file class.assQuestionGUI.php.

Referenced by ilTestCorrectionsGUI\saveQuestion().

1839  : void
1840  {
1841  }
+ Here is the caller graph for this function:

◆ saveQuestion()

assQuestionGUI::saveQuestion ( )

Definition at line 718 of file class.assQuestionGUI.php.

References ILIAS\Repository\ctrl(), getQuestionSyncModal(), needsSyncQuery(), ILIAS\Repository\object(), setAdditionalContentEditingModeFromPost(), setQuestionTabs(), and writePostData().

718  : bool
719  {
721  $result = $this->writePostData();
722  $this->tabs_gui->activateTab('edit_question');
723 
724  if ($result !== 0) {
725  return false;
726  }
727 
728  $this->object->getCurrentUser()->setPref('tst_lastquestiontype', $this->object->getQuestionType());
729  $this->object->getCurrentUser()->writePref('tst_lastquestiontype', $this->object->getQuestionType());
730 
731  if ($this->request_data_collector->getQuestionId() === 0) {
732  if ($this->object->getId() < 1) {
733  $this->object->createNewQuestion();
734  }
735  $this->setQuestionTabs();
736  }
737 
738  if ($this->needsSyncQuery()) {
739  $cmd = strpos($this->ctrl->getCmd(), 'Return') === false
740  ? self::CMD_SYNC_QUESTION
741  : self::CMD_SYNC_QUESTION_AND_RETURN;
742  $this->question_sync_modal = $this->getQuestionSyncModal($cmd);
743  }
744 
745  $this->object->saveToDb();
746  return true;
747  }
writePostData(bool $always=false)
Evaluates a posted edit form and writes the form data in the question object.
getQuestionSyncModal(string $cmd, string $cmd_class='')
+ Here is the call graph for this function:

◆ saveReturn()

assQuestionGUI::saveReturn ( )

Definition at line 699 of file class.assQuestionGUI.php.

References ilAssQuestionPreviewGUI\CMD_SHOW, ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ILIAS\Repository\object(), setAdditionalContentEditingModeFromPost(), and writePostData().

699  : void
700  {
701  $old_id = $this->request_data_collector->getQuestionId();
703  $result = $this->writePostData();
704  if ($result !== 0) {
705  $this->tabs_gui->setTabActive('edit_question');
706  return;
707  }
708 
709  $this->object->getCurrentUser()->setPref('tst_lastquestiontype', $this->object->getQuestionType());
710  $this->object->getCurrentUser()->writePref('tst_lastquestiontype', $this->object->getQuestionType());
711  $this->object->saveToDb($old_id);
712 
713  $this->questionrepository->questionExistsInPool($this->object->getOriginalId());
714  $this->tpl->setOnScreenMessage('success', $this->lng->txt('msg_obj_modified'), true);
715  $this->ctrl->redirectByClass(ilAssQuestionPreviewGUI::class, ilAssQuestionPreviewGUI::CMD_SHOW);
716  }
writePostData(bool $always=false)
Evaluates a posted edit form and writes the form data in the question object.
+ Here is the call graph for this function:

◆ saveSuggestedSolution()

assQuestionGUI::saveSuggestedSolution ( )

Definition at line 1074 of file class.assQuestionGUI.php.

References suggestedsolution().

1074  : void
1075  {
1076  $this->suggestedsolution(true);
1077  }
suggestedsolution(bool $save=false)
+ Here is the call graph for this function:

◆ saveSuggestedSolutionType()

assQuestionGUI::saveSuggestedSolutionType ( )

Definition at line 1300 of file class.assQuestionGUI.php.

References ILIAS\Repository\ctrl(), and suggestedsolution().

1300  : void
1301  {
1302  $solution_type = $this->request_data_collector->string('solutiontype');
1303 
1304  switch ($solution_type) {
1305  case 'lm':
1306  $type = 'lm';
1307  $search = 'lm';
1308  break;
1309  case 'git':
1310  $type = 'glo';
1311  $search = 'glo';
1312  break;
1313  case 'st':
1314  $type = 'lm';
1315  $search = 'st';
1316  break;
1317  case 'pg':
1318  $type = 'lm';
1319  $search = 'pg';
1320  break;
1321  case 'file':
1322  case 'text':
1323  default:
1324  $this->suggestedsolution();
1325  return;
1326  }
1327 
1328  if (isset($solution_type)) {
1329  $this->ctrl->setParameter($this, 'expandCurrentPath', 1);
1330  }
1331  $this->ctrl->setParameter($this, 'link_new_type', $type);
1332  $this->ctrl->setParameter($this, 'search_link_type', $search);
1333  $this->ctrl->redirect($this, 'outSolutionExplorer');
1334  }
suggestedsolution(bool $save=false)
+ Here is the call graph for this function:

◆ saveTaxonomyAssignments()

assQuestionGUI::saveTaxonomyAssignments ( )
protected

Definition at line 958 of file class.assQuestionGUI.php.

References getTaxonomyIds(), and ILIAS\Repository\object().

Referenced by assErrorTextGUI\analyze(), assMatchingQuestionGUI\writePostData(), assErrorTextGUI\writePostData(), assTextQuestionGUI\writePostData(), assTextSubsetGUI\writePostData(), assLongMenuGUI\writePostData(), assOrderingHorizontalGUI\writePostData(), assFileUploadGUI\writePostData(), assSingleChoiceGUI\writePostData(), assNumericGUI\writePostData(), assMultipleChoiceGUI\writePostData(), assImagemapQuestionGUI\writePostData(), assFormulaQuestionGUI\writePostData(), assKprimChoiceGUI\writePostData(), assClozeTestGUI\writePostData(), assOrderingQuestionGUI\writePostData(), and assLongMenuGUI\writeQuestionSpecificPostData().

958  : void
959  {
960  if (count($this->getTaxonomyIds())) {
961  foreach ($this->getTaxonomyIds() as $taxonomyId) {
962  $postvar = "tax_node_assign_$taxonomyId";
963 
964  $tax_node_assign = new ilTaxAssignInputGUI($taxonomyId, true, '', $postvar);
965  // TODO: determine tst/qpl when tax assigns become maintainable within tests
966  $tax_node_assign->saveInput("qpl", $this->object->getObjId(), "quest", $this->object->getId());
967  }
968  }
969  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setAdditionalContentEditingModeFromPost()

assQuestionGUI::setAdditionalContentEditingModeFromPost ( )

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

References ILIAS\Repository\object().

Referenced by assTextSubsetGUI\addanswers(), assMatchingQuestionGUI\adddefinitions(), assClozeTestGUI\addgap(), assMatchingQuestionGUI\addpairs(), assTextQuestionGUI\addSuggestedSolution(), assMatchingQuestionGUI\addterms(), assErrorTextGUI\analyze(), assClozeTestGUI\createGaps(), assFormulaQuestionGUI\parseQuestion(), assTextSubsetGUI\removeanswers(), assMatchingQuestionGUI\removedefinitions(), assClozeTestGUI\removegap(), assSingleChoiceGUI\removeimagechoice(), assMultipleChoiceGUI\removeimagechoice(), assMatchingQuestionGUI\removeimagedefinitions(), assMatchingQuestionGUI\removeimageterms(), assMatchingQuestionGUI\removepairs(), assMatchingQuestionGUI\removeterms(), saveQuestion(), saveReturn(), assFormulaQuestionGUI\suggestRange(), assSingleChoiceGUI\uploadchoice(), assMultipleChoiceGUI\uploadchoice(), assMatchingQuestionGUI\uploaddefinitions(), assKprimChoiceGUI\uploadImage(), and assMatchingQuestionGUI\uploadterms().

749  : void
750  {
751  $additional_content_editing_mode = $this->request_data_collector->string('additional_content_editing_mode');
752  if ($additional_content_editing_mode !== ''
753  && in_array($additional_content_editing_mode, $this->object->getValidAdditionalContentEditingModes())) {
754  $this->object->setAdditionalContentEditingMode($additional_content_editing_mode);
755  }
756  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setAdjustmentEditContext()

assQuestionGUI::setAdjustmentEditContext ( )

Definition at line 481 of file class.assQuestionGUI.php.

References setEditContext().

481  : void
482  {
483  $this->setEditContext(self::EDIT_CONTEXT_ADJUSTMENT);
484  }
setEditContext(string $editContext)
+ Here is the call graph for this function:

◆ setContextAllowsSyncToPool()

assQuestionGUI::setContextAllowsSyncToPool ( bool  $sync_allowed)

Definition at line 2001 of file class.assQuestionGUI.php.

2001  : void
2002  {
2003  $this->context_allows_sync_to_pool = $sync_allowed;
2004  }

◆ setCopyToExistingPoolOnSave()

assQuestionGUI::setCopyToExistingPoolOnSave ( ?int  $pool_ref_id)

Definition at line 261 of file class.assQuestionGUI.php.

Referenced by ilObjTestGUI\addPostCreationTasksToQuestionGUI(), and ilObjTestGUI\executeAfterQuestionCreationTasks().

261  : void
262  {
263  $this->copy_to_existing_pool_on_save = $pool_ref_id;
264  }
+ Here is the caller graph for this function:

◆ setCopyToNewPoolOnSave()

assQuestionGUI::setCopyToNewPoolOnSave ( ?string  $pool_title)

Definition at line 271 of file class.assQuestionGUI.php.

Referenced by ilObjTestGUI\addPostCreationTasksToQuestionGUI(), and ilObjTestGUI\executeAfterQuestionCreationTasks().

271  : void
272  {
273  $this->copy_to_new_pool_on_save = $pool_title;
274  }
+ Here is the caller graph for this function:

◆ setDefaultTabs()

assQuestionGUI::setDefaultTabs ( ilTabsGUI  $tabs_gui)
protected

Definition at line 1549 of file class.assQuestionGUI.php.

References addTab_Question(), addTab_QuestionFeedback(), addTab_QuestionHints(), addTab_SuggestedSolution(), ILIAS\Repository\ctrl(), and ILIAS\Repository\object().

Referenced by setQuestionTabs().

1549  : void
1550  {
1551  $this->ctrl->setParameterByClass(ilAssQuestionPageGUI::class, 'q_id', $this->object->getId());
1552  $this->ctrl->setParameterByClass(static::class, 'q_id', $this->object->getId());
1553 
1554  $this->addTab_Question($tabs_gui);
1555  $this->addTab_QuestionFeedback($tabs_gui);
1556  $this->addTab_QuestionHints($tabs_gui);
1557  $this->addTab_SuggestedSolution($tabs_gui, static::class);
1558  }
addTab_SuggestedSolution(ilTabsGUI $tabs, string $classname)
addTab_QuestionHints(ilTabsGUI $tabs)
addTab_Question(ilTabsGUI $tabs_gui)
addTab_QuestionFeedback(ilTabsGUI $tabs)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setEditContext()

assQuestionGUI::setEditContext ( string  $editContext)

Definition at line 466 of file class.assQuestionGUI.php.

References $editContext.

Referenced by setAdjustmentEditContext().

466  : void
467  {
468  $this->editContext = $editContext;
469  }
+ Here is the caller graph for this function:

◆ setErrorMessage()

assQuestionGUI::setErrorMessage ( string  $errormessage)

Definition at line 819 of file class.assQuestionGUI.php.

References $errormessage.

Referenced by assErrorTextGUI\__construct(), assMatchingQuestionGUI\__construct(), assOrderingHorizontalGUI\__construct(), and assFileUploadGUI\__construct().

819  : void
820  {
821  $this->errormessage = $errormessage;
822  }
+ Here is the caller graph for this function:

◆ setInLearningModuleContext()

assQuestionGUI::setInLearningModuleContext ( bool  $flag)

Definition at line 1971 of file class.assQuestionGUI.php.

1971  : void
1972  {
1973  $this->parent_type_is_lm = $flag;
1974  }

◆ setMoveAfterQuestionId()

assQuestionGUI::setMoveAfterQuestionId ( ?int  $question_id)

Definition at line 281 of file class.assQuestionGUI.php.

Referenced by ilObjTestGUI\addPostCreationTasksToQuestionGUI(), and ilObjTestGUI\executeAfterQuestionCreationTasks().

281  : void
282  {
283  $this->move_after_question_with_id = $question_id;
284  }
+ Here is the caller graph for this function:

◆ setNavigationGUI()

assQuestionGUI::setNavigationGUI ( ?ilTestQuestionNavigationGUI  $navigationGUI)

Definition at line 491 of file class.assQuestionGUI.php.

References $navigationGUI.

Referenced by ilTestPlayerAbstractGUI\populateInstantResponseModal(), ilTestPlayerAbstractGUI\showQuestionEditable(), and ilTestPlayerAbstractGUI\showQuestionViewable().

491  : void
492  {
493  $this->navigationGUI = $navigationGUI;
494  }
ilTestQuestionNavigationGUI $navigationGUI
+ Here is the caller graph for this function:

◆ setObject()

assQuestionGUI::setObject ( assQuestion  $question)
Deprecated:
sk 25 FEB 2024: I introduce this to not have to have the object public, but this should NEVER EVER be used and should go asap!

Definition at line 256 of file class.assQuestionGUI.php.

Referenced by ilAssQuestionSkillAssignmentsGUI\buildQuestionPage(), ilTestCorrectionsGUI\getQuestionGUI(), and ilTestCorrectionsGUI\saveQuestion().

256  : void
257  {
258  $this->object = $question;
259  }
+ Here is the caller graph for this function:

◆ setPresentationContext()

assQuestionGUI::setPresentationContext ( string  $presentationContext)

Definition at line 391 of file class.assQuestionGUI.php.

References $presentationContext.

391  : void
392  {
393  $this->presentationContext = $presentationContext;
394  }

◆ setPreviewSession()

assQuestionGUI::setPreviewSession ( ilAssQuestionPreviewSession  $preview_session)

Definition at line 1762 of file class.assQuestionGUI.php.

References $preview_session.

1762  : void
1763  {
1764  $this->preview_session = $preview_session;
1765  }
ilAssQuestionPreviewSession $preview_session

◆ setPreviousSolutionPrefilled()

assQuestionGUI::setPreviousSolutionPrefilled ( bool  $previousSolutionPrefilled)

Definition at line 407 of file class.assQuestionGUI.php.

References $previousSolutionPrefilled.

407  : void
408  {
409  $this->previousSolutionPrefilled = $previousSolutionPrefilled;
410  }

◆ setQuestionActionCmd()

assQuestionGUI::setQuestionActionCmd ( string  $questionActionCmd)

Definition at line 533 of file class.assQuestionGUI.php.

References $questionActionCmd.

533  : void
534  {
535  $this->questionActionCmd = $questionActionCmd;
536 
537  if (is_object($this->object)) {
538  $this->object->questionActionCmd = $questionActionCmd;
539  }
540  }

◆ setQuestionCount()

assQuestionGUI::setQuestionCount ( int  $a_question_count)

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

804  : void
805  {
806  $this->question_count = $a_question_count;
807  }

◆ setQuestionHeaderBlockBuilder()

assQuestionGUI::setQuestionHeaderBlockBuilder ( \ilQuestionHeaderBlockBuilder  $questionHeaderBlockBuilder)

Definition at line 521 of file class.assQuestionGUI.php.

References $questionHeaderBlockBuilder.

521  : void
522  {
523  $this->questionHeaderBlockBuilder = $questionHeaderBlockBuilder;
524  }
ilQuestionHeaderBlockBuilder $questionHeaderBlockBuilder

◆ setQuestionSpecificTabs()

assQuestionGUI::setQuestionSpecificTabs ( ilTabsGUI  $tabs_gui)
protected

Definition at line 1560 of file class.assQuestionGUI.php.

Referenced by setQuestionTabs().

1560  : void
1561  {
1562  }
+ Here is the caller graph for this function:

◆ setQuestionTabs()

assQuestionGUI::setQuestionTabs ( )

Definition at line 1537 of file class.assQuestionGUI.php.

References addBackTab(), ILIAS\Repository\object(), setDefaultTabs(), and setQuestionSpecificTabs().

Referenced by saveQuestion().

1537  : void
1538  {
1539  $this->tabs_gui->clearTargets();
1540 
1541  if ($this->object->getId() > 0) {
1542  $this->setDefaultTabs($this->tabs_gui);
1543  $this->setQuestionSpecificTabs($this->tabs_gui);
1544  $this->tabs_gui->activateTab('edit_question');
1545  }
1546  $this->addBackTab($this->tabs_gui);
1547  }
setDefaultTabs(ilTabsGUI $tabs_gui)
setQuestionSpecificTabs(ilTabsGUI $tabs_gui)
addBackTab(ilTabsGUI $tabs_gui)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setRenderPurpose()

assQuestionGUI::setRenderPurpose ( string  $renderPurpose)

Definition at line 418 of file class.assQuestionGUI.php.

References $renderPurpose.

418  : void
419  {
420  $this->renderPurpose = $renderPurpose;
421  }

◆ setSequenceNumber()

assQuestionGUI::setSequenceNumber ( int  $nr)

Definition at line 794 of file class.assQuestionGUI.php.

794  : void
795  {
796  $this->sequence_no = $nr;
797  }

◆ setTargetGui()

assQuestionGUI::setTargetGui (   $linkTargetGui)

Definition at line 506 of file class.assQuestionGUI.php.

References setTargetGuiClass().

506  : void
507  {
508  $this->setTargetGuiClass(get_class($linkTargetGui));
509  }
setTargetGuiClass(string $targetGuiClass)
+ Here is the call graph for this function:

◆ setTargetGuiClass()

assQuestionGUI::setTargetGuiClass ( string  $targetGuiClass)

Definition at line 511 of file class.assQuestionGUI.php.

References $targetGuiClass.

Referenced by setTargetGui().

511  : void
512  {
513  $this->targetGuiClass = $targetGuiClass;
514  }
+ Here is the caller graph for this function:

◆ setTaxonomyIds()

assQuestionGUI::setTaxonomyIds ( array  $taxonomyIds)

Definition at line 496 of file class.assQuestionGUI.php.

References $taxonomyIds.

496  : void
497  {
498  $this->taxonomyIds = $taxonomyIds;
499  }

◆ setTestSpecificProperties()

assQuestionGUI::setTestSpecificProperties ( )
protected

Definition at line 758 of file class.assQuestionGUI.php.

Referenced by assFormulaQuestionGUI\parseQuestion(), assFormulaQuestionGUI\suggestRange(), and writeQuestionGenericPostData().

758  : void
759  {
760  if ($this->request_data_collector->isset('pool_ref')) {
761  $this->copy_to_existing_pool_on_save = $this->request_data_collector->int('pool_ref');
762  }
763 
764  if ($this->request_data_collector->isset('pool_title')) {
765  $this->copy_to_new_pool_on_save = $this->request_data_collector->string('pool_title');
766  }
767 
768  if ($this->request_data_collector->isset('move_after_question_with_id')) {
769  $this->move_after_question_with_id = $this->request_data_collector->int('move_after_question_with_id');
770  }
771  }
+ Here is the caller graph for this function:

◆ showHints()

assQuestionGUI::showHints ( )

Definition at line 1786 of file class.assQuestionGUI.php.

References ilAssQuestionHintsGUI\CMD_SHOW_LIST, and ILIAS\Repository\ctrl().

1786  : void
1787  {
1788  $this->ctrl->redirectByClass(ilAssQuestionHintsGUI::class, ilAssQuestionHintsGUI::CMD_SHOW_LIST);
1789  }
const CMD_SHOW_LIST
command constants
+ Here is the call graph for this function:

◆ suggestedsolution()

assQuestionGUI::suggestedsolution ( bool  $save = false)

Definition at line 1084 of file class.assQuestionGUI.php.

References $res, ILIAS\Repository\access(), ilRadioGroupInputGUI\addOption(), ILIAS\Repository\ctrl(), getSuggestedSolutionsRepo(), getTypeOptions(), ILIAS\Repository\lng(), ilFileUtils\makeDirParents(), ilFileUtils\moveUploadedFile(), ILIAS\Repository\object(), ilLegacyFormElementsUtil\prepareFormOutput(), ilFileUtils\renameExecutables(), ilCustomInputGUI\setHtml(), and ilFormPropertyGUI\setRequired().

Referenced by cancelSuggestedSolution(), saveSuggestedSolution(), and saveSuggestedSolutionType().

1084  : void
1085  {
1086  if ($save && $this->request_data_collector->int('deleteSuggestedSolution') === 1) {
1087  $this->object->deleteSuggestedSolutions();
1088  $this->tpl->setOnScreenMessage('success', $this->lng->txt("msg_obj_modified"), true);
1089  $this->ctrl->redirect($this, 'suggestedsolution');
1090  }
1091 
1092  $output = '';
1093 
1094  $solution = $this->object->getSuggestedSolution();
1095  $options = $this->getTypeOptions();
1096 
1097  $solution_type = $this->ctrl->getCmd() === 'cancelSuggestedSolution'
1098  ? $solution->getType()
1099  : $this->request_data_collector->string('solutiontype');
1100  if ($solution_type === SuggestedSolution::TYPE_FILE
1101  && ($solution === null || $solution->getType() !== SuggestedSolution::TYPE_FILE)
1102  ) {
1103  $solution = $this->getSuggestedSolutionsRepo()->create(
1104  $this->object->getId(),
1105  SuggestedSolution::TYPE_FILE
1106  );
1107  }
1108 
1109  $solution_filename = $this->request_data_collector->string('filename');
1110  if ($save && !empty($solution_filename)) {
1111  $solution = $solution->withTitle($solution_filename);
1112  }
1113 
1114  if ($solution !== null) {
1115  $form = new ilPropertyFormGUI();
1116  $form->setFormAction($this->ctrl->getFormAction($this));
1117  $form->setTitle($this->lng->txt('solution_hint'));
1118  $form->setMultipart(true);
1119  $form->setTableWidth('100%');
1120  $form->setId('suggestedsolutiondisplay');
1121 
1122  $title = new ilSolutionTitleInputGUI($this->lng->txt('showSuggestedSolution'), 'solutiontype');
1123  $template = new ilTemplate(
1124  'tpl.il_as_qpl_suggested_solution_input_presentation.html',
1125  true,
1126  true,
1127  'components/ILIAS/TestQuestionPool'
1128  );
1129 
1130  if ($solution->isOfTypeLink()) {
1131  $href = $this->object->getInternalLinkHref($solution->getInternalLink());
1132  $template->setCurrentBlock('preview');
1133  $template->setVariable('TEXT_SOLUTION', $this->lng->txt('suggested_solution'));
1134  $template->setVariable(
1135  'VALUE_SOLUTION',
1136  " <a href='{$href}' target='content'>{$this->lng->txt('view')}</a> "
1137  );
1138  $template->parseCurrentBlock();
1139  } elseif (
1140  $solution->isOfTypeFile()
1141  && $solution->getFilename()
1142  ) {
1143  $href = $this->object->getSuggestedSolutionPathWeb() . $solution->getFilename();
1144  $link = " <a href='{$href}' target='content'>"
1145  . ilLegacyFormElementsUtil::prepareFormOutput($solution->getTitle())
1146  . '</a> ';
1147  $template->setCurrentBlock('preview');
1148  $template->setVariable('TEXT_SOLUTION', $this->lng->txt('suggested_solution'));
1149  $template->setVariable('VALUE_SOLUTION', $link);
1150  $template->parseCurrentBlock();
1151  }
1152 
1153  $template->setVariable('TEXT_TYPE', $this->lng->txt('type'));
1154  $template->setVariable('VALUE_TYPE', $options[$solution->getType()]);
1155 
1156  $title->setHtml($template->get());
1157  $deletesolution = new ilCheckboxInputGUI('', 'deleteSuggestedSolution');
1158  $deletesolution->setOptionTitle($this->lng->txt('deleteSuggestedSolution'));
1159  $title->addSubItem($deletesolution);
1160  $form->addItem($title);
1161 
1162  if ($solution->isOfTypeFile()) {
1163  $file = new ilFileInputGUI($this->lng->txt('fileDownload'), 'file');
1164  $file->setRequired(true);
1165  $file->enableFileNameSelection('filename');
1166 
1167  if ($save && $_FILES && $_FILES['file']['tmp_name'] && $file->checkInput()) {
1168  if (!file_exists($this->object->getSuggestedSolutionPath())) {
1169  ilFileUtils::makeDirParents($this->object->getSuggestedSolutionPath());
1170  }
1171 
1173  $_FILES['file']['tmp_name'],
1174  $_FILES['file']['name'],
1175  $this->object->getSuggestedSolutionPath() . $_FILES['file']['name']
1176  );
1177  if ($res) {
1178  ilFileUtils::renameExecutables($this->object->getSuggestedSolutionPath());
1179 
1180  // remove an old file download
1181  if ($solution->getFilename()) {
1182  @unlink($this->object->getSuggestedSolutionPath() . $solution->getFilename());
1183  }
1184 
1185  $file->setValue($_FILES['file']['name']);
1186  $solution = $solution
1187  ->withFilename($_FILES['file']['name'])
1188  ->withMime($_FILES['file']['type'])
1189  ->withSize($_FILES['file']['size'])
1190  ->withTitle($this->request_data_collector->string('filename'));
1191 
1192  $this->getSuggestedSolutionsRepo()->update([$solution]);
1193 
1194  $this->tpl->setOnScreenMessage('success', $this->lng->txt('suggested_solution_added_successfully'), true);
1195  $this->ctrl->redirect($this, 'suggestedsolution');
1196  } else {
1197  // BH: $res as info string? wtf? it holds a bool or something else!!?
1198  $this->tpl->setOnScreenMessage('info', $res);
1199  }
1200  } else {
1201  if ($solution->getFilename()) {
1202  $file->setValue($solution->getFilename());
1203  $file->setFilename($solution->getTitle());
1204  }
1205  }
1206  $form->addItem($file);
1207  $hidden = new ilHiddenInputGUI('solutiontype');
1208  $hidden->setValue('file');
1209  $form->addItem($hidden);
1210  }
1211  if ($this->access->checkAccess('write', '', $this->request_data_collector->getRefId())) {
1212  $form->addCommandButton('cancelSuggestedSolution', $this->lng->txt('cancel'));
1213  $form->addCommandButton('saveSuggestedSolution', $this->lng->txt('save'));
1214  }
1215 
1216  if ($save) {
1217  if ($form->checkInput()) {
1218  if ($solution->isOfTypeFile()) {
1219  $solution = $solution->withTitle($this->request_data_collector->string('filename'));
1220  }
1221 
1222  if (!$solution->isOfTypeLink()) {
1223  $this->getSuggestedSolutionsRepo()->update([$solution]);
1224  }
1225 
1226  $this->tpl->setOnScreenMessage('success', $this->lng->txt('msg_obj_modified'), true);
1227  $this->ctrl->redirect($this, 'suggestedsolution');
1228  }
1229  }
1230 
1231  $output = $form->getHTML();
1232  }
1233 
1234  $savechange = $this->ctrl->getCmd() === 'saveSuggestedSolutionType';
1235 
1236  $changeoutput = '';
1237  if ($this->access->checkAccess('write', '', $this->request_data_collector->getRefId())) {
1238  $formchange = new ilPropertyFormGUI();
1239  $formchange->setFormAction($this->ctrl->getFormAction($this));
1240 
1241  $title = $solution ? $this->lng->txt('changeSuggestedSolution') : $this->lng->txt('addSuggestedSolution');
1242  $formchange->setTitle($title);
1243  $formchange->setMultipart(false);
1244  $formchange->setTableWidth('100%');
1245  $formchange->setId('suggestedsolution');
1246 
1247  $solutiontype = new ilRadioGroupInputGUI($this->lng->txt('suggestedSolutionType'), 'solutiontype');
1248  foreach ($options as $opt_value => $opt_caption) {
1249  $solutiontype->addOption(new ilRadioOption($opt_caption, $opt_value));
1250  }
1251  if ($solution) {
1252  $solutiontype->setValue($solution->getType());
1253  }
1254  $solutiontype->setRequired(true);
1255  $formchange->addItem($solutiontype);
1256 
1257  $formchange->addCommandButton('saveSuggestedSolutionType', $this->lng->txt('select'));
1258 
1259  if ($savechange) {
1260  $formchange->checkInput();
1261  }
1262  $changeoutput = $formchange->getHTML();
1263  }
1264  $this->tabs_gui->activateTab('suggested_solution');
1265  $this->tpl->setVariable('ADM_CONTENT', $changeoutput . $output);
1266  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$res
Definition: ltiservices.php:69
This class represents a file property in a property form.
addOption(ilRadioOption $a_option)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static prepareFormOutput($a_str, bool $a_strip=false)
static makeDirParents(string $a_dir)
Create a new directory and all parent directories.
static renameExecutables(string $a_dir)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a property in a property form.
static moveUploadedFile(string $a_file, string $a_name, string $a_target, bool $a_raise_errors=true, string $a_mode="move_uploaded")
move uploaded file
setRequired(bool $a_required)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ syncQuestion()

assQuestionGUI::syncQuestion ( )

Definition at line 690 of file class.assQuestionGUI.php.

References ILIAS\Repository\lng().

690  : void
691  {
692  $original_id = $this->object->getOriginalId();
693  if ($original_id !== null) {
694  $this->object->syncWithOriginal();
695  $this->tpl->setOnScreenMessage('success', $this->lng->txt("msg_obj_modified"), true);
696  }
697  }
+ Here is the call graph for this function:

◆ writePostData()

assQuestionGUI::writePostData ( bool  $always = false)
protected

Evaluates a posted edit form and writes the form data in the question object.

Returns
integer A positive value, if one of the required fields wasn't set, else 0

Definition at line 551 of file class.assQuestionGUI.php.

Referenced by saveQuestion(), and saveReturn().

551  : int
552  {
553  return 0;
554  }
+ Here is the caller graph for this function:

◆ writeQuestionGenericPostData()

assQuestionGUI::writeQuestionGenericPostData ( )
protected

Definition at line 1661 of file class.assQuestionGUI.php.

References Vendor\Package\$e, $lifecycle, ilAssQuestionLifecycle\getInstance(), ILIAS\Repository\object(), setTestSpecificProperties(), and ilUtil\stripOnlySlashes().

Referenced by assOrderingQuestionGUI\uploadElementImage(), assMatchingQuestionGUI\writePostData(), assErrorTextGUI\writePostData(), assTextSubsetGUI\writePostData(), assTextQuestionGUI\writePostData(), assLongMenuGUI\writePostData(), assOrderingHorizontalGUI\writePostData(), assSingleChoiceGUI\writePostData(), assFileUploadGUI\writePostData(), assNumericGUI\writePostData(), assMultipleChoiceGUI\writePostData(), assImagemapQuestionGUI\writePostData(), assKprimChoiceGUI\writePostData(), assClozeTestGUI\writePostData(), and assOrderingQuestionGUI\writePostData().

1661  : void
1662  {
1663  $this->object->setTitle($this->request_data_collector->string('title'));
1664  $this->object->setAuthor($this->request_data_collector->string('author'));
1665  $this->object->setComment($this->request_data_collector->string('comment'));
1666 
1667  $nr_of_tries = $this->request_data_collector->int('nr_of_tries');
1668  if ($this->object->getSelfAssessmentEditingMode()) {
1669  $this->object->setNrOfTries($nr_of_tries);
1670  }
1671 
1672  try {
1674  $this->request_data_collector->string('lifecycle')
1675  );
1676  $this->object->setLifecycle($lifecycle);
1678  }
1679 
1680  $this->object->setQuestion(
1682  $this->request_data_collector->string('question')
1683  )
1684  );
1685 
1686  $this->setTestSpecificProperties();
1687  }
$lifecycle
static stripOnlySlashes(string $a_str)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $access

ilAccessHandler assQuestionGUI::$access
private

Definition at line 104 of file class.assQuestionGUI.php.

◆ $component_repository

ilComponentRepository assQuestionGUI::$component_repository
private

Definition at line 110 of file class.assQuestionGUI.php.

◆ $context_allows_sync_to_pool

bool assQuestionGUI::$context_allows_sync_to_pool = false
private

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

◆ $copy_to_existing_pool_on_save

int assQuestionGUI::$copy_to_existing_pool_on_save = null
private

Definition at line 153 of file class.assQuestionGUI.php.

Referenced by getCopyToExistingPoolOnSave().

◆ $copy_to_new_pool_on_save

string assQuestionGUI::$copy_to_new_pool_on_save = null
private

Definition at line 154 of file class.assQuestionGUI.php.

Referenced by getCopyToNewPoolOnSave().

◆ $ctrl

ilCtrl assQuestionGUI::$ctrl
protected

Definition at line 113 of file class.assQuestionGUI.php.

◆ $db

ilDBInterface assQuestionGUI::$db
private

Definition at line 108 of file class.assQuestionGUI.php.

◆ $editContext

string assQuestionGUI::$editContext = self::EDIT_CONTEXT_AUTHORING
private

Definition at line 144 of file class.assQuestionGUI.php.

Referenced by getEditContext(), and setEditContext().

◆ $editForm

ilPropertyFormGUI assQuestionGUI::$editForm = null
protected

Definition at line 148 of file class.assQuestionGUI.php.

Referenced by buildEditForm(), and assLongMenuGUI\editQuestion().

◆ $error

assQuestionGUI::$error
protected

Definition at line 120 of file class.assQuestionGUI.php.

◆ $errormessage

string assQuestionGUI::$errormessage
protected

Definition at line 121 of file class.assQuestionGUI.php.

Referenced by addErrorMessage(), getErrorMessage(), and setErrorMessage().

◆ $forms_helper

readonly ilTestLegacyFormsHelper assQuestionGUI::$forms_helper
protected

Definition at line 149 of file class.assQuestionGUI.php.

◆ $ilHelp

ilHelpGUI assQuestionGUI::$ilHelp
private

Definition at line 103 of file class.assQuestionGUI.php.

◆ $ilObjDataCache

ilObjectDataCache assQuestionGUI::$ilObjDataCache
private

Definition at line 102 of file class.assQuestionGUI.php.

◆ $lng

ilLanguage assQuestionGUI::$lng
protected

Definition at line 117 of file class.assQuestionGUI.php.

◆ $logger

ilLogger assQuestionGUI::$logger
protected

Definition at line 109 of file class.assQuestionGUI.php.

◆ $move_after_question_with_id

int assQuestionGUI::$move_after_question_with_id = null
private

Definition at line 156 of file class.assQuestionGUI.php.

Referenced by getMoveAfterQuestionId().

◆ $navigationGUI

ilTestQuestionNavigationGUI assQuestionGUI::$navigationGUI = null
private

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

Referenced by getNavigationGUI(), and setNavigationGUI().

◆ $notes_gui

GUIService assQuestionGUI::$notes_gui
protected

Definition at line 112 of file class.assQuestionGUI.php.

◆ $object

assQuestion assQuestionGUI::$object
protected

◆ $parent_type_is_lm

bool assQuestionGUI::$parent_type_is_lm = false
protected

Definition at line 151 of file class.assQuestionGUI.php.

Referenced by isInLearningModuleContext().

◆ $presentationContext

string assQuestionGUI::$presentationContext = null
private

Definition at line 140 of file class.assQuestionGUI.php.

Referenced by getPresentationContext(), and setPresentationContext().

◆ $preview_session

ilAssQuestionPreviewSession assQuestionGUI::$preview_session = null
private

Definition at line 114 of file class.assQuestionGUI.php.

Referenced by getPreviewSession(), and setPreviewSession().

◆ $previousSolutionPrefilled

bool assQuestionGUI::$previousSolutionPrefilled = false
private

◆ $question_count

int assQuestionGUI::$question_count
protected

question count in test

Definition at line 127 of file class.assQuestionGUI.php.

Referenced by getQuestionCount().

◆ $question_sync_modal

string assQuestionGUI::$question_sync_modal = ''
private

Definition at line 158 of file class.assQuestionGUI.php.

Referenced by renderEditForm().

◆ $questionActionCmd

string assQuestionGUI::$questionActionCmd = 'handleQuestionAction'
private

Definition at line 133 of file class.assQuestionGUI.php.

Referenced by getQuestionActionCmd(), and setQuestionActionCmd().

◆ $questionHeaderBlockBuilder

ilQuestionHeaderBlockBuilder assQuestionGUI::$questionHeaderBlockBuilder
private

◆ $questionrepository

GeneralQuestionPropertiesRepository assQuestionGUI::$questionrepository
protected

Definition at line 111 of file class.assQuestionGUI.php.

◆ $rbacsystem

ilRbacSystem assQuestionGUI::$rbacsystem
private

Definition at line 106 of file class.assQuestionGUI.php.

◆ $refinery

Refinery assQuestionGUI::$refinery
protected

Definition at line 118 of file class.assQuestionGUI.php.

◆ $renderPurpose

string assQuestionGUI::$renderPurpose = self::RENDER_PURPOSE_PLAYBACK
private

Definition at line 142 of file class.assQuestionGUI.php.

Referenced by getRenderPurpose(), and setRenderPurpose().

◆ $request_data_collector

readonly RequestDataCollector assQuestionGUI::$request_data_collector
protected

Definition at line 150 of file class.assQuestionGUI.php.

◆ $sequence_no

int assQuestionGUI::$sequence_no
protected

sequence number in test

Definition at line 124 of file class.assQuestionGUI.php.

Referenced by getSequenceNumber().

◆ $suggestedsolution_repo

SuggestedSolutionsDatabaseRepository assQuestionGUI::$suggestedsolution_repo = null
protected

Definition at line 1932 of file class.assQuestionGUI.php.

Referenced by getSuggestedSolutionsRepo().

◆ $tabs_gui

ilTabsGUI assQuestionGUI::$tabs_gui
private

Definition at line 105 of file class.assQuestionGUI.php.

◆ $targetGuiClass

assQuestionGUI::$targetGuiClass = null
private

Definition at line 131 of file class.assQuestionGUI.php.

Referenced by getTargetGuiClass(), and setTargetGuiClass().

◆ $taxonomyIds

assQuestionGUI::$taxonomyIds = []
private

Definition at line 129 of file class.assQuestionGUI.php.

Referenced by getTaxonomyIds(), and setTaxonomyIds().

◆ $tpl

◆ $tree

ilTree assQuestionGUI::$tree
private

Definition at line 107 of file class.assQuestionGUI.php.

◆ $ui

assQuestionGUI::$ui
private

Definition at line 101 of file class.assQuestionGUI.php.

◆ ADDITIONAL_CMDS_NEEDING_EXISTING_QST

const assQuestionGUI::ADDITIONAL_CMDS_NEEDING_EXISTING_QST
protected
Initial value:
= [
'uploadchoice',
'uploadImage',
'changeToPictures',
'uploadElementImage',
'uploadterms',
'uploaddefintions'
]

There are functions that need an existing question.

As we stop creating useless question stubs with ILIAS 10, we need to know when we absolutly need one. This is not the right solution, but it is a first step.

Todo:
We should remove the need for any separate upload commands in questions.

Definition at line 92 of file class.assQuestionGUI.php.

◆ ALLOWED_PLAIN_TEXT_TAGS

const assQuestionGUI::ALLOWED_PLAIN_TEXT_TAGS = "<em>, <strong>"

sk - 12.05.2023: This const is also used in ilKprimChoiceWizardInputGUI.

Don't ask, but I didn't find an easy fix without undoing two more question types.

Definition at line 42 of file class.assQuestionGUI.php.

Referenced by ilKprimChoiceWizardInputGUI\cleanupAnswerText().

◆ CMD_SAVE

const assQuestionGUI::CMD_SAVE = 'save'
private

Definition at line 74 of file class.assQuestionGUI.php.

◆ CMD_SAVE_AND_RETURN

const assQuestionGUI::CMD_SAVE_AND_RETURN = 'saveReturn'
private

Definition at line 75 of file class.assQuestionGUI.php.

◆ CMD_SYNC_QUESTION

const assQuestionGUI::CMD_SYNC_QUESTION = 'syncQuestion'
private

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

◆ CMD_SYNC_QUESTION_AND_RETURN

const assQuestionGUI::CMD_SYNC_QUESTION_AND_RETURN = 'syncQuestionReturn'

Definition at line 78 of file class.assQuestionGUI.php.

Referenced by ilAssQuestionPreviewGUI\showCmd().

◆ CORRECTNESS_MOSTLY_OK

const assQuestionGUI::CORRECTNESS_MOSTLY_OK = 1

Definition at line 53 of file class.assQuestionGUI.php.

◆ CORRECTNESS_NOT_OK

const assQuestionGUI::CORRECTNESS_NOT_OK = 0

Definition at line 52 of file class.assQuestionGUI.php.

◆ CORRECTNESS_OK

const assQuestionGUI::CORRECTNESS_OK = 2

Definition at line 54 of file class.assQuestionGUI.php.

◆ EDIT_CONTEXT_ADJUSTMENT

const assQuestionGUI::EDIT_CONTEXT_ADJUSTMENT = 'adjustment'

Definition at line 63 of file class.assQuestionGUI.php.

◆ EDIT_CONTEXT_AUTHORING

const assQuestionGUI::EDIT_CONTEXT_AUTHORING = 'authoring'

◆ FORM_ENCODING_MULTIPART

const assQuestionGUI::FORM_ENCODING_MULTIPART = 'multipart/form-data'

Definition at line 50 of file class.assQuestionGUI.php.

◆ FORM_ENCODING_URLENCODE

const assQuestionGUI::FORM_ENCODING_URLENCODE = 'application/x-www-form-urlencoded'

Definition at line 49 of file class.assQuestionGUI.php.

◆ FORM_MODE_ADJUST

const assQuestionGUI::FORM_MODE_ADJUST = 'adjust'

Definition at line 47 of file class.assQuestionGUI.php.

◆ FORM_MODE_EDIT

const assQuestionGUI::FORM_MODE_EDIT = 'edit'

Definition at line 46 of file class.assQuestionGUI.php.

◆ HAS_SPECIAL_QUESTION_COMMANDS

const assQuestionGUI::HAS_SPECIAL_QUESTION_COMMANDS = false
protected

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

◆ PRESENTATION_CONTEXT_RESULTS

const assQuestionGUI::PRESENTATION_CONTEXT_RESULTS = 'pContextResults'

Definition at line 66 of file class.assQuestionGUI.php.

◆ PRESENTATION_CONTEXT_TEST

const assQuestionGUI::PRESENTATION_CONTEXT_TEST = 'pContextTest'

◆ QUESTION_SAVE_CMDS

const assQuestionGUI::QUESTION_SAVE_CMDS
protected
Initial value:
= [
self::CMD_SAVE,
self::CMD_SAVE_AND_RETURN
]

Definition at line 80 of file class.assQuestionGUI.php.

◆ RENDER_PURPOSE_DEMOPLAY

const assQuestionGUI::RENDER_PURPOSE_DEMOPLAY = 'renderPurposeDemoplay'

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

Referenced by ilAssQuestionPreviewGUI\initQuestion().

◆ RENDER_PURPOSE_INPUT_VALUE

const assQuestionGUI::RENDER_PURPOSE_INPUT_VALUE = 'renderPurposeInputValue'

Definition at line 60 of file class.assQuestionGUI.php.

◆ RENDER_PURPOSE_PLAYBACK

const assQuestionGUI::RENDER_PURPOSE_PLAYBACK = 'renderPurposePlayback'

Definition at line 56 of file class.assQuestionGUI.php.

◆ RENDER_PURPOSE_PREVIEW

◆ RENDER_PURPOSE_PRINT_PDF

const assQuestionGUI::RENDER_PURPOSE_PRINT_PDF = 'renderPurposePrintPdf'

Definition at line 59 of file class.assQuestionGUI.php.

◆ SESSION_PREVIEW_DATA_BASE_INDEX

const assQuestionGUI::SESSION_PREVIEW_DATA_BASE_INDEX = 'ilAssQuestionPreviewAnswers'

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

◆ SUGGESTED_SOLUTION_COMMANDS_CANCEL

const assQuestionGUI::SUGGESTED_SOLUTION_COMMANDS_CANCEL = 'cancelSuggestedSolution'
protected

Definition at line 70 of file class.assQuestionGUI.php.

◆ SUGGESTED_SOLUTION_COMMANDS_DEFAULT

const assQuestionGUI::SUGGESTED_SOLUTION_COMMANDS_DEFAULT = 'suggestedsolution'
protected

Definition at line 72 of file class.assQuestionGUI.php.

◆ SUGGESTED_SOLUTION_COMMANDS_SAVE

const assQuestionGUI::SUGGESTED_SOLUTION_COMMANDS_SAVE = 'saveSuggestedSolution'
protected

Definition at line 71 of file class.assQuestionGUI.php.


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