ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilObjGroupReferenceListGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2016 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once "./Modules/Group/classes/class.ilObjGroupListGUI.php";
5 
13 {
15  protected $reference_obj_id = null;
17  protected $reference_ref_id = null;
19  protected $deleted = false;
20 
26  public function __construct()
27  {
28  parent::__construct();
29  }
30 
34  public function getIconImageType()
35  {
36  return 'grpr';
37  }
38 
42  public function getTypeIcon()
43  {
45  return ilObject::_getIcon(
47  'small'
48  );
49  }
50 
51 
58  public function getCommandId()
59  {
61  }
62 
67  public function insertTimingsCommand()
68  {
69  return;
70  }
71 
72 
73 
77  public function init()
78  {
79  $this->copy_enabled = true;
80  $this->static_link_enabled = false;
81  $this->delete_enabled = true;
82  $this->cut_enabled = true;
83  $this->subscribe_enabled = true;
84  $this->link_enabled = false;
85  $this->info_screen_enabled = true;
86  $this->type = "grp";
87  $this->gui_class_name = "ilobjgroupgui";
88 
89  include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDSubstitution.php');
90  $this->substitutions = ilAdvancedMDSubstitution::_getInstanceByObjectType($this->type);
91  if ($this->substitutions->isActive()) {
92  $this->substitutions_enabled = true;
93  }
94  }
95 
96 
97 
107  public function initItem($a_ref_id, $a_obj_id, $a_title = "", $a_description = "")
108  {
109  global $DIC;
110 
111  $ilAccess = $DIC['ilAccess'];
112  $tree = $DIC['tree'];
113 
114  $this->reference_ref_id = $a_ref_id;
115  $this->reference_obj_id = $a_obj_id;
116 
117 
118  include_once('./Services/ContainerReference/classes/class.ilContainerReference.php');
119  $target_obj_id = ilContainerReference::_lookupTargetId($a_obj_id);
120 
121  $target_ref_ids = ilObject::_getAllReferences($target_obj_id);
122  $target_ref_id = current($target_ref_ids);
123  $target_title = ilContainerReference::_lookupTitle($a_obj_id);
124  $target_description = ilObject::_lookupDescription($target_obj_id);
125 
126  $this->deleted = $tree->isDeleted($target_ref_id);
127 
128  $this->conditions_ok = ilConditionHandler::_checkAllConditionsOfTarget($target_ref_id, $target_obj_id);
129 
130 
131  parent::initItem($target_ref_id, $target_obj_id, $target_title, $target_description);
132 
133  // general commands array
134  include_once('./Modules/GroupReference/classes/class.ilObjGroupReferenceAccess.php');
135  $this->commands = ilObjGroupReferenceAccess::_getCommands($this->reference_ref_id);
136 
137  if ($ilAccess->checkAccess('write', '', $this->reference_ref_id) or $this->deleted) {
138  $this->info_screen_enabled = false;
139  } else {
140  $this->info_screen_enabled = true;
141  }
142  }
143 
144  public function getProperties()
145  {
146  global $DIC;
147 
148  $lng = $DIC['lng'];
149  $ilUser = $DIC['ilUser'];
150  $tree = $DIC['tree'];
151 
152  $props = parent::getProperties();
153 
154  // offline
155  if ($this->deleted) {
156  $props[] = array("alert" => true, "property" => $lng->txt("status"),
157  "value" => $lng->txt("reference_deleted"));
158  }
159 
160  return $props ? $props : array();
161  }
162 
168  public function checkCommandAccess($a_permission, $a_cmd, $a_ref_id, $a_type, $a_obj_id = "")
169  {
170  // Check edit reference against reference edit permission
171  switch ($a_cmd) {
172  case 'editReference':
173  return parent::checkCommandAccess($a_permission, $a_cmd, $this->getCommandId(), $a_type, $a_obj_id);
174  }
175 
176  switch ($a_permission) {
177  case 'copy':
178  case 'delete':
179  // check against target ref_id
180  return parent::checkCommandAccess($a_permission, $a_cmd, $this->getCommandId(), $a_type, $a_obj_id);
181 
182  default:
183  // check against reference
184  return parent::checkCommandAccess($a_permission, $a_cmd, $a_ref_id, $a_type, $a_obj_id);
185  }
186  }
187 
195  public function getCommandLink($a_cmd)
196  {
197  global $DIC;
198 
199  $ilCtrl = $DIC['ilCtrl'];
200 
201  switch ($a_cmd) {
202  case 'editReference':
203  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $this->getCommandId());
204  $cmd_link = $ilCtrl->getLinkTargetByClass("ilrepositorygui", $a_cmd);
205  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
206  return $cmd_link;
207 
208  default:
209  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $this->ref_id);
210  $cmd_link = $ilCtrl->getLinkTargetByClass("ilrepositorygui", $a_cmd);
211  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
212  return $cmd_link;
213  }
214  }
215 }
checkCommandAccess($a_permission, $a_cmd, $a_ref_id, $a_type, $a_obj_id="")
global $DIC
Definition: saml.php:7
$_GET["client_id"]
static _getAllReferences($a_id)
get all reference ids of object
static _getInstanceByObjectType($a_type)
Singleton: use this method to get an instance.
Class ilObjGroupListGUI.
global $ilCtrl
Definition: ilias.php:18
$a_type
Definition: workflow.php:92
static _getCommands()
get commands
initItem($a_ref_id, $a_obj_id, $a_title="", $a_description="")
inititialize new item Group reference inits the group item
static _lookupTitle($a_obj_id)
Overwitten from base class.
static _lookupDescription($a_id)
lookup object description
static _lookupObjId($a_id)
$ilUser
Definition: imgupload.php:18
static _checkAllConditionsOfTarget($a_target_ref_id, $a_target_id, $a_target_type="", $a_usr_id=0)
checks wether all conditions of a target object are fulfilled
insertTimingsCommand()
no activation for links
static _lookupTargetId($a_obj_id)
lookup target id