ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
ilAssQuestionFeedbackEditingGUI Class Reference
+ Collaboration diagram for ilAssQuestionFeedbackEditingGUI:

Public Member Functions

 __construct (assQuestionGUI $questionGUI, ilCtrl $ctrl, ilAccessHandler $access, ilGlobalTemplateInterface $tpl, ilTabsGUI $tabs, ilLanguage $lng)
 Constructor. More...
 
 executeCommand ()
 Execute Command. More...
 
 showSyncCmd ()
 

Data Fields

const CMD_SHOW = 'showFeedbackForm'
 command constants More...
 
const CMD_SAVE = 'saveFeedbackForm'
 
const CMD_SHOW_SYNC = 'showSync'
 

Protected Member Functions

 setContentStyle ()
 Set content style. More...
 

Protected Attributes

 $questionGUI = null
 
 $questionOBJ = null
 
 $feedbackOBJ = null
 
 $ctrl = null
 
 $access = null
 
 $tpl = null
 
 $tabs = null
 
 $lng = null
 

Private Member Functions

 showFeedbackFormCmd ()
 command for rendering the feedback editing form to the content area More...
 
 saveFeedbackFormCmd ()
 command for processing the submitted feedback editing form. More...
 
 buildForm ()
 builds the feedback editing form object More...
 
 isFormSaveable ()
 returns the fact wether the feedback editing form has to be saveable or not. More...
 
 isSyncAfterSaveRequired ()
 returns the fact wether the presentation of the question sync2pool form is required after saving the form or not More...
 

Detailed Description

Definition at line 15 of file class.ilAssQuestionFeedbackEditingGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilAssQuestionFeedbackEditingGUI::__construct ( assQuestionGUI  $questionGUI,
ilCtrl  $ctrl,
ilAccessHandler  $access,
ilGlobalTemplateInterface  $tpl,
ilTabsGUI  $tabs,
ilLanguage  $lng 
)

Constructor.

public

Parameters
assQuestionGUI$questionGUI
ilCtrl$ctrl
ilAccessHandler$access
ilGlobalTemplate$tpl
ilTabsGUI$tabs
ilLanguage$lng

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

References $access, $ctrl, $lng, $questionGUI, $tabs, and $tpl.

100  {
101  $this->questionGUI = $questionGUI;
102  $this->questionOBJ = $questionGUI->object;
103  $this->feedbackOBJ = $questionGUI->object->feedbackOBJ;
104 
105  $this->ctrl = $ctrl;
106  $this->access = $access;
107  $this->tpl = $tpl;
108  $this->tabs = $tabs;
109  $this->lng = $lng;
110  }

Member Function Documentation

◆ buildForm()

ilAssQuestionFeedbackEditingGUI::buildForm ( )
private

builds the feedback editing form object

private

Returns

Definition at line 215 of file class.ilAssQuestionFeedbackEditingGUI.php.

References isFormSaveable().

Referenced by saveFeedbackFormCmd(), and showFeedbackFormCmd().

216  {
217  require_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
218 
219  $form = new ilPropertyFormGUI();
220  $form->setFormAction($this->ctrl->getFormAction($this));
221  $form->setTitle($this->lng->txt('feedback_generic'));
222  $form->setTableWidth("100%");
223  $form->setId("feedback");
224 
225  $this->feedbackOBJ->completeGenericFormProperties($form);
226  $this->feedbackOBJ->completeSpecificFormProperties($form);
227 
228  if ($this->isFormSaveable()) {
229  $form->addCommandButton(self::CMD_SAVE, $this->lng->txt("save"));
230  }
231 
232  return $form;
233  }
isFormSaveable()
returns the fact wether the feedback editing form has to be saveable or not.
This class represents a property form user interface.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilAssQuestionFeedbackEditingGUI::executeCommand ( )

Execute Command.

public

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

References $_GET, $DIC, and setContentStyle().

