ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilQuestionBrowserTableGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once('./Services/Table/classes/class.ilTable2GUI.php');
5require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionPreviewGUI.php';
6require_once 'Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php';
7
19{
20 protected $editable = true;
21 protected $writeAccess = false;
22 protected $totalPoints = 0;
23 protected $totalWorkingTime = '00:00:00';
24 protected $confirmdelete;
25
26 protected $taxIds = array();
27
31 protected $questionCommentingEnabled = false;
32
40 public function __construct($a_parent_obj, $a_parent_cmd, $a_write_access = false, $confirmdelete = false, $taxIds = array(), $enableCommenting = false)
41 {
42 $this->setQuestionCommentingEnabled($enableCommenting);
43
44 // Bugfix: #0019539
45 if ($confirmdelete) {
46 $this->setId("qpl_confirm_del_" . $a_parent_obj->object->getRefId());
47 } else {
48 $this->setId("qpl_qst_brows_" . $a_parent_obj->object->getRefId());
49 }
50
51 parent::__construct($a_parent_obj, $a_parent_cmd);
52
53 global $DIC;
54 $lng = $DIC['lng'];
55 $ilCtrl = $DIC['ilCtrl'];
56
57 $this->lng = $lng;
58 $this->ctrl = $ilCtrl;
59
60 $this->confirmdelete = $confirmdelete;
61 $this->setWriteAccess($a_write_access);
62 $this->taxIds = $taxIds;
63
64 $qplSetting = new ilSetting("qpl");
65
66 $this->setFormName('questionbrowser');
67 $this->setStyle('table', 'fullwidth');
68 if (!$confirmdelete) {
69 $this->addColumn('', '', '1%');
70 $this->addColumn($this->lng->txt("title"), 'title', '');
71 foreach ($this->getSelectedColumns() as $c) {
72 if (strcmp($c, 'description') == 0) {
73 $this->addColumn($this->lng->txt("description"), 'description', '');
74 }
75 if (strcmp($c, 'type') == 0) {
76 $this->addColumn($this->lng->txt("question_type"), 'ttype', '');
77 }
78 // According to mantis #12713
79 if (strcmp($c, 'points') == 0) {
80 $this->addColumn($this->lng->txt("points"), 'points', '', false, 'ilCenterForced');
81 }
82 if (strcmp($c, 'statistics') == 0) {
83 $this->addColumn($this->lng->txt('statistics'), '', '');
84 }
85 if (strcmp($c, 'author') == 0) {
86 $this->addColumn($this->lng->txt("author"), 'author', '');
87 }
88 if ($this->isQuestionCommentingEnabled() && $c == 'comments') {
89 $this->addColumn($this->lng->txt("ass_comments"), 'comments', '');
90 }
91 if (strcmp($c, 'created') == 0) {
92 $this->addColumn($this->lng->txt("create_date"), 'created', '');
93 }
94 if (strcmp($c, 'tstamp') == 0) {
95 $this->addColumn($this->lng->txt("last_update"), 'tstamp', '');
96 }
97 if (strcmp($c, 'working_time') == 0) {
98 $this->addColumn($this->lng->txt("working_time"), 'working_time', '');
99 }
100 }
101 $this->addColumn($this->lng->txt('actions'), '');
102 $this->setSelectAllCheckbox('q_id');
103 } else {
104 $this->addColumn($this->lng->txt("title"), 'title', '');
105 foreach ($this->getSelectedColumns() as $c) {
106 if (strcmp($c, 'description') == 0) {
107 $this->addColumn($this->lng->txt("description"), 'description', '');
108 }
109 if (strcmp($c, 'type') == 0) {
110 $this->addColumn($this->lng->txt("question_type"), 'ttype', '');
111 }
112 }
113 }
114
115 if ($this->getWriteAccess()) {
116 if ($confirmdelete) {
117 $this->addCommandButton('confirmDeleteQuestions', $this->lng->txt('confirm'));
118 $this->addCommandButton('cancelDeleteQuestions', $this->lng->txt('cancel'));
119 } else {
120 $this->addMultiCommand('copy', $this->lng->txt('copy'));
121 $this->addMultiCommand('move', $this->lng->txt('move'));
122 $this->addMultiCommand('exportQuestion', $this->lng->txt('export'));
123 $this->addMultiCommand('deleteQuestions', $this->lng->txt('delete'));
124 }
125 }
126
127 $this->setRowTemplate("tpl.il_as_qpl_questionbrowser_row.html", "Modules/TestQuestionPool");
128
129 $this->setFormAction($this->ctrl->getFormAction($a_parent_obj, $a_parent_cmd));
130 $this->setDefaultOrderField("title");
131 $this->setDefaultOrderDirection("asc");
132
133 $this->setShowRowsSelector(true);
134
135 if ($confirmdelete) {
136 $this->disable('sort');
137 $this->disable('select_all');
138 } else {
139 $this->enable('sort');
140 $this->enable('header');
141 $this->enable('select_all');
142 $this->setFilterCommand('filterQuestionBrowser');
143 $this->setResetCommand('resetQuestionBrowser');
144 $this->initFilter();
145 }
146
147 if ($this->isQuestionCommentingEnabled()) {
148 global $DIC; /* @var ILIAS\DI\Container $DIC */
149
150 $notesUrl = $this->ctrl->getLinkTargetByClass(
151 array("ilcommonactiondispatchergui", "ilnotegui"),
152 "",
153 "",
154 true,
155 false
156 );
157
158 ilNoteGUI::initJavascript($notesUrl, IL_NOTE_PUBLIC, $DIC->ui()->mainTemplate());
159 }
160 }
161
165 public function isQuestionCommentingEnabled() : bool
166 {
168 }
169
174 {
175 $this->questionCommentingEnabled = $questionCommentingEnabled;
176 }
177
178 protected function isCommentsColumnSelected()
179 {
180 return in_array('comments', $this->getSelectedColumns());
181 }
182
183 public function setQuestionData($questionData)
184 {
185 if ($this->isQuestionCommentingEnabled() && ($this->isCommentsColumnSelected() || $this->filter['commented'])) {
186 foreach ($questionData as $key => $data) {
187 $numComments = count(ilNote::_getNotesOfObject(
188 $this->parent_obj->object->getId(),
189 $data['question_id'],
190 'quest',
192 ));
193
194 if ($this->filter['commented'] && !$numComments) {
195 unset($questionData[$key]);
196 continue;
197 }
198
199 $questionData[$key]['comments'] = $numComments;
200 }
201 }
202
203 $this->setData($questionData);
204 }
205
206 public function getSelectableColumns()
207 {
208 global $DIC;
209 $lng = $DIC['lng'];
210 $cols["description"] = array(
211 "txt" => $lng->txt("description"),
212 "default" => true
213 );
214 $cols["type"] = array(
215 "txt" => $lng->txt("question_type"),
216 "default" => true
217 );
218 if (!$this->confirmdelete) {
219 $cols["points"] = array(
220 "txt" => $lng->txt("points"),
221 "default" => true
222 );
223 $cols["statistics"] = array(
224 "txt" => $lng->txt("statistics"),
225 "default" => true
226 );
227 $cols["author"] = array(
228 "txt" => $lng->txt("author"),
229 "default" => true
230 );
231 if ($this->isQuestionCommentingEnabled()) {
232 $cols["comments"] = array(
233 "txt" => $lng->txt("comments"),
234 "default" => true
235 );
236 }
237 $cols["created"] = array(
238 "txt" => $lng->txt("create_date"),
239 "default" => true
240 );
241 $cols["tstamp"] = array(
242 "txt" => $lng->txt("last_update"),
243 "default" => true
244 );
245 $cols["working_time"] = array(
246 "txt" => $lng->txt("working_time"),
247 "default" => true
248 );
249 }
250 return $cols;
251 }
252
256 public function initFilter()
257 {
258 global $DIC;
259 $lng = $DIC['lng'];
260 $rbacreview = $DIC['rbacreview'];
261 $ilUser = $DIC['ilUser'];
262
263 // title
264 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
265 $ti = new ilTextInputGUI($lng->txt("title"), "title");
266 $ti->setMaxLength(64);
267 $ti->setValidationRegexp('/^[^%]+$/is');
268 $ti->setSize(20);
269 $this->addFilterItem($ti);
270 $ti->readFromSession();
271 $this->filter["title"] = $ti->getValue();
272
273 // description
274 $ti = new ilTextInputGUI($lng->txt("description"), "description");
275 $ti->setMaxLength(64);
276 $ti->setSize(20);
277 $ti->setValidationRegexp('/^[^%]+$/is');
278 $this->addFilterItem($ti);
279 $ti->readFromSession();
280 $this->filter["description"] = $ti->getValue();
281
282 if (!$this->confirmdelete) {
283 // author
284 $ti = new ilTextInputGUI($lng->txt("author"), "author");
285 $ti->setMaxLength(64);
286 $ti->setSize(20);
287 $ti->setValidationRegexp('/^[^%]+$/is');
288 $this->addFilterItem($ti);
289 $ti->readFromSession();
290 $this->filter["author"] = $ti->getValue();
291 }
292 // questiontype
293 include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
294 include_once("./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php");
296 $options = array();
297 $options[""] = $lng->txt('filter_all_question_types');
298 foreach ($types as $translation => $row) {
299 $options[$row['type_tag']] = $translation;
300 }
301
302 $si = new ilSelectInputGUI($this->lng->txt("question_type"), "type");
303 $si->setOptions($options);
304 $this->addFilterItem($si);
305 $si->readFromSession();
306 $this->filter["type"] = $si->getValue();
307
308 if ($this->parent_obj->object->getShowTaxonomies()) {
309 require_once 'Services/Taxonomy/classes/class.ilTaxSelectInputGUI.php';
310
311 foreach ($this->taxIds as $taxId) {
312 if ($taxId == $this->parent_obj->object->getNavTaxonomyId()) {
313 continue;
314 }
315
316 $postvar = "tax_$taxId";
317
318 $inp = new ilTaxSelectInputGUI($taxId, $postvar, true);
319 $this->addFilterItem($inp);
320 $inp->readFromSession();
321 $this->filter[$postvar] = $inp->getValue();
322 }
323 }
324
325 // comments
326 if ($this->isQuestionCommentingEnabled()) {
327 $comments = new ilCheckboxInputGUI($lng->txt('ass_commented_questions_only'), 'commented');
328 $this->addFilterItem($comments);
329 $comments->readFromSession();
330 $this->filter['commented'] = $comments->getChecked();
331 }
332 }
333
334 public function fillHeader()
335 {
336 foreach ($this->column as $key => $column) {
337 if (strcmp($column['text'], $this->lng->txt("points")) == 0) {
338 $this->column[$key]['text'] = $this->lng->txt("points") . "&nbsp;(" . $this->totalPoints . ")";
339 } elseif (strcmp($column['text'], $this->lng->txt("working_time")) == 0) {
340 $this->column[$key]['text'] = $this->lng->txt("working_time") . "&nbsp;(" . $this->totalWorkingTime . ")";
341 }
342 }
343 parent::fillHeader();
344 }
345
353 public function fillRow($data)
354 {
355 global $DIC;
356 $ilUser = $DIC['ilUser'];
357 $ilAccess = $DIC['ilAccess'];
358 include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php";
359 include_once "./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
360 $class = strtolower(assQuestionGUI::_getGUIClassNameForId($data["question_id"]));
361 $this->ctrl->setParameterByClass("ilAssQuestionPageGUI", "q_id", $data["question_id"]);
362 $this->ctrl->setParameterByClass("ilAssQuestionPreviewGUI", "q_id", $data["question_id"]);
363 $this->ctrl->setParameterByClass($class, "q_id", $data["question_id"]);
364 $points = 0;
365
366 $actions = new ilAdvancedSelectionListGUI();
367 $actions->setId('qst' . $data["question_id"]);
368 $actions->setListTitle($this->lng->txt('actions'));
369
370 if (!$this->confirmdelete) {
371 $this->tpl->setCurrentBlock('checkbox');
372 $this->tpl->setVariable('CB_QUESTION_ID', $data["question_id"]);
373 $this->tpl->parseCurrentBlock();
374
375 if ($data["complete"] == 0) {
376 $this->tpl->setCurrentBlock("qpl_warning");
377 $this->tpl->setVariable("IMAGE_WARNING", ilUtil::getImagePath("icon_alert.svg"));
378 $this->tpl->setVariable("ALT_WARNING", $this->lng->txt("warning_question_not_complete"));
379 $this->tpl->setVariable("TITLE_WARNING", $this->lng->txt("warning_question_not_complete"));
380 $this->tpl->parseCurrentBlock();
381 } else {
382 $points = $data["points"];
383 $this->totalWorkingTime = assQuestion::sumTimesInISO8601FormatH_i_s_Extended($this->totalWorkingTime, $data['working_time']);
384 }
385 $this->totalPoints += $points;
386
387 foreach ($this->getSelectedColumns() as $c) {
388 if (strcmp($c, 'points') == 0) {
389 $this->tpl->setCurrentBlock('points');
390 $this->tpl->setVariable("QUESTION_POINTS", $points);
391 $this->tpl->parseCurrentBlock();
392 }
393 if (strcmp($c, 'statistics') == 0) {
394 $this->tpl->setCurrentBlock('statistics');
395 $this->tpl->setVariable("LINK_ASSESSMENT", $this->ctrl->getLinkTargetByClass($class, "assessment"));
396 $this->tpl->setVariable("TXT_ASSESSMENT", $this->lng->txt("statistics"));
397 include_once "./Services/Utilities/classes/class.ilUtil.php";
398 $this->tpl->setVariable("IMG_ASSESSMENT", ilUtil::getImagePath("assessment.gif", "Modules/TestQuestionPool"));
399 $this->tpl->parseCurrentBlock();
400 }
401 if (strcmp($c, 'author') == 0) {
402 $this->tpl->setCurrentBlock('author');
403 $this->tpl->setVariable("QUESTION_AUTHOR", $data["author"]);
404 $this->tpl->parseCurrentBlock();
405 }
406 if ($c == 'comments' && $this->isQuestionCommentingEnabled()) {
407 $this->tpl->setCurrentBlock('comments');
408 $this->tpl->setVariable("COMMENTS", $this->getCommentsHtml($data));
409 $this->tpl->parseCurrentBlock();
410 }
411 if (strcmp($c, 'created') == 0) {
412 $this->tpl->setCurrentBlock('created');
413 $this->tpl->setVariable('QUESTION_CREATED', ilDatePresentation::formatDate(new ilDateTime($data['created'], IL_CAL_UNIX)));
414 $this->tpl->parseCurrentBlock();
415 }
416 if (strcmp($c, 'tstamp') == 0) {
417 $this->tpl->setCurrentBlock('updated');
418 $this->tpl->setVariable('QUESTION_UPDATED', ilDatePresentation::formatDate(new ilDateTime($data['tstamp'], IL_CAL_UNIX)));
419 $this->tpl->parseCurrentBlock();
420 }
421 if (strcmp($c, 'working_time') == 0) {
422 $this->tpl->setCurrentBlock('working_time');
423 $this->tpl->setVariable('WORKING_TIME', $data["working_time"]);
424 $this->tpl->parseCurrentBlock();
425 }
426 }
427
428 $actions->addItem($this->lng->txt('preview'), '', $this->ctrl->getLinkTargetByClass('ilAssQuestionPreviewGUI', ilAssQuestionPreviewGUI::CMD_SHOW));
429 if ($this->getEditable()) {
430 $editHref = $this->ctrl->getLinkTargetByClass($data['type_tag'] . 'GUI', 'editQuestion');
431 $actions->addItem($this->lng->txt('edit_question'), '', $editHref);
432
433 $editPageHref = $this->ctrl->getLinkTargetByClass('ilAssQuestionPageGUI', 'edit');
434 $actions->addItem($this->lng->txt('edit_page'), '', $editPageHref);
435 }
436
437 if ($this->getWriteAccess()) {
438 $this->ctrl->setParameter($this->parent_obj, 'q_id', $data['question_id']);
439 $moveHref = $this->ctrl->getLinkTarget($this->parent_obj, 'move');
440 $this->ctrl->setParameter($this->parent_obj, 'q_id', null);
441 $actions->addItem($this->lng->txt('move'), '', $moveHref);
442
443 $this->ctrl->setParameter($this->parent_obj, 'q_id', $data['question_id']);
444 $copyHref = $this->ctrl->getLinkTarget($this->parent_obj, 'copy');
445 $this->ctrl->setParameter($this->parent_obj, 'q_id', null);
446 $actions->addItem($this->lng->txt('copy'), '', $copyHref);
447
448 $this->ctrl->setParameter($this->parent_obj, 'q_id', $data['question_id']);
449 $deleteHref = $this->ctrl->getLinkTarget($this->parent_obj, 'deleteQuestions');
450 $this->ctrl->setParameter($this->parent_obj, 'q_id', null);
451 $actions->addItem($this->lng->txt('delete'), '', $deleteHref);
452 }
453
454 if ($this->getEditable()) {
455 require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionFeedbackEditingGUI.php';
456 $this->ctrl->setParameterByClass('ilAssQuestionFeedbackEditingGUI', 'q_id', $data['question_id']);
457 $feedbackHref = $this->ctrl->getLinkTargetByClass('ilAssQuestionFeedbackEditingGUI', ilAssQuestionFeedbackEditingGUI::CMD_SHOW);
458 $this->ctrl->setParameterByClass('ilAssQuestionFeedbackEditingGUI', 'q_id', null);
459 $actions->addItem($this->lng->txt('tst_feedback'), '', $feedbackHref);
460
461 $this->ctrl->setParameterByClass('ilAssQuestionHintsGUI', 'q_id', $data['question_id']);
462 $hintsHref = $this->ctrl->getLinkTargetByClass('ilAssQuestionHintsGUI', ilAssQuestionHintsGUI::CMD_SHOW_LIST);
463 $this->ctrl->setParameterByClass('ilAssQuestionHintsGUI', 'q_id', null);
464 $actions->addItem($this->lng->txt('tst_question_hints_tab'), '', $hintsHref);
465 }
466
467 if ($this->isQuestionCommentingEnabled()) {
468 $actions->addItem(
469 $this->lng->txt('ass_comments'),
470 'comments',
471 '',
472 '',
473 '',
474 '',
475 '',
476 '',
477 $this->getCommentsAjaxLink($data['question_id'])
478 );
479 }
480 } else {
481 $this->tpl->setCurrentBlock('hidden');
482 $this->tpl->setVariable('HIDDEN_QUESTION_ID', $data["question_id"]);
483 $this->tpl->parseCurrentBlock();
484 }
485
486 foreach ($this->getSelectedColumns() as $c) {
487 if (strcmp($c, 'description') == 0) {
488 $this->tpl->setCurrentBlock('description');
489 $this->tpl->setVariable("QUESTION_COMMENT", (strlen($data["description"])) ? $data["description"] : "&nbsp;");
490 $this->tpl->parseCurrentBlock();
491 }
492 if (strcmp($c, 'type') == 0) {
493 $this->tpl->setCurrentBlock('type');
494 $this->tpl->setVariable("QUESTION_TYPE", assQuestion::_getQuestionTypeName($data["type_tag"]));
495 $this->tpl->parseCurrentBlock();
496 }
497 }
498 $this->tpl->setVariable('QUESTION_ID', $data["question_id"]);
499 if (!$this->confirmdelete) {
500 $this->tpl->setVariable('QUESTION_HREF_LINKED', $this->ctrl->getLinkTargetByClass('ilAssQuestionPreviewGUI', ilAssQuestionPreviewGUI::CMD_SHOW));
501 $this->tpl->setVariable('QUESTION_TITLE_LINKED', $data['title']);
502 $this->tpl->setVariable('ACTIONS', $actions->getHTML());
503 } else {
504 $this->tpl->setVariable('QUESTION_ID_UNLINKED', $data['question_id']);
505 $this->tpl->setVariable('QUESTION_TITLE_UNLINKED', $data['title']);
506 }
507 }
508
509 public function setEditable($value)
510 {
511 $this->editable = $value;
512 }
513
514 public function getEditable()
515 {
516 return $this->editable;
517 }
518
519 public function setWriteAccess($value)
520 {
521 $this->writeAccess = $value;
522 }
523
524 public function getWriteAccess()
525 {
526 return $this->writeAccess;
527 }
528
533 public function numericOrdering($column)
534 {
535 if (in_array($column, array('points', 'created', 'tstamp', 'comments'))) {
536 return true;
537 }
538
539 return false;
540 }
541
542 protected function getCommentsHtml($qData)
543 {
544 if (!$qData['comments']) {
545 return '';
546 }
547
548 $ajaxLink = $this->getCommentsAjaxLink($qData['question_id']);
549
550 return "<a class='comment' href='#' onclick=\"return " . $ajaxLink . "\">
551 <img src='" . ilUtil::getImagePath("comment_unlabeled.svg")
552 . "' alt='{$qData['comments']}'><span class='ilHActProp'>{$qData['comments']}</span></a>";
553 }
554
555 protected function getCommentsAjaxLink($questionId)
556 {
557 $ajax_hash = ilCommonActionDispatcherGUI::buildAjaxHash(1, $_GET['ref_id'], 'quest', $this->parent_obj->object->getId(), 'quest', $questionId);
558 return ilNoteGUI::getListCommentsJSCall($ajax_hash, '');
559 }
560}
$_GET["client_id"]
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_UNIX
const IL_NOTE_PUBLIC
Definition: class.ilNote.php:6
static _getGUIClassNameForId($a_q_id)
static sumTimesInISO8601FormatH_i_s_Extended($time1, $time2)
static _getQuestionTypeName($type_tag)
Return the translation for a given question type tag.
User interface class for advanced drop-down selection lists.
const CMD_SHOW_LIST
command constants
This class represents a checkbox property in a property form.
static buildAjaxHash( $a_node_type, $a_node_id, $a_obj_type, $a_obj_id, $a_sub_type=null, $a_sub_id=null, $a_news_id=0)
Build ajax hash.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
@classDescription Date and time handling
static getListCommentsJSCall($a_hash, $a_update_code=null)
Get list comments js call.
static initJavascript($a_ajax_url, $a_type=IL_NOTE_PRIVATE, ilTemplate $a_main_tpl=null)
Init javascript.
static _getNotesOfObject( $a_rep_obj_id, $a_obj_id, $a_obj_type, $a_type=IL_NOTE_PRIVATE, $a_incl_sub=false, $a_filter="", $a_all_public="y", $a_repository_mode=true, $a_sort_ascending=false, $a_news_id=0)
get all notes related to a specific object
static _getQuestionTypes($all_tags=false, $fixOrder=false, $withDeprecatedTypes=true)
setQuestionCommentingEnabled(bool $questionCommentingEnabled)
__construct($a_parent_obj, $a_parent_cmd, $a_write_access=false, $confirmdelete=false, $taxIds=array(), $enableCommenting=false)
Constructor.
getSelectableColumns()
Get selectable columns.
This class represents a selection list property in a property form.
ILIAS Setting Class.
Class ilTable2GUI.
getSelectedColumns()
Get selected columns.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
setSelectAllCheckbox($a_select_all_checkbox, $a_select_all_on_top=false)
Set the name of the checkbox that should be toggled with a select all button.
setData($a_data)
set table data @access public
setResetCommand($a_val, $a_caption=null)
Set reset filter command.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
addMultiCommand($a_cmd, $a_text)
Add Command button.
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
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.
setId($a_val)
Set id.
setFormName($a_formname="")
Set Form name.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setFilterCommand($a_val, $a_caption=null)
Set filter command.
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
disable($a_module_name)
diesables particular modules of table
setStyle($a_element, $a_style)
enable($a_module_name)
enables particular modules of table
Select taxonomy nodes input GUI.
This class represents a text property in a property form.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
$key
Definition: croninfo.php:18
global $ilCtrl
Definition: ilias.php:18
$row
global $DIC
Definition: saml.php:7
$ilUser
Definition: imgupload.php:18
$cols
Definition: xhr_table.php:11