ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 {
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
125
126 $target_ref_ids = ilObject::_getAllReferences($target_obj_id);
127 $target_ref_id = current($target_ref_ids);
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}
static _getInstanceByObjectType(string $a_type)
static _lookupTitle(int $obj_id)
static _lookupTargetId(int $a_obj_id)
Class ilObjCourseListGUI.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getIconImageType()
Returns the icon image type.
checkCommandAccess(string $permission, string $cmd, int $ref_id, string $type, ?int $obj_id=null)
getTypeIcon()
Get object type specific type icon.
initItem(int $ref_id, int $obj_id, string $type, string $title="", string $description="")
initialize new item (is called by getItemHTML())
static _getCommands()
get commands
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
static _lookupObjId(int $ref_id)
static _lookupDescription(int $obj_id)
isDeleted(int $a_node_id)
This is a wrapper for isSaved() with a more useful name.
$_GET['cmd']
Definition: lti.php:26
$ref_id
Definition: ltiauth.php:66
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $lng
Definition: privfeed.php:31
global $DIC
Definition: shib_login.php:26