19 declare(strict_types=1);
68 bool $a_force_icon =
false,
69 string $a_pos_prefix =
"",
70 string $item_group_list_presentation =
"",
71 int $checkbox = self::CHECKBOX_NONE,
72 bool $item_ordering =
false,
76 $ilAccess = $this->domain->access();
77 $ilCtrl = $this->gui->ctrl();
85 if ($item_group_list_presentation !=
"") {
86 $view_mode = ($item_group_list_presentation ===
"tile")
92 return $this->
renderCard($a_item_data, $a_position, $a_force_icon, $a_pos_prefix);
95 $item_list_gui = $this->
getItemGUI($a_item_data);
96 if (
$ilSetting->get(
"icon_position_in_lists") ===
"item_rows" ||
97 $a_item_data[
"type"] ===
"sess" || $a_force_icon) {
98 $item_list_gui->enableIcon(
true);
100 if ($checkbox === self::CHECKBOX_ADMIN) {
101 $item_list_gui->enableCheckbox(
true);
102 } elseif ($checkbox === self::CHECKBOX_DOWNLOAD) {
104 $item_list_gui->enableDownloadCheckbox((
int) $a_item_data[
"ref_id"]);
107 if ($item_ordering) {
108 $item_list_gui->setPositionInputField(
109 $a_pos_prefix .
"[" . $a_item_data[
"ref_id"] .
"]",
110 sprintf(
'%d', $a_position * 10)
114 if ($a_item_data[
'type'] ===
'sess') {
115 switch ($details_level) {
116 case \ilContainerContentGUI::DETAILS_TITLE:
118 $item_list_gui->enableExpand(
true);
119 $item_list_gui->setExpanded(
false);
120 $item_list_gui->enableDescription(
false);
121 $item_list_gui->enableProperties(
true);
124 case \ilContainerContentGUI::DETAILS_ALL:
126 $item_list_gui->enableExpand(
true);
127 $item_list_gui->setExpanded(
true);
128 $item_list_gui->enableDescription(
true);
129 $item_list_gui->enableProperties(
true);
132 case \ilContainerContentGUI::DETAILS_DEACTIVATED:
137 $item_list_gui->enableExpand(
true);
138 $item_list_gui->enableDescription(
true);
139 $item_list_gui->enableProperties(
true);
144 if ($this->item_modifier_closure instanceof \
Closure) {
146 $c($item_list_gui, $a_item_data);
150 if ($a_item_data[
'type'] ===
'sess' and (
152 $this->container_gui->isActiveAdministrationPanel() or
153 $this->container_gui->isActiveItemOrdering()
162 $item_readable = $ilAccess->checkAccess(
'read',
'', (
int) $a_item_data[
'ref_id']);
164 foreach ($items as $item) {
167 if (!$ilAccess->checkAccess(
'visible',
'', (
int) $item[
'ref_id'])) {
172 $item_list_gui2->enableIcon(
true);
173 $item_list_gui2->enableItemDetailLinks(
false);
176 $item_list_gui2->setParentRefId((
int) ($a_item_data[
'ref_id'] ?? 0));
179 if (!$item_readable and !$ilAccess->checkAccess(
'write',
'', $item[
'ref_id'])) {
180 $item_list_gui2->forceVisibleOnly(
true);
183 if ($checkbox === self::CHECKBOX_ADMIN) {
184 $item_list_gui2->enableCheckbox(
true);
185 } elseif ($checkbox === self::CHECKBOX_DOWNLOAD) {
187 $item_list_gui2->enableDownloadCheckbox((
int) $item[
'ref_id']);
190 if ($this->container_gui->isActiveItemOrdering()) {
191 $item_list_gui2->setPositionInputField(
192 "[sess][" . $a_item_data[
'obj_id'] .
"][" . $item[
"ref_id"] .
"]",
193 sprintf(
'%d', $pos * 10)
201 $sub_item_html = $item_list_gui2->getListItemHTML(
202 (
int) $item[
'ref_id'],
203 (
int) $item[
'obj_id'],
208 if (strlen($sub_item_html)) {
209 $item_list_gui->addSubItemHTML($sub_item_html);
218 $ilCtrl->setParameter($this->container_gui,
"cmdrefid", $a_item_data[
'ref_id']);
219 $asynch_url = $ilCtrl->getLinkTarget(
220 $this->container_gui,
226 $ilCtrl->setParameter($this->container_gui,
"cmdrefid",
"");
231 $html = $item_list_gui->getListItemHTML(
232 (
int) $a_item_data[
'ref_id'],
233 (
int) $a_item_data[
'obj_id'],
234 (
string) $a_item_data[
'title'],
235 (
string) $a_item_data[
'description'],
246 $this->item_modifier_closure =
$f;
252 bool $a_force_icon =
false,
253 string $a_pos_prefix =
"" 255 $item_list_gui = $this->
getItemGUI($a_item_data);
258 (
int) $a_item_data[
'ref_id'],
259 $a_item_data[
'type'],
260 (
int) $a_item_data[
'obj_id']
262 $item_list_gui->initItem(
263 (
int) $a_item_data[
'ref_id'],
264 (
int) $a_item_data[
'obj_id'],
265 $a_item_data[
'type'],
266 $a_item_data[
'title'],
267 $a_item_data[
'description']
270 return $item_list_gui->getAsCard(
271 (
int) $a_item_data[
'ref_id'],
272 (
int) $a_item_data[
'obj_id'],
273 (
string) $a_item_data[
'type'],
274 (
string) $a_item_data[
'title'],
275 (
string) $a_item_data[
'description']
282 if (!isset($this->list_gui[$item_data[
"type"]])) {
284 $item_list_gui->setContainerObject($this->container_gui);
285 $this->list_gui[$item_data[
"type"]] = $item_list_gui;
287 $item_list_gui = $this->list_gui[$item_data[
"type"]];
291 $item_list_gui->setParentRefId((
int) ($item_data[
"parent"] ?? 0));
293 $item_list_gui->setDefaultCommandParameters(array());
294 $item_list_gui->disableTitleLink(
false);
295 $item_list_gui->resetConditionTarget();
297 if ($this->container->isClassificationFilterActive()) {
298 $item_list_gui->enablePath(
300 $this->container->getRefId(),
301 new \ilSessionClassificationPathGUI()
314 $item_list_gui->enableComments(
true);
315 $item_list_gui->enableNotes(
true);
316 $item_list_gui->enableTags(
true);
317 $item_list_gui->enableRating(
true);
320 $item_list_gui->forceVisibleOnly(
false);
323 $this->container_gui->modifyItemGUI($item_list_gui, $item_data);
325 return $item_list_gui;
ilContainerGUI $container_gui
static getItemsByEvent(int $event_id)
Get session material / event items.
Interface Observer Contains several chained tasks and infos about them.
getItemGUI(array $item_data)
renderItem(array $a_item_data, int $a_position=0, bool $a_force_icon=false, string $a_pos_prefix="", string $item_group_list_presentation="", int $checkbox=self::CHECKBOX_NONE, bool $item_ordering=false, int $details_level=\ilObjectListGUI::DETAILS_ALL)
Render an item.
setItemModifierClosure(\Closure $f)
Closure $item_modifier_closure
static buildAjaxHash(int $node_type, ?int $node_id, string $obj_type, int $obj_id, ?string $sub_type=null, ?int $sub_id=null, int $news_id=0)
Build ajax hash.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
__construct()
Constructor setup ILIAS global object public.
static addListGUIActivationProperty(ilObjectListGUI $list_gui, array &$item)
Get timing details for list gui.
static _getListGUIByType(string $type, int $context=ilObjectListGUI::CONTEXT_REPOSITORY)
renderCard(array $a_item_data, int $a_position=0, bool $a_force_icon=false, string $a_pos_prefix="")
static _getInstance(int $a_obj_id)
InternalDomainService $domain
static getCompleteDescriptions(array $objects)
overwrites description fields to long or short description in an assoc array keys needed (obj_id and ...