ILIAS  trunk Revision v12.0_alpha-1221-g4e438232683
ilContainerContentGUI Class Reference

Parent class of all container content GUIs. More...

+ Inheritance diagram for ilContainerContentGUI:
+ Collaboration diagram for ilContainerContentGUI:

Public Member Functions

 getContainerObject ()
 
 getContainerGUI ()
 
 setOutput ()
 This method sets the output of the right and main column in the global standard template. More...
 
 getMainContent ()
 Get content HTML for main column, this one may be overwritten in derived classes. More...
 
 determinePageEmbeddedBlocks (string $a_container_page_html)
 Determine all blocks that are embedded in the container page. More...
 
 addEmbeddedBlock (string $block_type, $block_parameter)
 Add embedded block. More...
 
 getEmbeddedBlocks ()
 
 renderPageEmbeddedBlocks ()
 
 renderItem (array $a_item_data, int $a_position=0, bool $a_force_icon=false, string $a_pos_prefix="", string $item_group_list_presentation="")
 
 renderCard (array $a_item_data, int $a_position=0, bool $a_force_icon=false, string $a_pos_prefix="")
 
 insertPageEmbeddedBlocks (string $a_output_html)
 Insert blocks into container page. More...
 
 getSingleTypeBlockAsynch (string $type)
 Render single block. More...
 
 getGroupedObjTypes ()
 Get grouped repository object types. More...
 
 getIntroduction ()
 
 getItemGroupsHTML (int $a_pos=0)
 
 renderItemGroup (array $a_itgr)
 

Data Fields

const DETAILS_DEACTIVATED = 0
 
const DETAILS_TITLE = 1
 
const DETAILS_ALL = 2
 
const VIEW_MODE_LIST = 0
 
const VIEW_MODE_TILE = 1
 
ilContainerGUI $container_gui
 
ilContainer $container_obj
 

Protected Member Functions

 getViewMode ()
 
 getRightColumnHTML ()
 
 getCenterColumnHTML ()
 
 initRenderer ()
 Init container renderer. More...
 
 getItemGUI (array $item_data)
 
 hasForcedOrderByStartDate (string $type)
 
 getUniqueItemId (array $a_item_data)
 

Protected Attributes

ILIAS Container Content ItemPresentationManager $item_presentation
 
ilGlobalTemplateInterface $tpl
 
ilCtrl $ctrl
 
ilObjUser $user
 
ilLanguage $lng
 
ilAccessHandler $access
 
ilDBInterface $db
 
ilRbacSystem $rbacsystem
 
ilSetting $settings
 
ilObjectDefinition $obj_definition
 
int $details_level = self::DETAILS_DEACTIVATED
 
ilContainerRenderer $renderer
 
ilLogger $log
 
int $view_mode
 
array $embedded_block = []
 
array $items = []
 
array $list_gui = []
 
ClipboardManager $clipboard
 
StandardGUIRequest $request
 
ItemManager $item_manager
 
BlockSessionRepository $block_repo
 
int $block_limit = 0
 
array $type_grps = []
 
int $force_details
 
ilContainerUserFilter $container_user_filter
 

Private Member Functions

 forwardToColumnGUI ()
 Get columngui output. More...
 

Detailed Description

Parent class of all container content GUIs.

These classes are responsible for displaying the content, i.e. the side column and main column and its subitems in container objects.

Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

Definition at line 33 of file class.ilContainerContentGUI.php.

Member Function Documentation

◆ addEmbeddedBlock()

ilContainerContentGUI::addEmbeddedBlock ( string  $block_type,
  $block_parameter 
)

Add embedded block.

Parameters
string$block_type
string | int$block_parameter

Definition at line 425 of file class.ilContainerContentGUI.php.

428 : void {
429 $this->embedded_block[$block_type][] = $block_parameter;
430 }

Referenced by determinePageEmbeddedBlocks().

+ Here is the caller graph for this function:

◆ determinePageEmbeddedBlocks()

ilContainerContentGUI::determinePageEmbeddedBlocks ( string  $a_container_page_html)

Determine all blocks that are embedded in the container page.

Definition at line 398 of file class.ilContainerContentGUI.php.

400 : void {
402
403 // iterate all types
404 foreach ($type_grps as $type => $v) {
405 // set template (overall or type specific)
406 if (is_int(strpos($a_container_page_html, "[list-" . $type . "]"))) {
407 $this->addEmbeddedBlock("type", $type);
408 }
409 }
410
411 // determine item groups
412 while (preg_match('~\[(item-group-([0-9]*))\]~i', $a_container_page_html, $found)) {
413 $this->addEmbeddedBlock("itgr", (int) $found[2]);
414
415 $html = ''; // This was never defined before
416 $a_container_page_html = preg_replace('~\[' . $found[1] . '\]~i', $html, $a_container_page_html);
417 }
418 }
addEmbeddedBlock(string $block_type, $block_parameter)
Add embedded block.
getGroupedObjTypes()
Get grouped repository object types.

References addEmbeddedBlock().

+ Here is the call graph for this function:

◆ forwardToColumnGUI()

ilContainerContentGUI::forwardToColumnGUI ( )
private

Get columngui output.

Definition at line 321 of file class.ilContainerContentGUI.php.