118  {
119  global $DIC; /* @var \ILIAS\DI\Container $DIC */
120  $ilHelp = $DIC['ilHelp']; /* @var ilHelpGUI $ilHelp */
121  $ilHelp->setScreenIdComponent('qpl');
122 
123  $cmd = $this->ctrl->getCmd(self::CMD_SHOW);
124  $nextClass = $this->ctrl->getNextClass($this);
125 
126  $this->ctrl->setParameter($this, 'q_id', (int) $_GET['q_id']);
127 
128  $this->setContentStyle();
129 
130  switch ($nextClass) {
131  case 'ilassspecfeedbackpagegui':
132  case 'ilassgenfeedbackpagegui':
133  require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionFeedbackPageObjectCommandForwarder.php';
134  $forwarder = new ilAssQuestionFeedbackPageObjectCommandForwarder($this->questionOBJ, $this->ctrl, $this->tabs, $this->lng);
135  $forwarder->forward();
136  break;
137 
138  default:
139 
140  $cmd .= 'Cmd';
141  $this->$cmd();
142  break;
143  }
144  }
$_GET["client_id"]
global $DIC
Definition: goto.php:24
+ Here is the call graph for this function:

◆ isFormSaveable()

ilAssQuestionFeedbackEditingGUI::isFormSaveable ( )
private

returns the fact wether the feedback editing form has to be saveable or not.

this depends on the additional content editing mode and the current question type, as well as on fact wether the question is writable for current user or not, or the fact if we are in self assessment mode or not

private

Returns
boolean $isFormSaveable

Definition at line 244 of file class.ilAssQuestionFeedbackEditingGUI.php.

References $_GET.

Referenced by buildForm().

245  {
246  $isAdditionalContentEditingModePageObject = $this->questionOBJ->isAdditionalContentEditingModePageObject();
247  $isSaveableInPageObjectEditingMode = $this->feedbackOBJ->isSaveableInPageObjectEditingMode();
248 
249  if ($isAdditionalContentEditingModePageObject && !$isSaveableInPageObjectEditingMode) {
250  return false;
251  }
252 
253  $hasWriteAccess = $this->access->checkAccess("write", "", $_GET['ref_id']);
254  $isSelfAssessmentEditingMode = $this->questionOBJ->getSelfAssessmentEditingMode();
255 
256  return $hasWriteAccess || $isSelfAssessmentEditingMode;
257  }
$_GET["client_id"]
+ Here is the caller graph for this function:

◆ isSyncAfterSaveRequired()

ilAssQuestionFeedbackEditingGUI::isSyncAfterSaveRequired ( )
private

returns the fact wether the presentation of the question sync2pool form is required after saving the form or not

private

Returns
boolean $isSyncAfterSaveRequired

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

References $_GET, $DIC, $ilUser, and assQuestion\_isWriteable().

Referenced by saveFeedbackFormCmd().

267  {
268  global $DIC;
269  $ilUser = $DIC['ilUser'];
270 
271  if (!$_GET["calling_test"]) {
272  return false;
273  }
274 
275  if ($this->questionOBJ->isAdditionalContentEditingModePageObject()) {
276  return false;
277  }
278 
279  if (!$this->questionOBJ->_questionExistsInPool($this->questionOBJ->original_id)) {
280  return false;
281  }
282 
283  if (!assQuestion::_isWriteable($this->questionOBJ->original_id, $ilUser->getId())) {
284  return false;
285  }
286 
287  return true;
288  }
$_GET["client_id"]
global $DIC
Definition: goto.php:24
$ilUser
Definition: imgupload.php:18
static _isWriteable($question_id, $user_id)
Returns true if the question is writeable by a certain user.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveFeedbackFormCmd()

ilAssQuestionFeedbackEditingGUI::saveFeedbackFormCmd ( )
private

command for processing the submitted feedback editing form.

first it validates the submitted values.

  • in case of successfull validation it saves the properties and redirects to either form presentation again, or to the syncWithOriginal form for question
  • in case of failed validation it renders the form with post values and error info to the content area again

private

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

References buildForm(), isSyncAfterSaveRequired(), and ilUtil\sendFailure().

