ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilAssQuestionHintRequestGUI Class Reference
+ Inheritance diagram for ilAssQuestionHintRequestGUI:
+ Collaboration diagram for ilAssQuestionHintRequestGUI:

Public Member Functions

 __construct ($parentGUI, $parentCMD, assQuestionGUI $questionGUI, $questionHintTracking)
 Constructor. More...
 
 executeCommand ()
 Execute Command. More...
 
 getHintPresentationLinkTarget ($hintId, $xmlStyle=true)
 returns the link target for hint request presentation More...
 
- Public Member Functions inherited from ilAssQuestionHintAbstractGUI
 __construct (assQuestionGUI $questionGUI)
 Constructor. More...
 

Data Fields

const CMD_SHOW_LIST = 'showList'
 command constants More...
 
const CMD_SHOW_HINT = 'showHint'
 
const CMD_CONFIRM_REQUEST = 'confirmRequest'
 
const CMD_PERFORM_REQUEST = 'performRequest'
 
const CMD_BACK_TO_QUESTION = 'backToQuestion'
 

Protected Attributes

 $parentGUI = null
 
 $parentCMD = null
 
 $questionHintTracking = null
 
- Protected Attributes inherited from ilAssQuestionHintAbstractGUI
 $questionGUI = null
 
 $questionOBJ = null
 

Private Member Functions

 showListCmd ()
 shows the list of allready requested hints More...
 
 showHintCmd ()
 shows an allready requested hint More...
 
 confirmRequestCmd ()
 shows a confirmation screen for a hint request More...
 
 performRequestCmd ()
 Performs a hint request and invokes the (re-)saving the question solution. More...
 
 backToQuestionCmd ()
 gateway command method to jump back to test session output More...
 
 populateContent ($content)
 populates the rendered questin hint relating output content to global template depending on possibly active kiosk mode More...
 
 isQuestionPreview ()
 

Detailed Description

Definition at line 18 of file class.ilAssQuestionHintRequestGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilAssQuestionHintRequestGUI::__construct (   $parentGUI,
  $parentCMD,
assQuestionGUI  $questionGUI,
  $questionHintTracking 
)

Member Function Documentation

◆ backToQuestionCmd()

ilAssQuestionHintRequestGUI::backToQuestionCmd ( )
private

gateway command method to jump back to test session output

@access private @global ilCtrl $ilCtrl

Definition at line 254 of file class.ilAssQuestionHintRequestGUI.php.

255 {
256 global $ilCtrl;
257
258 $ilCtrl->redirect($this->parentGUI, $this->parentCMD);
259 }
global $ilCtrl
Definition: ilias.php:18

References $ilCtrl.

◆ confirmRequestCmd()

ilAssQuestionHintRequestGUI::confirmRequestCmd ( )
private

shows a confirmation screen for a hint request

@access private @global ilCtrl $ilCtrl @global ilTemplate $tpl @global ilLanguage $lng

Definition at line 183 of file class.ilAssQuestionHintRequestGUI.php.

184 {
185 global $ilCtrl, $tpl, $lng;
186
187 try {
188 $nextRequestableHint = $this->questionHintTracking->getNextRequestableHint();
190 $ilCtrl->redirect($this, self::CMD_BACK_TO_QUESTION);
191 }
192
193 require_once 'Services/Utilities/classes/class.ilConfirmationGUI.php';
194
195 $confirmation = new ilConfirmationGUI();
196
198 $ilCtrl->getFormAction($this),
199 "hintId={$nextRequestableHint->getId()}"
200 );
201
202 $confirmation->setFormAction($formAction);
203
204 $confirmation->setConfirm($lng->txt('tst_question_hints_confirm_request'), self::CMD_PERFORM_REQUEST);
205 $confirmation->setCancel($lng->txt('tst_question_hints_cancel_request'), self::CMD_BACK_TO_QUESTION);
206
207 $confirmation->setHeaderText(sprintf(
208 $lng->txt('tst_question_hints_request_confirmation'),
209 $nextRequestableHint->getIndex(),
210 $nextRequestableHint->getPoints()
211 ));
212
213 $this->populateContent($ilCtrl->getHtml($confirmation));
214 }
sprintf('%.4f', $callTime)
$tpl
Definition: ilias.php:10
populateContent($content)
populates the rendered questin hint relating output content to global template depending on possibly ...
Confirmation screen class.
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
global $lng
Definition: privfeed.php:17

References $ilCtrl, $lng, $tpl, ilUtil\appendUrlParameterString(), populateContent(), and sprintf.

+ Here is the call graph for this function:

◆ executeCommand()

ilAssQuestionHintRequestGUI::executeCommand ( )

Execute Command.

@access public @global ilCtrl $ilCtrl

Returns
mixed

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

