ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilListOfQuestionsTableGUI.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 
5 include_once('./Services/Table/classes/class.ilTable2GUI.php');
6 require_once 'Modules/Test/classes/class.ilTestPlayerCommands.php';
7 
17 {
18  protected $showPointsEnabled = false;
19  protected $showMarkerEnabled = false;
20 
21  protected $showObligationsEnabled = false;
22  protected $obligationsFilterEnabled = false;
23 
24  protected $obligationsNotAnswered = false;
25 
26  protected $finishTestButtonEnabled = false;
27 
35  public function __construct($a_parent_obj, $a_parent_cmd)
36  {
37  parent::__construct($a_parent_obj, $a_parent_cmd);
38 
39  global $DIC;
40  $lng = $DIC['lng'];
41  $ilCtrl = $DIC['ilCtrl'];
42 
43  $this->lng = $lng;
44  $this->ctrl = $ilCtrl;
45 
46  $this->setFormName('listofquestions');
47  $this->setStyle('table', 'fullwidth');
48 
49  $this->setRowTemplate("tpl.il_as_tst_list_of_questions_row.html", "Modules/Test");
50 
51  $this->setLimit(999);
52 
53  $this->setFormAction($this->ctrl->getFormAction($a_parent_obj, $a_parent_cmd));
54 
55  $this->enable('header');
56  $this->disable('sort');
57  $this->disable('select_all');
58  }
59 
60  public function init()
61  {
62  // table title
63 
64  if ($this->isObligationsFilterEnabled()) {
65  $this->setTitle($this->lng->txt('obligations_summary'));
66  } else {
67  $this->setTitle($this->lng->txt('question_summary'));
68  }
69 
70  // columns
71 
72  $this->addColumn($this->lng->txt("tst_qst_order"), 'order', '');
73  $this->addColumn($this->lng->txt("tst_question_title"), 'title', '');
74 
75  if ($this->isShowObligationsEnabled()) {
76  $this->addColumn($this->lng->txt("obligatory"), 'obligatory', '');
77  }
78 
79  $this->addColumn('', 'postponed', '');
80 
81  if ($this->isShowPointsEnabled()) {
82  $this->addColumn($this->lng->txt("tst_maximum_points"), 'points', '');
83  }
84 
85  #$this->addColumn($this->lng->txt("worked_through"),'worked_through', '');
86  $this->addColumn($this->lng->txt("answered"), 'answered', '');
87 
88  if (false && $this->isShowObligationsEnabled()) {
89  $this->addColumn($this->lng->txt("answered"), 'answered', '');
90  }
91 
92  if ($this->isShowMarkerEnabled()) {
93  $this->addColumn($this->lng->txt("tst_question_marker"), 'marked', '');
94  }
95 
96  // command buttons
97 
98  $this->addCommandButton(
100  $this->lng->txt('back')
101  );
102 
103  if (!$this->areObligationsNotAnswered() && $this->isFinishTestButtonEnabled()) {
104  $button = ilSubmitButton::getInstance();
105  $button->setCaption('finish_test');
106  $button->setCommand(ilTestPlayerCommands::FINISH_TEST);
107  $this->addCommandButtonInstance($button);
108  }
109  }
110 
118  public function fillRow($data)
119  {
120  if ($this->isShowPointsEnabled()) {
121  $this->tpl->setCurrentBlock('points');
122  $this->tpl->setVariable("POINTS", $data['points'] . '&nbsp;' . $this->lng->txt("points_short"));
123  $this->tpl->parseCurrentBlock();
124  }
125  if (strlen($data['description'])) {
126  $this->tpl->setCurrentBlock('description');
127  $this->tpl->setVariable("DESCRIPTION", ilUtil::prepareFormOutput($data['description']));
128  $this->tpl->parseCurrentBlock();
129  }
130  if ($this->isShowMarkerEnabled()) {
131  if ($data['marked']) {
132  $this->tpl->setCurrentBlock('marked_img');
133  $this->tpl->setVariable("HREF_MARKED", ilUtil::img('./templates/default/images/marked.svg', $this->lng->txt("tst_question_marked"), '24px', '24px'));
134  $this->tpl->parseCurrentBlock();
135  } else {
136  $this->tpl->touchBlock('marker');
137  }
138  }
139  if ($this->isShowObligationsEnabled()) {
140  // obligatory answer status
141  if (false) {
142  $value = '&nbsp;';
143  if ($data['isAnswered']) {
144  $value = $this->lng->txt("yes");
145  }
146  $this->tpl->setCurrentBlock('answered_col');
147  $this->tpl->setVariable('ANSWERED', $value);
148  $this->tpl->parseCurrentBlock();
149  }
150 
151  // obligatory icon
152  if ($data["obligatory"]) {
153  require_once 'Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php';
154  $OBLIGATORY = ilGlyphGUI::get(ilGlyphGUI::EXCLAMATION, $this->lng->txt('question_obligatory'));
155  } else {
156  $OBLIGATORY = '';
157  }
158  $this->tpl->setVariable("QUESTION_OBLIGATORY", $OBLIGATORY);
159  }
160 
161  $postponed = (
162  $data['postponed'] ? $this->lng->txt('postponed') : ''
163  );
164 
165  if ($data['disabled']) {
166  $this->tpl->setCurrentBlock('static_title');
167  $this->tpl->setVariable("STATIC_TITLE", ilUtil::prepareFormOutput($data['title']));
168  $this->tpl->parseCurrentBlock();
169  } else {
170  $this->ctrl->setParameter($this->parent_obj, 'sequence', $data['sequence']);
171  $this->ctrl->setParameter($this->parent_obj, 'pmode', '');
172  $href = $this->ctrl->getLinkTarget($this->parent_obj, ilTestPlayerCommands::SHOW_QUESTION);
173 
174  $this->tpl->setCurrentBlock('linked_title');
175  $this->tpl->setVariable("LINKED_TITLE", ilUtil::prepareFormOutput($data['title']));
176  $this->tpl->setVariable("HREF", $href);
177  $this->tpl->parseCurrentBlock();
178  }
179 
180  $this->tpl->setVariable("ORDER", $data['order']);
181  $this->tpl->setVariable("POSTPONED", $postponed);
182  if ($data["worked_through"]) {
183  $this->tpl->setVariable("WORKED_THROUGH", $this->lng->txt("yes"));
184  } else {
185  $this->tpl->setVariable("WORKED_THROUGH", '&nbsp;');
186  }
187  }
188 
189  public function isShowPointsEnabled()
190  {
192  }
193 
195  {
196  $this->showPointsEnabled = $showPointsEnabled;
197  }
198 
199  public function isShowMarkerEnabled()
200  {
202  }
203 
205  {
206  $this->showMarkerEnabled = $showMarkerEnabled;
207  }
208 
209  public function isShowObligationsEnabled()
210  {
212  }
213 
215  {
216  $this->showObligationsEnabled = $showObligationsEnabled;
217  }
218 
219  public function isObligationsFilterEnabled()
220  {
222  }
223 
225  {
226  $this->obligationsFilterEnabled = $obligationsFilterEnabled;
227  }
228 
229  public function areObligationsNotAnswered()
230  {
232  }
233 
235  {
236  $this->obligationsNotAnswered = $obligationsNotAnswered;
237  }
238 
242  public function isFinishTestButtonEnabled()
243  {
245  }
246 
251  {
252  $this->finishTestButtonEnabled = $finishTestButtonEnabled;
253  }
254 }
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
addCommandButtonInstance(ilButtonBase $a_button)
Add Command button instance.
setStyle($a_element, $a_style)
global $DIC
Definition: saml.php:7
setFinishTestButtonEnabled($finishTestButtonEnabled)
static get($a_glyph, $a_text="")
Get glyph html.
global $ilCtrl
Definition: ilias.php:18
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
__construct($a_parent_obj, $a_parent_cmd)
Constructor.
setObligationsNotAnswered($obligationsNotAnswered)
Class ilTable2GUI.
setShowObligationsEnabled($showObligationsEnabled)
enable($a_module_name)
enables particular modules of table
static img($a_src, $a_alt=null, $a_width="", $a_height="", $a_border=0, $a_id="", $a_class="")
Build img tag.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
disable($a_module_name)
diesables particular modules of table
setFormName($a_formname="")
Set Form name.
addColumn( $a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setObligationsFilterEnabled($obligationsFilterEnabled)
setLimit($a_limit=0, $a_default_limit=0)