ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
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 $ilCtrl;
39 
40  $this->tpl->setVariable('OBJ_SRC', $a_row['icon']);
41  $this->tpl->setVariable('OBJ_ALT', $a_row['icon_alt']);
42  $this->tpl->setVariable('OBJ_TITLE',$a_row['title']);
43  include_once './Services/Link/classes/class.ilLink.php';
44  $this->tpl->setVariable('OBJ_LINK', ilLink::_getLink($a_row['ref_id'], $a_row['type']));
45  $this->tpl->setVariable('OBJ_DESCRIPTION', $a_row['description']);
46  $this->tpl->setVariable('COND_ID', $a_row['id']);
47  $this->tpl->setVariable('OBJ_CONDITION', $a_row['condition']);
48 
49  if(!$this->enable_editing)
50  {
51  $this->tpl->setCurrentBlock("obligatory_static");
52  $this->tpl->setVariable('OBL_SRC', ilUtil::getImagePath($a_row['obligatory'] ? 'icon_ok.png' : 'icon_not_ok.png'));
53  $this->tpl->setVariable(
54  'OBL_ALT',
55  $this->lng->txt($a_row['obligatory'] ?
56  'precondition_obligatory_alt' :
57  'precondition_not_obligatory_alt')
58  );
59  $this->tpl->parseCurrentBlock();
60  }
61  else
62  {
63  $this->tpl->setCurrentBlock("obligatory_edit");
64  $this->tpl->setVariable('OBL_ID', $a_row['id']);
65  $this->tpl->setVariable('OBL_STATUS', $a_row['obligatory'] ? ' checked="checked"' : '');
66  $this->tpl->parseCurrentBlock();
67  }
68 
69  $ilCtrl->setParameterByClass(get_class($this->getParentObject()),'condition_id',$a_row['id']);
70  $this->tpl->setVariable('EDIT_LINK',$ilCtrl->getLinkTargetByClass(get_class($this->getParentObject()),'edit'));
71  $this->tpl->setVariable('TXT_EDIT', $this->lng->txt('edit'));
72 
73  }
74 
79  public function setConditions($a_conditions)
80  {
81  foreach((array) $a_conditions as $condition)
82  {
83  if($condition['trigger_type'] == 'crsg')
84  {
85  continue;
86  }
87 
88  $row['id'] = $condition['condition_id'];
89  $row['ref_id'] = $condition['trigger_ref_id'];
90  $row['type'] = $condition['trigger_type'];
91  $row['title'] = ilObject::_lookupTitle($condition['trigger_obj_id']);
92  $row['description'] = ilObject::_lookupDescription($condition['trigger_obj_id']);
93  $row['icon'] = ilUtil::getImagePath('icon_'.$condition['trigger_type'].'_s.png');
94  $row['icon_alt'] = $this->lng->txt('obj_'.$condition['trigger_type']);
95  $row['condition'] = $this->lng->txt('condition_'.$condition['operator']);
96  $row['obligatory'] = $condition['obligatory'];
97 
98  $rows[] = $row;
99  }
100  $this->setData($rows);
101  }
102 
107  protected function initTable()
108  {
109  global $ilCtrl;
110 
111  $this->lng->loadLanguageModule('rbac');
112 
113  $this->setRowTemplate('tpl.condition_handler_row.html', 'Services/AccessControl');
114 
115  $this->setTitle($this->lng->txt('active_preconditions'));
116 
117  $this->addColumn('','','1');
118  $this->addColumn($this->lng->txt('rbac_precondition_source'),'title','66%');
119  $this->addColumn($this->lng->txt('condition'), 'condition');
120  $this->addColumn($this->lng->txt('precondition_obligatory'),'obligatory');
121  $this->addColumn($this->lng->txt('actions'));
122 
123  $this->enable('select_all');
124  $this->setSelectAllCheckbox('conditions');
125 
126  $this->setDefaultOrderField('title');
127  $this->setDefaultOrderDirection('asc');
128 
129  $this->setFormAction($ilCtrl->getFormAction($this->getParentObject(),$this->getParentCmd()));
130  $this->addMultiCommand('askDelete', $this->lng->txt('delete'));
131 
132  if($this->enable_editing)
133  {
134  $this->addCommandButton("saveObligatoryList", $this->lng->txt("rbac_precondition_save_obligatory"));
135  }
136  }
137 
138 
139 }
140 ?>