321 : string
322 {
323 $ilCtrl = $this->ctrl;
324 $html = "";
325
326 // this gets us the subitems we need in setColumnSettings()
327 // todo: this should be done in ilCourseGUI->getSubItems
328
329 $obj_id = ilObject::_lookupObjId($this->getContainerObject()->getRefId());
330 $obj_type = ilObject::_lookupType($obj_id);
331
332 if (!$ilCtrl->isAsynch()) {
334 // right column wants center
336 $column_gui = new ilColumnGUI($obj_type, IL_COL_RIGHT);
337 $this->getContainerGUI()->setColumnSettings($column_gui);
338 $html = $ilCtrl->forwardCommand($column_gui);
339 }
340 // left column wants center
342 $column_gui = new ilColumnGUI($obj_type, IL_COL_LEFT);
343 $this->getContainerGUI()->setColumnSettings($column_gui);
344 $html = $ilCtrl->forwardCommand($column_gui);
345 }
346 } else {
347 $html = $this->getMainContent();
348 }
349 }
350
351 return $html;
352 }
const IL_SCREEN_SIDE
const IL_COL_RIGHT
const IL_COL_LEFT
Column user interface class.
static getScreenMode()
static getCmdSide()
Get Column Side of Current Command.
getMainContent()
Get content HTML for main column, this one may be overwritten in derived classes.
static _lookupType(int $id, bool $reference=false)
static _lookupObjId(int $ref_id)

References $ctrl, ilObject\_lookupObjId(), ilObject\_lookupType(), ilColumnGUI\getCmdSide(), getContainerGUI(), getContainerObject(), getMainContent(), ilColumnGUI\getScreenMode(), IL_COL_LEFT, IL_COL_RIGHT, and IL_SCREEN_SIDE.

Referenced by getCenterColumnHTML().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getCenterColumnHTML()

ilContainerContentGUI::getCenterColumnHTML ( )
protected

Definition at line 228 of file class.ilContainerContentGUI.php.

228 : string
229 {
230 $ilCtrl = $this->ctrl;
233
234 $ilCtrl->saveParameterByClass("ilcolumngui", "col_return");
235
236 $tpl->addOnLoadCode("il.Object.setRedrawListItemUrl('" .
237 $ilCtrl->getLinkTarget($this->container_gui, "redrawListItem", "", true) . "');");
238
239 $tpl->addOnLoadCode("il.Object.setRatingUrl('" .
240 $ilCtrl->getLinkTargetByClass(
241 [get_class($this->container_gui), "ilcommonactiondispatchergui", "ilratinggui"],
242 "saveRating",
243 "",
244 true,
245 false
246 ) . "');");
247
248 switch ($ilCtrl->getNextClass()) {
249 case "ilcolumngui":
250 $this->container_gui->setSideColumnReturn();
251 $html = $this->forwardToColumnGUI();
252 break;
253
254 default:
255 $ilDB->useSlave(true);
256 $html = $this->getMainContent();
257 $ilDB->useSlave(false);
258 break;
259 }
260
261 return $html;
262 }
forwardToColumnGUI()
Get columngui output.
ilGlobalTemplateInterface $tpl
addOnLoadCode(string $a_code, int $a_batch=2)
Add on load code.

References $ctrl, $db, $ilDB, $tpl, ILIAS\UICore\GlobalTemplate\addOnLoadCode(), forwardToColumnGUI(), and getMainContent().

Referenced by setOutput().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getContainerGUI()

ilContainerContentGUI::getContainerGUI ( )

Definition at line 139 of file class.ilContainerContentGUI.php.

140 {
142 }
Class ilContainerGUI This is a base GUI class for all container objects in ILIAS: root folder,...

References $container_gui.

Referenced by forwardToColumnGUI(), getItemGUI(), ilContainerObjectiveGUI\getMainContent(), getRightColumnHTML(), initRenderer(), and ilContainerObjectiveGUI\showObjectives().

+ Here is the caller graph for this function:

◆ getContainerObject()

ilContainerContentGUI::getContainerObject ( )

◆ getEmbeddedBlocks()

ilContainerContentGUI::getEmbeddedBlocks ( )

Definition at line 432 of file class.ilContainerContentGUI.php.

432 : array
433 {
435 }

◆ getGroupedObjTypes()

ilContainerContentGUI::getGroupedObjTypes ( )

Get grouped repository object types.

Definition at line 725 of file class.ilContainerContentGUI.php.

725 : array
726 {
727 $objDefinition = $this->obj_definition;
728
729 if (empty($this->type_grps)) {
730 $this->type_grps =
731 $objDefinition::getGroupedRepositoryObjectTypes($this->getContainerObject()->getType());
732 }
733 return $this->type_grps;
734 }

◆ getIntroduction()

ilContainerContentGUI::getIntroduction ( )

Definition at line 736 of file class.ilContainerContentGUI.php.

736 : string
737 {
739
740 $lng->loadLanguageModule("rep");
741
742 $tpl = new ilTemplate("tpl.rep_intro.html", true, true, "components/ILIAS/Repository");
743 $tpl->setVariable("IMG_REP_LARGE", ilObject::_getIcon(0, "big", "root"));
744 $tpl->setVariable("TXT_WELCOME", $lng->txt("rep_intro"));
745 $tpl->setVariable("TXT_INTRO_1", $lng->txt("rep_intro1"));
746 $tpl->setVariable("TXT_INTRO_2", $lng->txt("rep_intro2"));
747 $tpl->setVariable("TXT_INTRO_3", sprintf($lng->txt("rep_intro3"), $lng->txt("add")));
748 $tpl->setVariable("TXT_INTRO_4", sprintf($lng->txt("rep_intro4"), $lng->txt("cat_add")));
749 $tpl->setVariable("TXT_INTRO_5", $lng->txt("rep_intro5"));
750 $tpl->setVariable("TXT_INTRO_6", $lng->txt("rep_intro6"));
751
752 return $tpl->get();
753 }
loadLanguageModule(string $a_module)
Load language module.
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
special template class to simplify handling of ITX/PEAR
setVariable(string $variable, $value='')
Sets the given variable to the given value.
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.

