ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
class.ilObjCourseReferenceListGUI.php
Go to the documentation of this file.
1 <?php
2 
28 {
29  protected ?int $reference_obj_id = null;
30  protected int $reference_ref_id;
31  protected bool $deleted = false;
32 
39  public function __construct()
40  {
42  }
43 
44  public function getIconImageType(): string
45  {
46  return 'crsr';
47  }
48 
52  public function getTypeIcon(): string
53  {
54  $reference_obj_id = ilObject::_lookupObjId($this->getCommandId());
55  return ilObject::_getIcon(
56  $reference_obj_id,
57  'small'
58  );
59  }
60 
61 
69  public function getCommandId(): int
70  {
72  }
73 
77  public function insertTimingsCommand(): void
78  {
79  return;
80  }
81 
85  public function init(): void
86  {
87  $this->copy_enabled = true;
88  $this->static_link_enabled = false;
89  $this->delete_enabled = true;
90  $this->cut_enabled = true;
91  $this->subscribe_enabled = true;
92  $this->link_enabled = false;
93  $this->info_screen_enabled = true;
94  $this->type = 'crsr';
95  $this->gui_class_name = "ilobjcoursegui";
96 
97  $this->substitutions = ilAdvancedMDSubstitution::_getInstanceByObjectType($this->type);
98  if ($this->substitutions->isActive()) {
99  $this->substitutions_enabled = true;
100  }
101  }
102 
103 
104 
108  public function initItem(
109  int $ref_id,
110  int $obj_id,
111  string $type,
112  string $title = "",
113  string $description = ""
114  ): void {
115  global $DIC;
116 
117  $ilAccess = $DIC->access();
118  $tree = $DIC->repositoryTree();
119 
120  $this->reference_ref_id = $ref_id;
121  $this->reference_obj_id = $obj_id;
122 
123 
124  $target_obj_id = ilContainerReference::_lookupTargetId($obj_id);
125 
126  $target_ref_ids = ilObject::_getAllReferences($target_obj_id);
127  $target_ref_id = current($target_ref_ids);
128  $target_title = ilContainerReference::_lookupTitle($obj_id);
129  $target_description = ilObject::_lookupDescription($target_obj_id);
130 
131  $this->deleted = !$target_ref_id || $tree->isDeleted($target_ref_id);
132 
133  parent::initItem((int) $target_ref_id, $target_obj_id, $type, $target_title, $target_description);
134 
135  // general commands array
136  $this->commands = ilObjCourseReferenceAccess::_getCommands($this->reference_ref_id);
137 
138  if ($ilAccess->checkAccess('write', '', $this->reference_ref_id) or $this->deleted) {
139  $this->info_screen_enabled = false;
140  } else {
141  $this->info_screen_enabled = true;
142  }
143  }
144 
145  public function getProperties(): array
146  {
147  global $lng,$ilUser,$tree;
148 
149  $props = parent::getProperties();
150 
151  // offline
152  if ($this->deleted) {
153  $props[] = array("alert" => true, "property" => $lng->txt("status"),
154  "value" => $lng->txt("reference_deleted"));
155  }
156 
157  return $props ? $props : array();
158  }
159 
165  public function checkCommandAccess(
166  string $permission,
167  string $cmd,
168  int $ref_id,
169  string $type,
170  ?int $obj_id = null
171  ): bool {
172  // Check edit reference against reference edit permission
173  switch ($cmd) {
174  case 'editReference':
175  return parent::checkCommandAccess($permission, $cmd, $this->getCommandId(), $type, $obj_id);
176  }
177 
178  switch ($permission) {
179  case 'copy':
180  case 'delete':
181  // check against target ref_id
182  return parent::checkCommandAccess($permission, $cmd, $this->getCommandId(), $type, $obj_id);
183 
184  default:
185  // check against reference
186  return parent::checkCommandAccess($permission, $cmd, $ref_id, $type, $obj_id);
187  }
188  }
189 
196  public function getCommandLink(string $cmd): string
197  {
198  global $ilCtrl;
199 
200  switch ($cmd) {
201  case 'editReference':
202  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $this->getCommandId());
203  $cmd_link = $ilCtrl->getLinkTargetByClass("ilrepositorygui", $cmd);
204  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"] ?? null);
205  return $cmd_link;
206 
207  default:
208  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $this->ref_id);
209  $cmd_link = $ilCtrl->getLinkTargetByClass("ilrepositorygui", $cmd);
210  $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"] ?? null);
211  return $cmd_link;
212  }
213  }
214 }
$_GET["client_id"]
Definition: webdav.php:30
static _lookupTitle(int $obj_id)
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static _getAllReferences(int $id)
get all reference ids for object ID
isDeleted(int $a_node_id)
This is a wrapper for isSaved() with a more useful name.
static _lookupObjId(int $ref_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
initItem(int $ref_id, int $obj_id, string $type, string $title="", string $description="")
static _getCommands()
get commands
Class ilObjCourseListGUI.
global $DIC
Definition: shib_login.php:26
static _lookupDescription(int $obj_id)
getCommandLink(string $cmd)
get command link
__construct(Container $dic, ilPlugin $plugin)
static _lookupTargetId(int $a_obj_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
checkCommandAccess(string $permission, string $cmd, int $ref_id, string $type, ?int $obj_id=null)
static _getInstanceByObjectType(string $a_type)