ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilTestQuestionSideListGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4
12{
16 protected $ctrl;
17
21 protected $lng;
22
26 private $targetGUI;
27
32
37
42
46 private $disabled;
47
53 {
54 $this->ctrl = $ctrl;
55 $this->lng = $lng;
56
57 $this->questionSummaryData = array();
58 $this->currentSequenceElement = null;
59 $this->disabled = false;
60 }
61
65 public function getTargetGUI()
66 {
67 return $this->targetGUI;
68 }
69
73 public function setTargetGUI($targetGUI)
74 {
75 $this->targetGUI = $targetGUI;
76 }
77
81 public function getQuestionSummaryData()
82 {
84 }
85
90 {
91 $this->questionSummaryData = $questionSummaryData;
92 }
93
97 public function getCurrentSequenceElement()
98 {
100 }
101
106 {
107 $this->currentSequenceElement = $currentSequenceElement;
108 }
109
114 {
116 }
117
122 {
123 $this->currentPresentationMode = $currentPresentationMode;
124 }
125
129 public function isDisabled()
130 {
131 return $this->disabled;
132 }
133
137 public function setDisabled($disabled)
138 {
139 $this->disabled = $disabled;
140 }
141
145 private function buildPanel()
146 {
147 require_once 'Services/UIComponent/Panel/classes/class.ilPanelGUI.php';
151 $panel->setHeading($this->lng->txt('list_of_questions'));
152 return $panel;
153 }
154
158 private function renderList()
159 {
160 $tpl = new ilTemplate('tpl.il_as_tst_list_of_questions_short.html', true, true, 'Modules/Test');
161
162 foreach ($this->getQuestionSummaryData() as $row) {
163 $title = ilUtil::prepareFormOutput($row['title']);
164
165 if (strlen($row['description'])) {
166 $description = " title=\"" . htmlspecialchars($row['description']) . "\" ";
167 } else {
168 $description = "";
169 }
170
171 $active = ($row['sequence'] == $this->getCurrentSequenceElement()) ? ' active' : '';
172
173 $class = (
174 $row['worked_through'] ? 'answered' . $active : 'unanswered' . $active
175 );
176
177 $headerclass = ($row['sequence'] == $this->getCurrentSequenceElement()) ? 'bold' : '';
178
179 if ($row['marked']) {
180 $tpl->setCurrentBlock("mark_icon");
181 $tpl->setVariable("ICON_SRC", ilUtil::getImagePath('marked.svg'));
182 $tpl->setVariable("ICON_TEXT", $this->lng->txt('tst_question_marked'));
183 $tpl->setVariable("ICON_CLASS", 'ilTestMarkQuestionIcon');
184 $tpl->parseCurrentBlock();
185 }
186
187 if ($this->isDisabled() || $row['disabled']) {
188 $tpl->setCurrentBlock('disabled_entry');
189 $tpl->setVariable('CLASS', $class);
190 $tpl->setVariable('HEADERCLASS', $headerclass);
191 $tpl->setVariable('ITEM', $title);
192 $tpl->setVariable('DESCRIPTION', $description);
193 $tpl->parseCurrentBlock();
194 } else {
195 // fau: testNav - show mark icon in side list
196 // fau.
197 $tpl->setCurrentBlock('linked_entry');
198 $tpl->setVariable('HREF', $this->buildLink($row['sequence']));
199 $tpl->setVariable('NEXTCMD', ilTestPlayerCommands::SHOW_QUESTION);
200 $tpl->setVariable('NEXTSEQ', $row['sequence']);
201 $tpl->setVariable('HEADERCLASS', $headerclass);
202 $tpl->setVariable('CLASS', $class);
203 $tpl->setVariable('ITEM', $title);
204 $tpl->setVariable("DESCRIPTION", $description);
205 $tpl->parseCurrentBlock();
206 }
207
208 $tpl->setCurrentBlock('item');
209 }
210
211 return $tpl->get();
212 }
213
217 public function getHTML()
218 {
219 $panel = $this->buildPanel();
220 $panel->setBody($this->renderList());
221 return $panel->getHTML();
222 }
223
228 private function buildLink($sequenceElement)
229 {
230 $this->ctrl->setParameter(
231 $this->getTargetGUI(),
232 'pmode',
233 ''
234 );
235
236 $this->ctrl->setParameter(
237 $this->getTargetGUI(),
238 'sequence',
239 $sequenceElement
240 );
241
242 $href = $this->ctrl->getLinkTarget($this->getTargetGUI(), ilTestPlayerCommands::SHOW_QUESTION);
243
244 $this->ctrl->setParameter(
245 $this->getTargetGUI(),
246 'pmode',
248 );
249 $this->ctrl->setParameter(
250 $this->getTargetGUI(),
251 'sequence',
253 );
254 return $href;
255 }
256}
disabled()
Example showing how to plug a disabled checkbox into a form.
Definition: disabled.php:5
An exception for terminatinating execution or to throw for unit testing.
This class provides processing control methods.
language handling
const PANEL_STYLE_SECONDARY
const HEADING_STYLE_SUBHEADING
static getInstance()
Get instance.
special template class to simplify handling of ITX/PEAR
__construct(ilCtrl $ctrl, ilLanguage $lng)
setCurrentSequenceElement($currentSequenceElement)
setCurrentPresentationMode($currentPresentationMode)
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
if(isset($_FILES['img_file']) &&is_array($_FILES['img_file'])) $panel
Definition: imgupload.php:138
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41