References $lng, ilObject\_getIcon(), ILIAS\UICore\GlobalTemplate\get(), and ILIAS\UICore\GlobalTemplate\setVariable().

Referenced by getMainContent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getItemGroupsHTML()

ilContainerContentGUI::getItemGroupsHTML ( int  $a_pos = 0)

Definition at line 755 of file class.ilContainerContentGUI.php.

755 : int
756 {
757 if (isset($this->items["itgr"]) && is_array($this->items["itgr"])) {
758 foreach ($this->items["itgr"] as $itgr) {
759 if (!$this->renderer->hasCustomBlock($itgr["child"])) {
760 $this->renderItemGroup($itgr);
761
762 $this->renderer->setBlockPosition($itgr["ref_id"], ++$a_pos);
763 }
764 }
765 }
766 return $a_pos;
767 }
renderer()

References renderer().

+ Here is the call graph for this function:

◆ getItemGUI()

ilContainerContentGUI::getItemGUI ( array  $item_data)
protected

Definition at line 354 of file class.ilContainerContentGUI.php.

355 {
356 // get item list gui object
357 if (!isset($this->list_gui[$item_data["type"]])) {
358 $item_list_gui = ilObjectListGUIFactory::_getListGUIByType($item_data["type"]);
359 $item_list_gui->setContainerObject($this->getContainerGUI());
360 $this->list_gui[$item_data["type"]] = &$item_list_gui;
361 } else {
362 $item_list_gui = &$this->list_gui[$item_data["type"]];
363 }
364
365 // unique js-ids
366 $item_list_gui->setParentRefId((int) ($item_data["parent"] ?? 0));
367
368 $item_list_gui->setDefaultCommandParameters([]);
369 $item_list_gui->disableTitleLink(false);
370 $item_list_gui->resetConditionTarget();
371
372 if ($this->container_obj->isClassificationFilterActive()) {
373 $item_list_gui->enablePath(
374 true,
375 $this->container_obj->getRefId(),
377 );
378 }
379
380 // activate common social commands
381 $item_list_gui->enableComments(true);
382 $item_list_gui->enableNotes(true);
383 $item_list_gui->enableTags(true);
384 $item_list_gui->enableRating(true);
385
386 // reset
387 $item_list_gui->forceVisibleOnly(false);
388
389 // container specific modifications
390 $this->getContainerGUI()->modifyItemGUI($item_list_gui, $item_data);
391
392 return $item_list_gui;
393 }
static _getListGUIByType(string $type, int $context=ilObjectListGUI::CONTEXT_REPOSITORY)
PathGUI which handles materials assigned to sessions.

References ilObjectListGUIFactory\_getListGUIByType(), and getContainerGUI().

+ Here is the call graph for this function:

◆ getMainContent()

ilContainerContentGUI::getMainContent ( )

Get content HTML for main column, this one may be overwritten in derived classes.

Reimplemented in ilContainerObjectiveGUI.

Definition at line 268 of file class.ilContainerContentGUI.php.

268 : string
269 {
270 $ilAccess = $this->access;
271
272 $tpl = new ilTemplate(
273 "tpl.container_page.html",
274 true,
275 true,
276 "components/ILIAS/Container"
277 );
278 // Show introduction, if repository is empty
279 if (!$this->item_presentation->hasItems() &&
280 $this->getContainerObject()->getRefId() == ROOT_FOLDER_ID &&
281 $ilAccess->checkAccess("write", "", $this->getContainerObject()->getRefId())) {
282 $html = $this->getIntroduction();
283 } else { // show item list otherwise
284 $html = $this->renderItemList();
285 }
286 $tpl->setVariable("CONTAINER_PAGE_CONTENT", $html);
287
288 return $tpl->get();
289 }
const ROOT_FOLDER_ID
Definition: constants.php:32

References $access, $tpl, ILIAS\UICore\GlobalTemplate\get(), getIntroduction(), ROOT_FOLDER_ID, and ILIAS\UICore\GlobalTemplate\setVariable().

Referenced by forwardToColumnGUI(), and getCenterColumnHTML().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRightColumnHTML()

ilContainerContentGUI::getRightColumnHTML ( )
protected

Definition at line 186 of file class.ilContainerContentGUI.php.