64 {
65 global $ilCtrl, $ilTabs, $lng;
66
67 $cmd = $ilCtrl->getCmd(self::CMD_SHOW_LIST);
68 $nextClass = $ilCtrl->getNextClass($this);
69
70 switch ($nextClass) {
71 case 'ilasshintpagegui':
72
73 require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionHintPageObjectCommandForwarder.php';
74 $forwarder = new ilAssQuestionHintPageObjectCommandForwarder($this->questionOBJ, $ilCtrl, $ilTabs, $lng);
76 $forwarder->forward();
77 break;
78
79 default:
80
81 $cmd .= 'Cmd';
82 return $this->$cmd();
83 break;
84 }
85 }

References $ilCtrl, $lng, and ilAssQuestionHintPageObjectCommandForwarder\PRESENTATION_MODE_REQUEST.

◆ getHintPresentationLinkTarget()

ilAssQuestionHintRequestGUI::getHintPresentationLinkTarget (   $hintId,
  $xmlStyle = true 
)

returns the link target for hint request presentation

@global ilCtrl $ilCtrl

Parameters
integer$hintId
boolean$xmlStyle
Returns
string $linkTarget

Definition at line 308 of file class.ilAssQuestionHintRequestGUI.php.

309 {
310 global $ilCtrl;
311
312 if ($this->questionOBJ->isAdditionalContentEditingModePageObject()) {
313 $ilCtrl->setParameterByClass('ilasshintpagegui', 'hint_id', $hintId);
314 $linkTarget = $ilCtrl->getLinkTargetByClass('ilAssHintPageGUI', '', '', false, $xmlStyle);
315 } else {
316 $ilCtrl->setParameter($this, 'hintId', $hintId);
317 $linkTarget = $ilCtrl->getLinkTarget($this, self::CMD_SHOW_HINT, '', false, $xmlStyle);
318 }
319
320 return $linkTarget;
321 }

References $ilCtrl.

Referenced by performRequestCmd().

+ Here is the caller graph for this function:

◆ isQuestionPreview()

ilAssQuestionHintRequestGUI::isQuestionPreview ( )
private

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

292 {
293 if ($this->questionHintTracking instanceof ilAssQuestionPreviewHintTracking) {
294 return true;
295 }
296
297 return false;
298 }

Referenced by populateContent().

+ Here is the caller graph for this function:

◆ performRequestCmd()

ilAssQuestionHintRequestGUI::performRequestCmd ( )
private

Performs a hint request and invokes the (re-)saving the question solution.

Redirects to local showHint command

@access private @global ilCtrl $ilCtrl

Definition at line 223 of file class.ilAssQuestionHintRequestGUI.php.

224 {
225 global $ilCtrl;
226
227 if (!isset($_GET['hintId']) || !(int) $_GET['hintId']) {
228 throw new ilTestException('no hint id given');
229 }
230
231 try {
232 $nextRequestableHint = $this->questionHintTracking->getNextRequestableHint();
234 $ilCtrl->redirect($this, self::CMD_BACK_TO_QUESTION);
235 }
236
237 if ($nextRequestableHint->getId() != (int) $_GET['hintId']) {
238 throw new ilTestException('given hint id does not relate to the next requestable hint');
239 }
240
241 $this->questionHintTracking->storeRequest($nextRequestableHint);
242
243 $redirectTarget = $this->getHintPresentationLinkTarget($nextRequestableHint->getId(), false);
244
245 ilUtil::redirect($redirectTarget);
246 }
$_GET["client_id"]
getHintPresentationLinkTarget($hintId, $xmlStyle=true)
returns the link target for hint request presentation
Base Exception for all Exceptions relating to Modules/Test.
static redirect($a_script)

References $_GET, $ilCtrl, getHintPresentationLinkTarget(), and ilUtil\redirect().

+ Here is the call graph for this function:

◆ populateContent()

ilAssQuestionHintRequestGUI::populateContent (   $content)
private

populates the rendered questin hint relating output content to global template depending on possibly active kiosk mode

@global ilTemplate $tpl

Parameters
string$content

Definition at line 268 of file class.ilAssQuestionHintRequestGUI.php.

269 {
270 global $tpl;
271
272 if (!$this->isQuestionPreview() && $this->parentGUI->object->getKioskMode()) {
273 $tpl->setBodyClass('kiosk');
274 $tpl->setAddFooter(false);
275
276 $tpl->addBlockFile(
277 'CONTENT',
278 'content',
279 'tpl.il_tst_question_hints_kiosk_page.html',
280 'Modules/TestQuestionPool'
281 );
282
283 $tpl->setVariable('KIOSK_HEAD', $this->parentGUI->getKioskHead());
284
285 $tpl->setVariable('KIOSK_CONTENT', $content);
286 } else {
287 $tpl->setContent($content);
288 }
289 }

References $tpl, and isQuestionPreview().

Referenced by confirmRequestCmd(), showHintCmd(), and showListCmd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showHintCmd()

ilAssQuestionHintRequestGUI::showHintCmd ( )
private

shows an allready requested hint

@access private @global ilCtrl $ilCtrl @global ilTemplate $tpl @global ilLanguage $lng

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

