ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilAssQuestionFeedbackPageObjectCommandForwarder.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionAbstractPageObjectCommandForwarder.php';
5
15{
26 {
27 parent::__construct($questionOBJ, $ctrl, $tabs, $lng);
28
29 if( !isset($_GET['feedback_id']) || !(int)$_GET['feedback_id'] )
30 {
31 ilUtil::sendFailure('invalid feedback id given: '.(int)$_GET['feedback_id'], true);
32 $this->ctrl->redirectByClass('ilAssQuestionFeedbackEditingGUI', ilAssQuestionFeedbackEditingGUI::CMD_SHOW);
33 }
34
35 if( !isset($_GET['feedback_type']) || !ilAssQuestionFeedback::isValidFeedbackPageObjectType($_GET['feedback_type']) )
36 {
37 ilUtil::sendFailure('invalid feedback type given: '.$_GET['feedback_type'], true);
38 $this->ctrl->redirectByClass('ilAssQuestionFeedbackEditingGUI', ilAssQuestionFeedbackEditingGUI::CMD_SHOW);
39 }
40 }
41
45 public function forward()
46 {
47 //$this->ensurePageObjectExists($_GET['feedback_type'], $_GET['feedback_id']);
48
49 $pageObjectGUI = $this->getPageObjectGUI($_GET['feedback_type'], $_GET['feedback_id']);
50 $pageObjectGUI->setEnabledTabs(true);
51
52 $this->tabs->setBackTarget(
53 $this->lng->txt('tst_question_feedback_back_to_feedback_form'),
54 $this->ctrl->getLinkTargetByClass('ilAssQuestionFeedbackEditingGUI', ilAssQuestionFeedbackEditingGUI::CMD_SHOW)
55 );
56
57 $this->ctrl->setParameter($pageObjectGUI, 'feedback_id', $_GET['feedback_id']);
58 $this->ctrl->setParameter($pageObjectGUI, 'feedback_type', $_GET['feedback_type']);
59
60 $this->ctrl->forwardCommand($pageObjectGUI);
61 }
62
68 function ensurePageObjectExists($pageObjectType, $pageObjectId)
69 {
70 include_once("./Modules/TestQuestionPool/classes/feedback/class.ilAssQuestionFeedback.php");
72 {
73 include_once("./Modules/TestQuestionPool/classes/feedback/class.ilAssGenFeedbackPage.php");
74 if( !ilAssGenFeedbackPage::_exists($pageObjectType, $pageObjectId) )
75 {
76 $pageObject = new ilAssGenFeedbackPage();
77 $pageObject->setParentId($this->questionOBJ->getId());
78 $pageObject->setId($pageObjectId);
79 $pageObject->createFromXML();
80 }
81 }
83 {
84 include_once("./Modules/TestQuestionPool/classes/feedback/class.ilAssSpecFeedbackPage.php");
85 if( !ilAssSpecFeedbackPage::_exists($pageObjectType, $pageObjectId) )
86 {
87 $pageObject = new ilAssSpecFeedbackPage();
88 $pageObject->setParentId($this->questionOBJ->getId());
89 $pageObject->setId($pageObjectId);
90 $pageObject->createFromXML();
91 }
92 }
93 }
94
101 function getPageObjectGUI($pageObjectType, $pageObjectId)
102 {
103 include_once("./Modules/TestQuestionPool/classes/feedback/class.ilAssQuestionFeedback.php");
105 {
106 include_once("./Modules/TestQuestionPool/classes/feedback/class.ilAssGenFeedbackPageGUI.php");
107 $pageObjectGUI = new ilAssGenFeedbackPageGUI($pageObjectId);
108 $pageObjectGUI->obj->addUpdateListener(
109 $this->questionOBJ,
110 'updateTimestamp'
111 );
112 return $pageObjectGUI;
113 }
115 {
116 include_once("./Modules/TestQuestionPool/classes/feedback/class.ilAssSpecFeedbackPageGUI.php");
117 $pageObjectGUI = new ilAssSpecFeedbackPageGUI($pageObjectId);
118 $pageObjectGUI->obj->addUpdateListener(
119 $this->questionOBJ,
120 'updateTimestamp'
121 );
122 return $pageObjectGUI;
123 }
124 }
125
126}
$_GET["client_id"]
Abstract basic class which is to be extended by the concrete assessment question type classes.
Generic feedback page GUI class.
Generic feedback page object.
ensurePageObjectExists($pageObjectType, $pageObjectId)
ensures an existing page object with giben type/id
__construct(assQuestion $questionOBJ, ilCtrl $ctrl, ilTabsGUI $tabs, ilLanguage $lng)
Constructor.
getPageObjectGUI($pageObjectType, $pageObjectId)
instantiates, initialises and returns a page object gui class
const PAGE_OBJECT_TYPE_GENERIC_FEEDBACK
type for generic feedback page objects
static isValidFeedbackPageObjectType($feedbackPageObjectType)
returns the fact wether the given page object type relates to generic or specific feedback page objec...
const PAGE_OBJECT_TYPE_SPECIFIC_FEEDBACK
type for specific feedback page objects
Specific feedback page GUI class.
Specific feedback page object.
This class provides processing control methods.
language handling
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
Tabs GUI.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.