186 : string
187 {
188 $ilCtrl = $this->ctrl;
189 $html = "";
190
191 $ilCtrl->saveParameterByClass("ilcolumngui", "col_return");
192
193 $obj_id = ilObject::_lookupObjId($this->getContainerObject()->getRefId());
194 $obj_type = ilObject::_lookupType($obj_id);
195
196 $column_gui = new ilColumnGUI($obj_type, IL_COL_RIGHT);
197
198 if ($column_gui::getScreenMode() === IL_SCREEN_FULL) {
199 return "";
200 }
201
202 $this->getContainerGUI()->setColumnSettings($column_gui);
203
204 if ($ilCtrl->getNextClass() === "ilcolumngui" &&
205 $column_gui::getCmdSide() === IL_COL_RIGHT &&
206 $column_gui::getScreenMode() === IL_SCREEN_SIDE) {
207 $html = $ilCtrl->forwardCommand($column_gui);
208 } else {
209 if (!$ilCtrl->isAsynch()) {
210 $html = "";
211
212 // user interface plugin slot + default rendering
213 $uip = new ilUIHookProcessor(
214 "components/ILIAS/Container",
215 "right_column",
216 ["container_content_gui" => $this]
217 );
218 if (!$uip->replaced()) {
219 $html = $ilCtrl->getHTML($column_gui);
220 }
221 $html = $uip->getHTML($html);
222 }
223 }
224
225 return $html;
226 }
const IL_SCREEN_FULL
saveParameterByClass(string $a_class, $a_parameter)
@inheritDoc
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References $ctrl, ilObject\_lookupObjId(), ilObject\_lookupType(), getContainerGUI(), getContainerObject(), IL_COL_RIGHT, IL_SCREEN_FULL, IL_SCREEN_SIDE, and ilCtrl\saveParameterByClass().

Referenced by setOutput().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSingleTypeBlockAsynch()

ilContainerContentGUI::getSingleTypeBlockAsynch ( string  $type)

Render single block.

Definition at line 708 of file class.ilContainerContentGUI.php.

710 : string {
711 $this->initRenderer();
712 $ref_ids = $this->request->getAlreadyRenderedRefIds();
713
714 return $this->renderer->renderSingleTypeBlockAsynch(
715 $this->item_presentation->getItemBlockSequence($ref_ids),
716 $type,
717 $ref_ids,
718 $this->block_limit
719 );
720 }
initRenderer()
Init container renderer.

◆ getUniqueItemId()

ilContainerContentGUI::getUniqueItemId ( array  $a_item_data)
protected

Definition at line 483 of file class.ilContainerContentGUI.php.

483 : string
484 {
485 $item_list_gui = $this->getItemGUI($a_item_data);
486 return $item_list_gui->getUniqueItemId();
487 }

◆ getViewMode()

ilContainerContentGUI::getViewMode ( )
protected

Definition at line 128 of file class.ilContainerContentGUI.php.

128 : int
129 {
130 return $this->view_mode;
131 }

References $view_mode.

Referenced by ilContainerGUI\getContentGUI().

+ Here is the caller graph for this function:

◆ hasForcedOrderByStartDate()

ilContainerContentGUI::hasForcedOrderByStartDate ( string  $type)
protected

Definition at line 478 of file class.ilContainerContentGUI.php.

478 : bool
479 {
480 return $type === 'sess' && get_class($this) === ilContainerSessionsContentGUI::class;
481 }

◆ initRenderer()

ilContainerContentGUI::initRenderer ( )
protected

Init container renderer.

Reimplemented in ilContainerObjectiveGUI, and ilContainerSessionsContentGUI.

Definition at line 294 of file class.ilContainerContentGUI.php.

294 : void
295 {
297
298 $this->renderer = new ilContainerRenderer(
299 $this->item_presentation,
300 ($this->getContainerGUI()->isActiveAdministrationPanel() && !$this->clipboard->hasEntries()),
301 $this->getContainerGUI()->isMultiDownloadEnabled(),
302 $this->getContainerGUI()->isActiveOrdering() && (get_class($this) !== "ilContainerObjectiveGUI") // no block sorting in objective view
303 ,
304 $sorting->getBlockPositions(),
305 $this->container_gui,
306 $this->getViewMode(),
307 $this->getContainerGUI()->isActiveAdministrationPanel()
308 );
309
310 // all event items are included per session rendering
311 // and should return true for hasItem
312 $event_items = ilEventItems::_getItemsOfContainer($this->container_obj->getRefId());
313 foreach ($event_items as $ev) {
314 $this->renderer->addItemId($ev);
315 }
316 }
Class ilContainerRenderer.
static _getInstance(int $a_obj_id)
static _getItemsOfContainer(int $a_ref_id)

References ilContainerSorting\_getInstance(), ilEventItems\_getItemsOfContainer(), getContainerGUI(), getContainerObject(), ILIAS\Survey\Mode\getId(), and renderer().

Referenced by ilContainerByTypeContentGUI\renderItemList(), and ilContainerSimpleContentGUI\renderItemList().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ insertPageEmbeddedBlocks()

ilContainerContentGUI::insertPageEmbeddedBlocks ( string  $a_output_html)

Insert blocks into container page.

Definition at line 674 of file class.ilContainerContentGUI.php.

674 : string
675 {
676 $this->determinePageEmbeddedBlocks($a_output_html);
678
679 // iterate all types
680 foreach ($this->getGroupedObjTypes() as $type => $v) {
681 // set template (overall or type specific)
682 if (is_int(strpos($a_output_html, "[list-" . $type . "]"))) {
683 $a_output_html = preg_replace(
684 '~\[list-' . $type . '\]~i',
685 $this->renderer->renderSingleTypeBlock($type),
686 $a_output_html
687 );
688 }
689 }
690
691 // insert all item groups
692 while (preg_match('~\[(item-group-([0-9]*))\]~i', $a_output_html, $found)) {
693 $itgr_ref_id = (int) $found[2];
694
695 $a_output_html = preg_replace(
696 '~\[' . $found[1] . '\]~i',
697 $this->renderer->renderSingleCustomBlock($itgr_ref_id),
698 $a_output_html
699 );
700 }
701
702 return $a_output_html;
703 }
determinePageEmbeddedBlocks(string $a_container_page_html)
Determine all blocks that are embedded in the container page.

