45 $this->main_tpl = $DIC->ui()->mainTemplate();
46 $this->questioninfo = $DIC->testQuestionPool()->questionInfo();
59 $ilCtrl = $DIC[
'ilCtrl'];
60 $ilTabs = $DIC[
'ilTabs'];
64 $cmd = $ilCtrl->getCmd(self::CMD_SHOW_FORM);
65 $nextClass = $ilCtrl->getNextClass($this);
68 case 'ilasshintpagegui':
71 $forwarder->forward();
75 $this->
tabs->setTabActive(
'tst_question_hints_tab');
94 $ilCtrl = $DIC[
'ilCtrl'];
96 $ilToolbar = $DIC[
'ilToolbar'];
98 $ilCtrl = $DIC[
'ilCtrl'];
101 $form->setValuesByPost();
102 } elseif ($this->request->isset(
'hint_id') && (
int) $this->request->raw(
'hint_id')) {
105 if (!$questionHint->load((
int) $this->request->raw(
'hint_id'))) {
106 $this->main_tpl->setOnScreenMessage(
'failure',
'invalid hint id given: ' . (
int) $this->request->raw(
'hint_id'),
true);
115 $tpl->setContent($form->getHTML());
128 $ilCtrl = $DIC[
'ilCtrl'];
130 $ilUser = $DIC[
'ilUser'];
133 if ($this->request->isset(
'hint_id')) {
134 $questionHint->load((
int) $this->request->int(
'hint_id'));
136 $hintJustCreated =
false;
139 $questionHint->setQuestionId($this->questionOBJ->getId());
141 $questionHint->setIndex(
145 $hintJustCreated =
true;
149 if ($form->checkInput()) {
150 $questionHint->setText($form->getInput(
'hint_text'));
151 $questionHint->setPoints($form->getInput(
'hint_points'));
153 $questionHint->save();
154 $this->main_tpl->setOnScreenMessage(
'success',
$lng->txt(
'tst_question_hints_form_saved_msg'),
true);
156 if (!$this->questionOBJ->isAdditionalContentEditingModePageObject()) {
157 $this->questionOBJ->updateTimestamp();
160 $originalexists = $this->questioninfo->questionExistsInPool((
int) $this->questionOBJ->getOriginalId());
161 if ($this->request->raw(
'calling_test') && $originalexists &&
assQuestion::_isWriteable($this->questionOBJ->getOriginalId(), $ilUser->getId())) {
166 if ($hintJustCreated && $this->questionOBJ->isAdditionalContentEditingModePageObject()) {
167 $ilCtrl->setParameterByClass(
'ilasshintpagegui',
'hint_id', $questionHint->getId());
168 $ilCtrl->redirectByClass(
'ilasshintpagegui',
'edit');
174 $this->main_tpl->setOnScreenMessage(
'failure',
$lng->txt(
'tst_question_hints_form_invalid_msg'));
187 $ilCtrl = $DIC[
'ilCtrl'];
189 $ilCtrl->redirectByClass(
'ilAssQuestionHintsGUI');
203 $ilCtrl = $DIC[
'ilCtrl'];
207 $form->setTableWidth(
'100%');
209 if (!$this->questionOBJ->isAdditionalContentEditingModePageObject()) {
214 $areaInp->setRows(10);
215 $areaInp->setCols(80);
217 if (!$this->questionOBJ->getPreventRteUsage()) {
218 $areaInp->setUseRte(
true);
223 $areaInp->setRTESupport($this->questionOBJ->getId(),
'qpl',
'assessment');
225 $areaInp->addPlugin(
"latex");
226 $areaInp->addButton(
"latex");
227 $areaInp->addButton(
"pastelatex");
229 $form->addItem($areaInp);
234 $numInp =
new ilNumberInputGUI(
$lng->txt(
'tst_question_hints_form_label_hint_points'),
'hint_points');
235 $numInp->allowDecimals(
true);
236 $numInp->setRequired(
true);
239 $form->addItem($numInp);
244 $form->setTitle(sprintf(
245 $lng->txt(
'tst_question_hints_form_header_edit'),
246 $questionHint->getIndex(),
247 $this->questionOBJ->getTitleForHTMLOutput()
251 $form->addItem($hiddenInp);
253 if (!$this->questionOBJ->isAdditionalContentEditingModePageObject()) {
254 $areaInp->setValue($questionHint->getText());
257 $numInp->setValue($questionHint->getPoints());
259 $hiddenInp->setValue($questionHint->getId());
262 $form->setTitle(sprintf(
263 $lng->txt(
'tst_question_hints_form_header_create'),
264 $this->questionOBJ->getTitleForHTMLOutput()
268 if ($this->questionOBJ->isAdditionalContentEditingModePageObject()) {
269 if ($questionHint instanceof ilAssQuestionHint) {
270 $saveCmdLabel =
$lng->txt(
'tst_question_hints_form_cmd_save_points');
272 $saveCmdLabel =
$lng->txt(
'tst_question_hints_form_cmd_save_points_and_edit_page');
275 $saveCmdLabel =
$lng->txt(
'tst_question_hints_form_cmd_save');
278 $form->setFormAction($ilCtrl->getFormAction($this));
280 $form->addCommandButton(self::CMD_SAVE_FORM, $saveCmdLabel);
281 $form->addCommandButton(self::CMD_CANCEL_FORM,
$lng->txt(
'cancel'));
executeCommand()
Execute Command.
ILIAS TestQuestionPool QuestionInfoService $questioninfo
const PRESENTATION_MODE_AUTHOR
presentation mode for authoring
cancelFormCmd()
gateway command method to jump back to question hints overview
saveFormCmd()
saves the form on successfull validation and redirects to showForm command
const CMD_SHOW_LIST
command constants
__construct(assQuestionGUI $questionGUI)
static getNextIndexByQuestionId($questionId)
determines the next index to be used for a new hint that is to be added to the list of existing hints...
buildForm(ilAssQuestionHint $questionHint=null)
builds the questions hints form
Basic GUI class for assessment questions.
const CMD_SHOW_FORM
command constants
assQuestionGUI $questionGUI
This class represents a text area property in a property form.
static _isWriteable(int $question_id, int $user_id)
ilGlobalTemplateInterface $main_tpl
static _getUsedHTMLTags(string $a_module="")
Returns an array of all allowed HTML tags for text editing.
showFormCmd(ilPropertyFormGUI $form=null)
shows the form for managing a new/existing hint