119 {
120 global $ilCtrl, $tpl, $lng;
121
122 if (!isset($_GET['hintId']) || !(int) $_GET['hintId']) {
123 throw new ilTestException('no hint id given');
124 }
125
126 $isRequested = $this->questionHintTracking->isRequested((int) $_GET['hintId']);
127
128 if (!$isRequested) {
129 throw new ilTestException('hint with given id is not yet requested for given testactive and testpass');
130 }
131
132 $questionHint = ilAssQuestionHint::getInstanceById((int) $_GET['hintId']);
133
134 require_once 'Services/Utilities/classes/class.ilUtil.php';
135 require_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
136 require_once 'Services/Form/classes/class.ilNonEditableValueGUI.php';
137
138 // build form
139
140 $form = new ilPropertyFormGUI();
141
142 $form->setFormAction($ilCtrl->getFormAction($this));
143
144 $form->setTableWidth('100%');
145
146 $form->setTitle(sprintf(
147 $lng->txt('tst_question_hints_form_header_edit'),
148 $questionHint->getIndex(),
149 $this->questionOBJ->getTitle()
150 ));
151
152 $form->addCommandButton(self::CMD_BACK_TO_QUESTION, $lng->txt('tst_question_hints_back_to_question'));
153
154 $numExistingRequests = $this->questionHintTracking->getNumExistingRequests();
155
156 if ($numExistingRequests > 1) {
157 $form->addCommandButton(self::CMD_SHOW_LIST, $lng->txt('button_show_requested_question_hints'));
158 }
159
160 // form input: hint text
161
162 $nonEditableHintText = new ilNonEditableValueGUI($lng->txt('tst_question_hints_form_label_hint_text'), 'hint_text', true);
163 $nonEditableHintText->setValue(ilUtil::prepareTextareaOutput($questionHint->getText(), true));
164 $form->addItem($nonEditableHintText);
165
166 // form input: hint points
167
168 $nonEditableHintPoints = new ilNonEditableValueGUI($lng->txt('tst_question_hints_form_label_hint_points'), 'hint_points');
169 $nonEditableHintPoints->setValue($questionHint->getPoints());
170 $form->addItem($nonEditableHintPoints);
171
172 $this->populateContent($ilCtrl->getHtml($form));
173 }
static getInstanceById($hintId)
creates a hint object instance, loads the persisted hint dataset identified by passed hint id from da...
This class represents a non editable value in a property form.
This class represents a property form user interface.
static prepareTextareaOutput($txt_output, $prepare_for_latex_output=false, $omitNl2BrWhenTextArea=false)
Prepares a string for a text area output where latex code may be in it If the text is HTML-free,...
if(isset($_POST['submit'])) $form

References $_GET, $form, $ilCtrl, $lng, $tpl, ilAssQuestionHint\getInstanceById(), populateContent(), ilUtil\prepareTextareaOutput(), and sprintf.

+ Here is the call graph for this function:

◆ showListCmd()

ilAssQuestionHintRequestGUI::showListCmd ( )
private

shows the list of allready requested hints

@access private

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

93 {
94 global $ilCtrl, $tpl;
95
96 require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionHintsTableGUI.php';
97
98 $questionHintList = $this->questionHintTracking->getRequestedHintsList();
99
101 $this->questionOBJ,
102 $questionHintList,
103 $this,
104 self::CMD_SHOW_LIST
105 );
106
107 $this->populateContent($ilCtrl->getHtml($table));
108 }
if(empty($password)) $table
Definition: pwgen.php:24

References $ilCtrl, $table, $tpl, and populateContent().

+ Here is the call graph for this function:

Field Documentation

◆ $parentCMD

ilAssQuestionHintRequestGUI::$parentCMD = null
protected

Definition at line 37 of file class.ilAssQuestionHintRequestGUI.php.

Referenced by __construct().

◆ $parentGUI

ilAssQuestionHintRequestGUI::$parentGUI = null
protected

Definition at line 32 of file class.ilAssQuestionHintRequestGUI.php.

Referenced by __construct().

◆ $questionHintTracking

ilAssQuestionHintRequestGUI::$questionHintTracking = null
protected

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

Referenced by __construct().

◆ CMD_BACK_TO_QUESTION

const ilAssQuestionHintRequestGUI::CMD_BACK_TO_QUESTION = 'backToQuestion'

◆ CMD_CONFIRM_REQUEST

const ilAssQuestionHintRequestGUI::CMD_CONFIRM_REQUEST = 'confirmRequest'

◆ CMD_PERFORM_REQUEST

const ilAssQuestionHintRequestGUI::CMD_PERFORM_REQUEST = 'performRequest'

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

◆ CMD_SHOW_HINT

const ilAssQuestionHintRequestGUI::CMD_SHOW_HINT = 'showHint'

Definition at line 24 of file class.ilAssQuestionHintRequestGUI.php.

◆ CMD_SHOW_LIST


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