References ILIAS\Repository\int(), and renderer().

Referenced by ilContainerObjectiveGUI\showObjectives().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderCard()

ilContainerContentGUI::renderCard ( array  $a_item_data,
int  $a_position = 0,
bool  $a_force_icon = false,
string  $a_pos_prefix = "" 
)

Definition at line 641 of file class.ilContainerContentGUI.php.

647 $item_list_gui = $this->getItemGUI($a_item_data);
648 $item_list_gui->setAjaxHash(ilCommonActionDispatcherGUI::buildAjaxHash(
650 $a_item_data['ref_id'],
651 $a_item_data['type'],
652 (int) $a_item_data['obj_id']
653 ));
654 $item_list_gui->initItem(
655 (int) $a_item_data['ref_id'],
656 (int) $a_item_data['obj_id'],
657 (string) $a_item_data['type'],
658 (string) $a_item_data['title'],
659 (string) $a_item_data['description']
660 );
661
662 return $item_list_gui->getAsCard(
663 $a_item_data['ref_id'],
664 (int) $a_item_data['obj_id'],
665 (string) $a_item_data['type'],
666 (string) $a_item_data['title'],
667 (string) $a_item_data['description']
668 );
669 }
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.

◆ renderItem()

ilContainerContentGUI::renderItem ( array  $a_item_data,
int  $a_position = 0,
bool  $a_force_icon = false,
string  $a_pos_prefix = "",
string  $item_group_list_presentation = "" 
)

Definition at line 489 of file class.ilContainerContentGUI.php.

