ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilConditionHandlerTableGUI.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 include_once './Services/Table/classes/class.ilTable2GUI.php';
6 
14 {
15  protected $enable_editing;
16 
23  public function __construct($a_parent_obj, $a_parent_cmd, $a_enable_editing = false)
24  {
25  $this->enable_editing = $a_enable_editing;
26 
27  parent::__construct($a_parent_obj, $a_parent_cmd);
28 
29  $this->initTable();
30  }
31 
36  public function fillRow($a_row)
37  {
38  global $DIC;
39 
40  $ilCtrl = $DIC['ilCtrl'];
41 
42  $this->tpl->setVariable('OBJ_SRC', $a_row['icon']);
43  $this->tpl->setVariable('OBJ_ALT', $a_row['icon_alt']);
44  $this->tpl->setVariable('OBJ_TITLE', $a_row['title']);
45  include_once './Services/Link/classes/class.ilLink.php';
46  $this->tpl->setVariable('OBJ_LINK', ilLink::_getLink($a_row['ref_id'], $a_row['type']));
47  $this->tpl->setVariable('OBJ_DESCRIPTION', $a_row['description']);
48  $this->tpl->setVariable('COND_ID', $a_row['id']);
49  $this->tpl->setVariable('OBJ_CONDITION', $a_row['condition']);
50 
51  if (!$this->enable_editing) {
52  $this->tpl->setCurrentBlock("obligatory_static");
53  $this->tpl->setVariable('OBL_SRC', ilUtil::getImagePath($a_row['obligatory'] ? 'icon_ok.svg' : 'icon_not_ok.svg'));
54  $this->tpl->setVariable(
55  'OBL_ALT',
56  $this->lng->txt($a_row['obligatory'] ?
57  'precondition_obligatory_alt' :
58  'precondition_not_obligatory_alt')
59  );
60  $this->tpl->parseCurrentBlock();
61  } else {
62  $this->tpl->setCurrentBlock("obligatory_edit");
63  $this->tpl->setVariable('OBL_ID', $a_row['id']);
64  $this->tpl->setVariable('OBL_STATUS', $a_row['obligatory'] ? ' checked="checked"' : '');
65  $this->tpl->parseCurrentBlock();
66  }
67 
68  $ilCtrl->setParameterByClass(get_class($this->getParentObject()), 'condition_id', $a_row['id']);
69  $this->tpl->setVariable('EDIT_LINK', $ilCtrl->getLinkTargetByClass(get_class($this->getParentObject()), 'edit'));
70  $this->tpl->setVariable('TXT_EDIT', $this->lng->txt('edit'));
71  }
72 
77  public function setConditions($a_conditions)
78  {
79  foreach ((array) $a_conditions as $condition) {
80  if ($condition['trigger_type'] == 'crsg') {
81  continue;
82  }
83 
84  $row['id'] = $condition['condition_id'];
85  $row['ref_id'] = $condition['trigger_ref_id'];
86  $row['type'] = $condition['trigger_type'];
87  $row['title'] = ilObject::_lookupTitle($condition['trigger_obj_id']);
88  $row['description'] = ilObject::_lookupDescription($condition['trigger_obj_id']);
89  $row['icon'] = ilObject::_getIcon($condition['trigger_obj_id']);
90  $row['icon_alt'] = $this->lng->txt('obj_' . $condition['trigger_type']);
91  $row['condition'] = $this->lng->txt('condition_' . $condition['operator']);
92  $row['obligatory'] = $condition['obligatory'];
93 
94  $rows[] = $row;
95  }
96  $this->setData($rows);
97  }
98 
103  protected function initTable()
104  {
105  global $DIC;
106 
107  $ilCtrl = $DIC['ilCtrl'];
108 
109  $this->lng->loadLanguageModule('rbac');
110 
111  $this->setRowTemplate('tpl.condition_handler_row.html', 'Services/AccessControl');
112 
113  $this->setTitle($this->lng->txt('active_preconditions'));
114 
115  $this->addColumn('', '', '1');
116  $this->addColumn($this->lng->txt('rbac_precondition_source'), 'title', '66%');
117  $this->addColumn($this->lng->txt('condition'), 'condition');
118  $this->addColumn($this->lng->txt('precondition_obligatory'), 'obligatory');
119  $this->addColumn($this->lng->txt('actions'));
120 
121  $this->enable('select_all');
122  $this->setSelectAllCheckbox('conditions');
123 
124  $this->setDefaultOrderField('title');
125  $this->setDefaultOrderDirection('asc');
126 
127  $this->setFormAction($ilCtrl->getFormAction($this->getParentObject(), $this->getParentCmd()));
128  $this->addMultiCommand('askDelete', $this->lng->txt('delete'));
129 
130  if ($this->enable_editing) {
131  $this->addCommandButton("saveObligatoryList", $this->lng->txt("rbac_precondition_save_obligatory"));
132  }
133  }
134 }
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
global $DIC
Definition: saml.php:7
static _lookupTitle($a_id)
lookup object title
getParentCmd()
Get parent command.
getParentObject()
Get parent object.
global $ilCtrl
Definition: ilias.php:18
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
Class ilTable2GUI.
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.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static _lookupDescription($a_id)
lookup object description
Table presentation of conditions.
addMultiCommand($a_cmd, $a_text)
Add Command button.
enable($a_module_name)
enables particular modules of table
setRowTemplate($a_template, $a_template_dir="")
Set row template.
$row
$rows
Definition: xhr_table.php:10
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setConditions($a_conditions)
Set and parse conditions.
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.
__construct($a_parent_obj, $a_parent_cmd, $a_enable_editing=false)
Constructor.