184  {
185  $form = $this->buildForm();
186 
187  $form->setValuesByPost();
188 
189  if ($form->checkInput()) {
190  $this->feedbackOBJ->saveGenericFormProperties($form);
191  $this->feedbackOBJ->saveSpecificFormProperties($form);
192 
193  $this->questionOBJ->cleanupMediaObjectUsage();
194  $this->questionOBJ->updateTimestamp();
195 
196  if ($this->isSyncAfterSaveRequired()) {
197  ilUtil::sendSuccess($this->lng->txt('saved_successfully'), true);
198  $this->ctrl->redirect($this, self::CMD_SHOW_SYNC);
199  }
200 
201  ilUtil::sendSuccess($this->lng->txt('saved_successfully'), true);
202  $this->ctrl->redirect($this, self::CMD_SHOW);
203  }
204 
205  ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
206  $this->tpl->setContent($this->ctrl->getHTML($form));
207  }
buildForm()
builds the feedback editing form object
isSyncAfterSaveRequired()
returns the fact wether the presentation of the question sync2pool form is required after saving the ...
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ setContentStyle()

ilAssQuestionFeedbackEditingGUI::setContentStyle ( )
protected

Set content style.

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

References ilObjStyleSheet\getContentStylePath().

Referenced by executeCommand().

150  {
151  $this->tpl->addCss(ilObjStyleSheet::getContentStylePath(0));
152  }
static getContentStylePath($a_style_id, $add_random=true, $add_token=true)
get content style path
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showFeedbackFormCmd()

ilAssQuestionFeedbackEditingGUI::showFeedbackFormCmd ( )
private

command for rendering the feedback editing form to the content area

private

Definition at line 159 of file class.ilAssQuestionFeedbackEditingGUI.php.

References buildForm(), and ilObjStyleSheet\getContentStylePath().

160  {
161  require_once "./Services/Style/Content/classes/class.ilObjStyleSheet.php";
162  $this->tpl->setCurrentBlock("ContentStyle");
163  $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", ilObjStyleSheet::getContentStylePath(0));
164  $this->tpl->parseCurrentBlock();
165 
166  $form = $this->buildForm();
167 
168  $this->feedbackOBJ->initGenericFormProperties($form);
169  $this->feedbackOBJ->initSpecificFormProperties($form);
170 
171  $this->tpl->setContent($this->ctrl->getHTML($form));
172  }
static getContentStylePath($a_style_id, $add_random=true, $add_token=true)
get content style path
buildForm()
builds the feedback editing form object
+ Here is the call graph for this function:

◆ showSyncCmd()

ilAssQuestionFeedbackEditingGUI::showSyncCmd ( )

Definition at line 290 of file class.ilAssQuestionFeedbackEditingGUI.php.

291  {
292  $this->questionGUI->originalSyncForm('', 'true');
293  }

Field Documentation

◆ $access

ilAssQuestionFeedbackEditingGUI::$access = null
protected

Definition at line 62 of file class.ilAssQuestionFeedbackEditingGUI.php.

Referenced by __construct().

◆ $ctrl

ilAssQuestionFeedbackEditingGUI::$ctrl = null
protected

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

Referenced by __construct().

◆ $feedbackOBJ

ilAssQuestionFeedbackEditingGUI::$feedbackOBJ = null
protected

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

◆ $lng

ilAssQuestionFeedbackEditingGUI::$lng = null
protected

Definition at line 86 of file class.ilAssQuestionFeedbackEditingGUI.php.

Referenced by __construct().

◆ $questionGUI

ilAssQuestionFeedbackEditingGUI::$questionGUI = null
protected

Definition at line 30 of file class.ilAssQuestionFeedbackEditingGUI.php.

Referenced by __construct().

◆ $questionOBJ

ilAssQuestionFeedbackEditingGUI::$questionOBJ = null
protected

Definition at line 38 of file class.ilAssQuestionFeedbackEditingGUI.php.

◆ $tabs

ilAssQuestionFeedbackEditingGUI::$tabs = null
protected

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

Referenced by __construct().

◆ $tpl

ilAssQuestionFeedbackEditingGUI::$tpl = null
protected

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

Referenced by __construct().

◆ CMD_SAVE

const ilAssQuestionFeedbackEditingGUI::CMD_SAVE = 'saveFeedbackForm'

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

◆ CMD_SHOW

◆ CMD_SHOW_SYNC

const ilAssQuestionFeedbackEditingGUI::CMD_SHOW_SYNC = 'showSync'

Definition at line 22 of file class.ilAssQuestionFeedbackEditingGUI.php.


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