495 : RepositoryObject|string|null {
497 $ilAccess = $this->access;
498 $ilCtrl = $this->ctrl;
499 // Pass type, obj_id and tree to checkAccess method to improve performance
500 if (!$ilAccess->checkAccess('visible', '', $a_item_data['ref_id'], $a_item_data['type'], $a_item_data['obj_id'], $a_item_data['tree'])) {
501 return '';
502 }
503
504 $view_mode = $this->getViewMode();
505 if ($item_group_list_presentation != "") {
506 $view_mode = ($item_group_list_presentation === "tile")
507 ? self::VIEW_MODE_TILE
508 : self::VIEW_MODE_LIST;
509 }
510 if ($view_mode === self::VIEW_MODE_TILE) {
511 return $this->renderCard($a_item_data, $a_position, $a_force_icon, $a_pos_prefix);
512 }
513
514 $item_list_gui = $this->getItemGUI($a_item_data);
515 if ($a_item_data["type"] === "sess" ||
516 $a_force_icon ||
517 $ilSetting->get("icon_position_in_lists") === "item_rows") {
518 $item_list_gui->enableIcon(true);
519 }
520
521 if ($this->getContainerGUI()->isActiveAdministrationPanel() && !$this->clipboard->hasEntries()) {
522 $item_list_gui->enableCheckbox(true);
523 } elseif ($this->getContainerGUI()->isMultiDownloadEnabled()) {
524 // display multi download checkboxes
525 $item_list_gui->enableDownloadCheckbox((int) $a_item_data["ref_id"]);
526 }
527
528 if ($this->getContainerGUI()->isActiveItemOrdering() && !$this->hasForcedOrderByStartDate($a_item_data['type'])) {
529 $item_list_gui->setPositionInputField(
530 $a_pos_prefix . "[" . $a_item_data["ref_id"] . "]",
531 sprintf('%d', $a_position * 10)
532 );
533 }
534
535 if ($a_item_data['type'] === 'sess' && get_class($this) !== 'ilContainerObjectiveGUI') {
536 switch ($this->getDetailsLevel($a_item_data['obj_id'])) {
538 $item_list_gui->setDetailsLevel(ilObjectListGUI::DETAILS_MINIMAL);
539 $item_list_gui->enableExpand(true);
540 $item_list_gui->setExpanded(false);
541 $item_list_gui->enableDescription(false);
542 $item_list_gui->enableProperties(true);
543 break;
544
546 $item_list_gui->setDetailsLevel(ilObjectListGUI::DETAILS_ALL);
547 $item_list_gui->enableExpand(true);
548 $item_list_gui->setExpanded(true);
549 $item_list_gui->enableDescription(true);
550 $item_list_gui->enableProperties(true);
551 break;
552
553 default:
554 $item_list_gui->setDetailsLevel(ilObjectListGUI::DETAILS_ALL);
555 $item_list_gui->enableExpand(true);
556 $item_list_gui->enableDescription(true);
557 $item_list_gui->enableProperties(true);
558 break;
559 }
560 }
561
562 if (method_exists($this, "addItemDetails")) {
563 $this->addItemDetails($item_list_gui, $a_item_data);
564 }
565
566 // show subitems
567 if ($a_item_data['type'] === 'sess' && (
568 $this->getDetailsLevel($a_item_data['obj_id']) !== self::DETAILS_TITLE ||
569 $this->getContainerGUI()->isActiveAdministrationPanel() ||
570 $this->getContainerGUI()->isActiveItemOrdering()
571 )) {
572 $pos = 1;
573 $items = ilObjectActivation::getItemsByEvent($a_item_data['obj_id']);
574 $items = ilContainerSorting::_getInstance($this->getContainerObject()->getId())->sortSubItems('sess', $a_item_data['obj_id'], $items);
576
577 $item_readable = $ilAccess->checkAccess('read', '', $a_item_data['ref_id']);
578
579 foreach ($items as $item) {
580 // TODO: this should be removed and be handled by if(strlen($sub_item_html))
581 // see mantis: 0003944
582 if (!$ilAccess->checkAccess('visible', '', $item['ref_id'])) {
583 continue;
584 }
585
586 $item_list_gui2 = $this->getItemGUI($item);
587 $item_list_gui2->enableIcon(true);
588 $item_list_gui2->enableItemDetailLinks(false);
589
590 // unique js-ids
591 $item_list_gui2->setParentRefId((int) ($a_item_data['ref_id'] ?? 0));
592
593 // @see mantis 10488
594 if (!$item_readable && !$ilAccess->checkAccess('write', '', $item['ref_id'])) {
595 $item_list_gui2->forceVisibleOnly(true);
596 }
597
598 if ($this->getContainerGUI()->isActiveAdministrationPanel() && !$this->clipboard->hasEntries()) {
599 $item_list_gui2->enableCheckbox(true);
600 } elseif ($this->getContainerGUI()->isMultiDownloadEnabled()) {
601 // display multi download checkbox
602 $item_list_gui2->enableDownloadCheckbox((int) $item['ref_id']);
603 }
604
605 if ($this->getContainerGUI()->isActiveItemOrdering()) {
606 $item_list_gui2->setPositionInputField(
607 "[sess][" . $a_item_data['obj_id'] . "][" . $item["ref_id"] . "]",
608 sprintf('%d', $pos * 10)
609 );
610 $pos++;
611 }
612
613 // #10611
615
616 $sub_item_html = $item_list_gui2->getListItemHTML(
617 $item['ref_id'],
618 $item['obj_id'],
619 $item['title'],
620 $item['description']
621 );
622
623 $this->determineAdminCommands($item["ref_id"], $item_list_gui2->adminCommandsIncluded());
624 if ($sub_item_html !== '') {
625 $item_list_gui->addSubItemHTML($sub_item_html);
626 }
627 }
628 }
629
630 ilObjectActivation::addListGUIActivationProperty($item_list_gui, $a_item_data);
631
632 $html = $item_list_gui->getListItemHTML(
633 (int) $a_item_data['ref_id'],
634 (int) $a_item_data['obj_id'],
635 (string) $a_item_data['title'],
636 (string) $a_item_data['description'],
637 );
638 return $html;
639 }
renderCard(array $a_item_data, int $a_position=0, bool $a_force_icon=false, string $a_pos_prefix="")
static getCompleteDescriptions(array $objects)
overwrites description fields to long or short description in an assoc array keys needed (obj_id and ...
static getItemsByEvent(int $event_id)
Get session material / event items.
static addListGUIActivationProperty(ilObjectListGUI $list_gui, array &$item)
Get timing details for list gui.
global $ilSetting
Definition: privfeed.php:31

◆ renderItemGroup()

ilContainerContentGUI::renderItemGroup ( array  $a_itgr)

Definition at line 769 of file class.ilContainerContentGUI.php.

769 : void
770 {
771 $ilAccess = $this->access;
772 $ilUser = $this->user;
773 // #16493
774 $perm_ok = ($ilAccess->checkAccess("visible", "", $a_itgr['ref_id']) &&
775 $ilAccess->checkAccess("read", "", $a_itgr['ref_id']));
776
778
779 // get all valid ids (this is filtered)
780 $all_ids = array_map(static function (array $i): int {
781 return (int) $i["child"];
782 }, $this->items["_all"]);
783
784 // remove filtered items
785 $items = array_filter($items, static function (array $i) use ($all_ids): bool {
786 return in_array($i["ref_id"], $all_ids);
787 });
788
789 // if no permission is given, set the items to "rendered" but
790 // do not display the whole block
791 if (!$perm_ok) {
792 foreach ($items as $item) {
793 $this->renderer->hideItem($item["child"]);
794 }
795 return;
796 }
797
798 $item_list_gui = $this->getItemGUI($a_itgr);
799 $item_list_gui->enableNotes(false);
800 $item_list_gui->enableTags(false);
801 $item_list_gui->enableComments(false);
802 $item_list_gui->enableTimings(false);
803 $item_list_gui->getListItemHTML(
804 $a_itgr["ref_id"],
805 $a_itgr["obj_id"],
806 $a_itgr["title"],
807 $a_itgr["description"]
808 );
809 $commands_html = $item_list_gui->getCommandsHTML($a_itgr["title"], false);
810
811 // determine behaviour
812 $item_group = new ilObjItemGroup($a_itgr["ref_id"]);
813 $beh = $item_group->getBehaviour();
814 $stored_val = $this->block_repo->getProperty(
815 "itgr_" . $a_itgr["ref_id"],
816 $ilUser->getId(),
817 "opened"
818 );
819 if ($stored_val !== "" && $beh !== ilItemGroupBehaviour::ALWAYS_OPEN) {
820 $beh = ($stored_val === "1")
823 }
824
825 $data = [
826 "behaviour" => $beh,
827 "store-url" => "./ilias.php?baseClass=ilcontainerblockpropertiesstoragegui&cmd=store" .
828 "&cont_block_id=itgr_" . $a_itgr['ref_id']
829 ];
830 if (ilObjItemGroup::lookupHideTitle($a_itgr["obj_id"]) &&
831 !$this->getContainerGUI()->isActiveAdministrationPanel()) {
832 $this->renderer->addCustomBlock($a_itgr["ref_id"], "", $commands_html, $data);
833 } else {
834 $this->renderer->addCustomBlock($a_itgr["ref_id"], $a_itgr["title"], $commands_html, $data);
835 }
836
837
838 // render item group sub items
839
841 $this->getContainerObject()->getId()
842 )->sortSubItems('itgr', $a_itgr['obj_id'], $items);
843
844 // #18285
846
847 $position = 1;
848 foreach ($items as $item) {
849 // we are NOT using hasItem() here, because item might be in multiple item groups
850
851 $it_pres = $item_group->getListPresentation();
852 if ($this->getContainerGUI()->isActiveOrdering() ||
853 $this->getContainerGUI()->isActiveAdministrationPanel()) {
854 $it_pres = "list";
855 }
856
857 $html2 = $this->renderItem($item, $position++, false, "[itgr][" . $a_itgr['obj_id'] . "]", $it_pres);
858 if ($html2 != "") {
859 // :TODO: show it multiple times?
860 $this->renderer->addItemToBlock($a_itgr["ref_id"], $item["type"], $item["child"], $html2, true);
861 }
862 }
863 }
renderItem(array $a_item_data, int $a_position=0, bool $a_force_icon=false, string $a_pos_prefix="", string $item_group_list_presentation="")
Class ilObjItemGroup.
static lookupHideTitle(int $a_id)
static getItemsByItemGroup(int $item_group_ref_id)
Get materials of item group.

References $data, ilContainerSorting\_getInstance(), ilItemGroupBehaviour\ALWAYS_OPEN, ilItemGroupBehaviour\EXPANDABLE_CLOSED, ilItemGroupBehaviour\EXPANDABLE_OPEN, ilContainer\getCompleteDescriptions(), ILIAS\Survey\Mode\getId(), ilObjectActivation\getItemsByItemGroup(), ilObjItemGroup\lookupHideTitle(), and renderer().

+ Here is the call graph for this function:

◆ renderPageEmbeddedBlocks()

ilContainerContentGUI::renderPageEmbeddedBlocks ( )

Definition at line 437 of file class.ilContainerContentGUI.php.

437 : void
438 {
439 // item groups
440 if (isset($this->embedded_block["itgr"]) && is_array($this->embedded_block["itgr"])) {
441 $item_groups = [];
442 if (isset($this->items["itgr"]) && is_array($this->items["itgr"])) {
443 foreach ($this->items["itgr"] as $ig) {
444 $item_groups[$ig["ref_id"]] = $ig;
445 }
446 }
447
448 foreach ($this->embedded_block["itgr"] as $ref_id) {
449 if (isset($item_groups[$ref_id])) {
450 $this->renderItemGroup($item_groups[$ref_id]);
451 }
452 }
453 }
454
455 // type specific blocks
456 if (isset($this->embedded_block["type"]) && is_array($this->embedded_block["type"])) {
457 foreach ($this->embedded_block["type"] as $type) {
458 if (isset($this->items[$type]) && is_array($this->items[$type]) && $this->renderer->addTypeBlock($type)) {
459 if ($this->hasForcedOrderByStartDate($type)) {
460 $this->items['sess'] = ilArrayUtil::sortArray($this->items['sess'], 'start', 'ASC', true, true);
461 }
462
463 $position = 1;
464
465 foreach ($this->items[$type] as $item_data) {
466 if (!$this->renderer->hasItem($item_data["child"])) {
467 $html = $this->renderItem($item_data, $position++);
468 if ($html != "") {
469 $this->renderer->addItemToBlock($type, $item_data["type"], $item_data["child"], $html);
470 }
471 }
472 }
473 }
474 }
475 }
476 }
static sortArray(array $array, string $a_array_sortby_key, string $a_array_sortorder="asc", bool $a_numeric=false, bool $a_keep_keys=false)
$ref_id
Definition: ltiauth.php:66

References $ref_id, renderer(), and ilArrayUtil\sortArray().

+ Here is the call graph for this function:

◆ setOutput()

ilContainerContentGUI::setOutput ( )

This method sets the output of the right and main column in the global standard template.

Definition at line 148 of file class.ilContainerContentGUI.php.

148 : void
149 {
151 $ilCtrl = $this->ctrl;
152
153 // note: we do not want to get the center html in case of
154 // asynchronous calls to blocks in the right column (e.g. news)
155 // see #13012
156 if ($ilCtrl->getNextClass() === "ilcolumngui" &&
157 $ilCtrl->isAsynch()) {
159 }
160
161 // BEGIN ChangeEvent: record read event.
162 $ilUser = $this->user;
163
164 $obj_id = ilObject::_lookupObjId($this->getContainerObject()->getRefId());
166 $this->getContainerObject()->getType(),
167 $this->getContainerObject()->getRefId(),
168 $obj_id,
169 $ilUser->getId()
170 );
171 // END ChangeEvent: record read event.
172
173 $html = $this->getCenterColumnHTML();
174 if ($html !== '') {
175 $tpl->setContent($html);
176 }
177
178 // see above, all other cases (this was the old position of setRightContent,
179 // maybe the position above is ok and all ifs can be removed)
180 if ($ilCtrl->getNextClass() !== "ilcolumngui" ||
181 !$ilCtrl->isAsynch()) {
183 }
184 }
static _recordReadEvent(string $a_type, int $a_ref_id, int $obj_id, int $usr_id, $a_ext_rc=null, $a_ext_time=null)
setRightContent(string $a_html)
Sets content of right column.
setContent(string $a_html)
Sets content for standard template.

References $ctrl, $tpl, $user, ilObject\_lookupObjId(), ilChangeEvent\_recordReadEvent(), getCenterColumnHTML(), getContainerObject(), getRightColumnHTML(), ILIAS\UICore\GlobalTemplate\setContent(), and ILIAS\UICore\GlobalTemplate\setRightContent().

+ Here is the call graph for this function:

Field Documentation

◆ $access

ilAccessHandler ilContainerContentGUI::$access
protected

◆ $block_limit

int ilContainerContentGUI::$block_limit = 0
protected

Definition at line 66 of file class.ilContainerContentGUI.php.

◆ $block_repo

BlockSessionRepository ilContainerContentGUI::$block_repo
protected

Definition at line 65 of file class.ilContainerContentGUI.php.

◆ $clipboard

ClipboardManager ilContainerContentGUI::$clipboard
protected

Definition at line 62 of file class.ilContainerContentGUI.php.

◆ $container_gui

ilContainerGUI ilContainerContentGUI::$container_gui

Definition at line 54 of file class.ilContainerContentGUI.php.

Referenced by getContainerGUI().

◆ $container_obj

ilContainer ilContainerContentGUI::$container_obj

Definition at line 55 of file class.ilContainerContentGUI.php.

Referenced by getContainerObject().

◆ $container_user_filter

ilContainerUserFilter ilContainerContentGUI::$container_user_filter
protected

Definition at line 69 of file class.ilContainerContentGUI.php.

◆ $ctrl

◆ $db

ilDBInterface ilContainerContentGUI::$db
protected

Definition at line 48 of file class.ilContainerContentGUI.php.

Referenced by getCenterColumnHTML().

◆ $details_level

int ilContainerContentGUI::$details_level = self::DETAILS_DEACTIVATED
protected

Definition at line 52 of file class.ilContainerContentGUI.php.

◆ $embedded_block

array ilContainerContentGUI::$embedded_block = []
protected

Definition at line 58 of file class.ilContainerContentGUI.php.

◆ $force_details

int ilContainerContentGUI::$force_details
protected

Definition at line 68 of file class.ilContainerContentGUI.php.

◆ $item_manager

ItemManager ilContainerContentGUI::$item_manager
protected

Definition at line 64 of file class.ilContainerContentGUI.php.

◆ $item_presentation

ILIAS Container Content ItemPresentationManager ilContainerContentGUI::$item_presentation
protected

Definition at line 41 of file class.ilContainerContentGUI.php.

Referenced by ilContainerObjectiveGUI\__construct().

◆ $items

array ilContainerContentGUI::$items = []
protected

Definition at line 59 of file class.ilContainerContentGUI.php.

◆ $list_gui

array ilContainerContentGUI::$list_gui = []
protected

Definition at line 61 of file class.ilContainerContentGUI.php.

◆ $lng

ilLanguage ilContainerContentGUI::$lng
protected

◆ $log

ilLogger ilContainerContentGUI::$log
protected

Definition at line 56 of file class.ilContainerContentGUI.php.

◆ $obj_definition

ilObjectDefinition ilContainerContentGUI::$obj_definition
protected

Definition at line 51 of file class.ilContainerContentGUI.php.

◆ $rbacsystem

ilRbacSystem ilContainerContentGUI::$rbacsystem
protected

Definition at line 49 of file class.ilContainerContentGUI.php.

◆ $renderer

ilContainerRenderer ilContainerContentGUI::$renderer
protected

Definition at line 53 of file class.ilContainerContentGUI.php.

◆ $request

StandardGUIRequest ilContainerContentGUI::$request
protected

Definition at line 63 of file class.ilContainerContentGUI.php.

◆ $settings

ilSetting ilContainerContentGUI::$settings
protected

◆ $tpl

◆ $type_grps

array ilContainerContentGUI::$type_grps = []
protected

Definition at line 67 of file class.ilContainerContentGUI.php.

◆ $user

ilObjUser ilContainerContentGUI::$user
protected

◆ $view_mode

int ilContainerContentGUI::$view_mode
protected

Definition at line 57 of file class.ilContainerContentGUI.php.

Referenced by getViewMode().

◆ DETAILS_ALL

const ilContainerContentGUI::DETAILS_ALL = 2

◆ DETAILS_DEACTIVATED

const ilContainerContentGUI::DETAILS_DEACTIVATED = 0

Definition at line 35 of file class.ilContainerContentGUI.php.

Referenced by ilContainerRenderer\getDetailsLevel().

◆ DETAILS_TITLE

const ilContainerContentGUI::DETAILS_TITLE = 1

◆ VIEW_MODE_LIST

◆ VIEW_MODE_TILE


The documentation for this class was generated from the following file: