ILIAS  release_7 Revision v7.30-3-g800a261c036
ilContainerContentGUI Class Reference

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

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

Public Member Functions

 __construct (&$container_gui_obj)
 Constructor. More...
 
 getContainerObject ()
 Get container object. More...
 
 getContainerGUI ()
 Get container GUI object. More...
 
 setOutput ()
 Sets view output into column layout. More...
 
 getMainContent ()
 Get content HTML for main column, this one must be overwritten in derived classes. More...
 
 determinePageEmbeddedBlocks ($a_container_page_html)
 Determine all blocks that are embedded in the container page. More...
 
 addEmbeddedBlock ($block_type, $block_parameter)
 Add embedded block. More...
 
 getEmbeddedBlocks ()
 Get page embedded blocks. More...
 
 renderPageEmbeddedBlocks ()
 Render Page Embedded Blocks. More...
 
 renderItem ($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
 Render an item. More...
 
 renderCard ($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
 Render card. More...
 
 insertPageEmbeddedBlocks ($a_output_html)
 Insert blocks into container page. More...
 
 getSingleTypeBlockAsynch ($type)
 Render single block. More...
 
 getGroupedObjTypes ()
 Get grouped repository object types. More...
 
 getIntroduction ()
 Get introduction. More...
 
 getItemGroupsHTML ($a_pos=0)
 Get item groups HTML. More...
 
 renderItemGroup ($a_itgr)
 Render item group. More...
 

Data Fields

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

Protected Member Functions

 getViewMode ()
 Get view mode. More...
 
 getDetailsLevel ($a_item_id)
 get details level More...
 
 getRightColumnHTML ()
 Get HTML for right column. More...
 
 getCenterColumnHTML ()
 Get HTML for center column. More...
 
 initRenderer ()
 Init container renderer. More...
 
 clearAdminCommandsDetermination ()
 cleaer administration commands determination More...
 
 determineAdminCommands ($a_ref_id, $a_admin_com_included_in_list=false)
 determin admin commands More...
 
 getItemGUI ($item_data, $a_show_path=false)
 Get ListGUI object for item. More...
 
 hasForcedOrderByStartDate (string $type)
 

Protected Attributes

 $tpl
 
 $ctrl
 
 $user
 
 $lng
 
 $access
 
 $plugin_admin
 
 $db
 
 $rbacsystem
 
 $settings
 
 $obj_definition
 
 $details_level = self::DETAILS_DEACTIVATED
 
 $renderer
 
 $log
 
 $view_mode
 

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
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

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

Constructor & Destructor Documentation

◆ __construct()

ilContainerContentGUI::__construct ( $container_gui_obj)

Constructor.

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

100 {
101 global $DIC;
102
103 $this->tpl = $DIC["tpl"];
104 $this->ctrl = $DIC->ctrl();
105 $this->user = $DIC->user();
106 $this->lng = $DIC->language();
107 $this->access = $DIC->access();
108 $this->plugin_admin = $DIC["ilPluginAdmin"];
109 $this->db = $DIC->database();
110 $this->rbacsystem = $DIC->rbac()->system();
111 $this->settings = $DIC->settings();
112 $this->obj_definition = $DIC["objDefinition"];
113 $tpl = $DIC["tpl"];
114
115 $this->container_gui = $container_gui_obj;
116 $this->container_obj = $this->container_gui->object;
117
118 $tpl->addJavaScript("./Services/Container/js/Container.js");
119
120 $this->log = ilLoggerFactory::getLogger('cont');
121
122 $this->view_mode = (ilContainer::_lookupContainerSetting($this->container_obj->getId(), "list_presentation") == "tile" && !$this->container_gui->isActiveAdministrationPanel() && !$this->container_gui->isActiveOrdering())
123 ? self::VIEW_MODE_TILE
124 : self::VIEW_MODE_LIST;
125 }
user()
Definition: user.php:4
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
static getLogger($a_component_id)
Get component logger.
global $DIC
Definition: goto.php:24
settings()
Definition: settings.php:2

References $DIC, $tpl, ilContainer\_lookupContainerSetting(), ilLoggerFactory\getLogger(), settings(), and user().

+ Here is the call graph for this function:

Member Function Documentation

◆ __forwardToColumnGUI()

ilContainerContentGUI::__forwardToColumnGUI ( )
private

Get columngui output.

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

342 {
343 $ilCtrl = $this->ctrl;
344 $ilAccess = $this->access;
345
346 include_once("Services/Block/classes/class.ilColumnGUI.php");
347
348 // this gets us the subitems we need in setColumnSettings()
349 // todo: this should be done in ilCourseGUI->getSubItems
350
351 $obj_id = ilObject::_lookupObjId($this->getContainerObject()->getRefId());
352 $obj_type = ilObject::_lookupType($obj_id);
353
354 if (!$ilCtrl->isAsynch()) {
355 //if ($column_gui->getScreenMode() != IL_SCREEN_SIDE)
357 // right column wants center
359 $column_gui = new ilColumnGUI($obj_type, IL_COL_RIGHT);
360 $this->getContainerGUI()->setColumnSettings($column_gui);
361 $html = $ilCtrl->forwardCommand($column_gui);
362 }
363 // left column wants center
365 $column_gui = new ilColumnGUI($obj_type, IL_COL_LEFT);
366 $this->getContainerGUI()->setColumnSettings($column_gui);
367 $html = $ilCtrl->forwardCommand($column_gui);
368 }
369 } else {
370 $html = $this->getMainContent();
371 }
372 }
373
374 return $html;
375 }
const IL_SCREEN_SIDE
const IL_COL_RIGHT
const IL_COL_LEFT
Column user interface class.
static getScreenMode()
Get Screen Mode for current command.
static getCmdSide()
Get Column Side of Current Command.
getContainerObject()
Get container object.
getContainerGUI()
Get container GUI object.
getMainContent()
Get content HTML for main column, this one must be overwritten in derived classes.
static _lookupObjId($a_id)
static _lookupType($a_id, $a_reference=false)
lookup object type

References $access, $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:

◆ addEmbeddedBlock()

ilContainerContentGUI::addEmbeddedBlock (   $block_type,
  $block_parameter 
)

Add embedded block.

Parameters

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

487 {
488 $this->embedded_block[$block_type][] = $block_parameter;
489 }

Referenced by determinePageEmbeddedBlocks().

+ Here is the caller graph for this function:

◆ clearAdminCommandsDetermination()

ilContainerContentGUI::clearAdminCommandsDetermination ( )
protected

cleaer administration commands determination

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

381 {
382 $this->adminCommands = false;
383 }

Referenced by ilContainerSessionsContentGUI\__showMaterials(), ilContainerSimpleContentGUI\__showMaterials(), ilContainerByTypeContentGUI\renderItemList(), ilContainerObjectiveGUI\showMaterials(), and ilContainerObjectiveGUI\showObjectives().

+ Here is the caller graph for this function:

◆ determineAdminCommands()

ilContainerContentGUI::determineAdminCommands (   $a_ref_id,
  $a_admin_com_included_in_list = false 
)
protected

determin admin commands

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

389 {
391
392 //echo "-".$a_admin_com_included_in_list."-";
393
394 if (!$this->adminCommands) {
395 if (!$this->getContainerGUI()->isActiveAdministrationPanel()) {
396 if ($rbacsystem->checkAccess("delete", $a_ref_id)) {
397 $this->adminCommands = true;
398 }
399 } else {
400 $this->adminCommands = $a_admin_com_included_in_list;
401 }
402 }
403 }

References $rbacsystem, and getContainerGUI().

Referenced by renderItem().

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

◆ determinePageEmbeddedBlocks()

ilContainerContentGUI::determinePageEmbeddedBlocks (   $a_container_page_html)

Determine all blocks that are embedded in the container page.

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

462 {
463 $type_grps = $this->getGroupedObjTypes();
464
465 // iterate all types
466 foreach ($type_grps as $type => $v) {
467 // set template (overall or type specific)
468 if (is_int(strpos($a_container_page_html, "[list-" . $type . "]"))) {
469 $this->addEmbeddedBlock("type", $type);
470 }
471 }
472
473 // determine item groups
474 while (preg_match('~\[(item-group-([0-9]*))\]~i', $a_container_page_html, $found)) {
475 $this->addEmbeddedBlock("itgr", (int) $found[2]);
476
477 $a_container_page_html = preg_replace('~\[' . $found[1] . '\]~i', $html, $a_container_page_html);
478 }
479 }
getGroupedObjTypes()
Get grouped repository object types.
addEmbeddedBlock($block_type, $block_parameter)
Add embedded block.
$type

References $type, addEmbeddedBlock(), and getGroupedObjTypes().

Referenced by insertPageEmbeddedBlocks().

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

◆ getCenterColumnHTML()

ilContainerContentGUI::getCenterColumnHTML ( )
protected

Get HTML for center column.

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

270 {
271 $ilCtrl = $this->ctrl;
274
275 $ilCtrl->saveParameterByClass("ilcolumngui", "col_return");
276
277 $tpl->addOnLoadCode("il.Object.setRedrawListItemUrl('" .
278 $ilCtrl->getLinkTarget($this->container_gui, "redrawListItem", "", true) . "');");
279
280 $tpl->addOnLoadCode("il.Object.setRatingUrl('" .
281 $ilCtrl->getLinkTargetByClass(
282 array(get_class($this->container_gui), "ilcommonactiondispatchergui", "ilratinggui"),
283 "saveRating",
284 "",
285 true,
286 false
287 ) . "');");
288
289 switch ($ilCtrl->getNextClass()) {
290 case "ilcolumngui":
291 $this->container_gui->setSideColumnReturn();
292 $html = $this->__forwardToColumnGUI();
293 break;
294
295 default:
296 $ilDB->useSlave(true);
297 $html = $this->getMainContent();
298 $ilDB->useSlave(false);
299 break;
300 }
301
302 return $html;
303 }
__forwardToColumnGUI()
Get columngui output.
global $ilDB

References $ctrl, $db, $ilDB, $tpl, __forwardToColumnGUI(), and getMainContent().

Referenced by setOutput().

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

◆ getContainerGUI()

◆ getContainerObject()

◆ getDetailsLevel()

ilContainerContentGUI::getDetailsLevel (   $a_item_id)
protected

get details level

@access protected

Parameters

return

Reimplemented in ilContainerObjectiveGUI, ilContainerByTypeContentGUI, ilContainerSessionsContentGUI, and ilContainerSimpleContentGUI.

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

References $details_level.

Referenced by renderItem().

+ Here is the caller graph for this function:

◆ getEmbeddedBlocks()

ilContainerContentGUI::getEmbeddedBlocks ( )

Get page embedded blocks.

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

495 {
496 return $this->embedded_block;
497 }

◆ getGroupedObjTypes()

ilContainerContentGUI::getGroupedObjTypes ( )

Get grouped repository object types.

Returns
array array of object types

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

862 {
863 $objDefinition = $this->obj_definition;
864
865 if (empty($this->type_grps)) {
866 $this->type_grps =
867 $objDefinition->getGroupedRepositoryObjectTypes($this->getContainerObject()->getType());
868 }
869 return $this->type_grps;
870 }

References $obj_definition, and getContainerObject().

Referenced by determinePageEmbeddedBlocks(), insertPageEmbeddedBlocks(), and ilContainerByTypeContentGUI\renderItemList().

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

◆ getIntroduction()

ilContainerContentGUI::getIntroduction ( )

Get introduction.

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

876 {
879 $ilCtrl = $this->ctrl;
880
881 $lng->loadLanguageModule("rep");
882
883 $tpl = new ilTemplate("tpl.rep_intro.html", true, true, "Services/Repository");
884 $tpl->setVariable("IMG_REP_LARGE", ilObject::_getIcon("", "big", "root"));
885 $tpl->setVariable("TXT_WELCOME", $lng->txt("rep_intro"));
886 $tpl->setVariable("TXT_INTRO_1", $lng->txt("rep_intro1"));
887 $tpl->setVariable("TXT_INTRO_2", $lng->txt("rep_intro2"));
888 $tpl->setVariable("TXT_INTRO_3", sprintf($lng->txt("rep_intro3"), $lng->txt("add")));
889 $tpl->setVariable("TXT_INTRO_4", sprintf($lng->txt("rep_intro4"), $lng->txt("cat_add")));
890 $tpl->setVariable("TXT_INTRO_5", $lng->txt("rep_intro5"));
891 $tpl->setVariable("TXT_INTRO_6", $lng->txt("rep_intro6"));
892
893 return $tpl->get();
894 }
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
special template class to simplify handling of ITX/PEAR
$ilUser
Definition: imgupload.php:18

References $ctrl, $ilUser, $lng, $tpl, $user, and ilObject\_getIcon().

Referenced by ilContainerByTypeContentGUI\getMainContent().

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

◆ getItemGroupsHTML()

ilContainerContentGUI::getItemGroupsHTML (   $a_pos = 0)

Get item groups HTML.

Parameters

return

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

903 {
904 if (is_array($this->items["itgr"])) {
905 foreach ($this->items["itgr"] as $itgr) {
906 if (!$this->renderer->hasCustomBlock($itgr["child"])) {
907 $this->renderItemGroup($itgr);
908
909 $this->renderer->setBlockPosition($itgr["ref_id"], ++$a_pos);
910 }
911 }
912 }
913 return $a_pos;
914 }
renderItemGroup($a_itgr)
Render item group.

References renderItemGroup().

Referenced by ilContainerSessionsContentGUI\__showMaterials(), ilContainerSimpleContentGUI\__showMaterials(), ilContainerByTypeContentGUI\renderItemList(), and ilContainerObjectiveGUI\showMaterials().

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

◆ getItemGUI()

ilContainerContentGUI::getItemGUI (   $item_data,
  $a_show_path = false 
)
protected

Get ListGUI object for item.

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

409 {
410 include_once 'Services/Object/classes/class.ilObjectListGUIFactory.php';
411
412 // get item list gui object
413 if (!is_object($this->list_gui[$item_data["type"]])) {
414 $item_list_gui = &ilObjectListGUIFactory::_getListGUIByType($item_data["type"]);
415 $item_list_gui->setContainerObject($this->getContainerGUI());
416 $this->list_gui[$item_data["type"]] = &$item_list_gui;
417 } else {
418 $item_list_gui = &$this->list_gui[$item_data["type"]];
419 }
420
421 // unique js-ids
422 $item_list_gui->setParentRefId($item_data["parent"]);
423
424 $item_list_gui->setDefaultCommandParameters(array());
425 $item_list_gui->disableTitleLink(false);
426 $item_list_gui->resetConditionTarget();
427
428 if ($this->container_obj->isClassificationFilterActive()) {
429 $item_list_gui->enablePath(
430 true,
431 $this->container_obj->getRefId(),
433 );
434 }
435
436 // show administration command buttons (or not)
437 if (!$this->getContainerGUI()->isActiveAdministrationPanel()) {
438 // $item_list_gui->enableDelete(false);
439// $item_list_gui->enableLink(false);
440// $item_list_gui->enableCut(false);
441 }
442
443 // activate common social commands
444 $item_list_gui->enableComments(true);
445 $item_list_gui->enableNotes(true);
446 $item_list_gui->enableTags(true);
447 $item_list_gui->enableRating(true);
448
449 // reset
450 $item_list_gui->forceVisibleOnly(false);
451
452 // container specific modifications
453 $this->getContainerGUI()->modifyItemGUI($item_list_gui, $item_data, $a_show_path);
454
455 return $item_list_gui;
456 }
static _getListGUIByType( $type, $context=ilObjectListGUI::CONTEXT_REPOSITORY)
PathGUI which handles materials assigned to sessions.

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

Referenced by renderCard(), renderItem(), renderItemGroup(), and ilContainerObjectiveGUI\renderObjective().

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

◆ getMainContent()

ilContainerContentGUI::getMainContent ( )
abstract

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

Reimplemented in ilContainerByTypeContentGUI, ilContainerObjectiveGUI, ilContainerSessionsContentGUI, and ilContainerSimpleContentGUI.

Referenced by __forwardToColumnGUI(), and getCenterColumnHTML().

+ Here is the caller graph for this function:

◆ getRightColumnHTML()

ilContainerContentGUI::getRightColumnHTML ( )
protected

Get HTML for right column.

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

217 {
220 $ilCtrl = $this->ctrl;
221 $ilAccess = $this->access;
222 $ilPluginAdmin = $this->plugin_admin;
223
224 $ilCtrl->saveParameterByClass("ilcolumngui", "col_return");
225
226 $obj_id = ilObject::_lookupObjId($this->getContainerObject()->getRefId());
227 $obj_type = ilObject::_lookupType($obj_id);
228
229 include_once("Services/Block/classes/class.ilColumnGUI.php");
230 $column_gui = new ilColumnGUI($obj_type, IL_COL_RIGHT);
231
232 if ($column_gui->getScreenMode() == IL_SCREEN_FULL) {
233 return "";
234 }
235
236 $this->getContainerGUI()->setColumnSettings($column_gui);
237
238 if ($ilCtrl->getNextClass() == "ilcolumngui" &&
239 $column_gui->getCmdSide() == IL_COL_RIGHT &&
240 $column_gui->getScreenMode() == IL_SCREEN_SIDE) {
241 $html = $ilCtrl->forwardCommand($column_gui);
242 } else {
243 $render_content = ($ilCtrl->getNextClass() == "" &&
244 in_array($ilCtrl->getCmd(), ["view", "render"]));
245 $render_content = false;
246 if (!$ilCtrl->isAsynch() || $render_content) {
247 $html = "";
248
249 // user interface plugin slot + default rendering
250 include_once("./Services/UIComponent/classes/class.ilUIHookProcessor.php");
251 $uip = new ilUIHookProcessor(
252 "Services/Container",
253 "right_column",
254 array("container_content_gui" => $this)
255 );
256 if (!$uip->replaced()) {
257 $html = $ilCtrl->getHTML($column_gui);
258 }
259 $html = $uip->getHTML($html);
260 }
261 }
262
263 return $html;
264 }
const IL_SCREEN_FULL
Class ilUIHookProcessor.

References $access, $ctrl, $ilUser, $lng, $plugin_admin, $user, ilObject\_lookupObjId(), ilObject\_lookupType(), getContainerGUI(), getContainerObject(), IL_COL_RIGHT, IL_SCREEN_FULL, and IL_SCREEN_SIDE.

Referenced by setOutput().

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

◆ getSingleTypeBlockAsynch()

ilContainerContentGUI::getSingleTypeBlockAsynch (   $type)

Render single block.

Parameters
stringblock id
Returns
string

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

809 {
810 $this->initRenderer();
811 // get all sub items
812 $this->items = $this->getContainerObject()->getSubItems(
813 $this->getContainerGUI()->isActiveAdministrationPanel()
814 );
815
816
817 $ref_ids = array_map(function ($i) {
818 $parts = explode("_", $i);
819 return $parts[2];
820 }, $_POST["ids"]);
821
822 // iterate all types
823 if (is_array($this->items[$type]) &&
824 $this->renderer->addTypeBlock($type)) {
825 //$this->renderer->setBlockPosition($type, ++$pos);
826
827 $position = 1;
828 foreach ($this->items[$type] as $item_data) {
829 $item_ref_id = $item_data["child"];
830
831 if (in_array($item_ref_id, $ref_ids)) {
832 continue;
833 }
834
835 if ($this->block_limit > 0 && $position == $this->block_limit + 1) {
836 if ($position == $this->block_limit + 1) {
837 // render more button
838 $this->renderer->addShowMoreButton($type);
839 }
840 continue;
841 }
842
843 if (!$this->renderer->hasItem($item_ref_id)) {
844 $html = $this->renderItem($item_data, $position);
845 if ($html != "") {
846 $position++;
847 $this->renderer->addItemToBlock($type, $item_data["type"], $item_ref_id, $html);
848 }
849 }
850 }
851 }
852
853 return $this->renderer->renderSingleTypeBlock($type);
854 }
$_POST["username"]
initRenderer()
Init container renderer.
renderItem($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
Render an item.
$i
Definition: metadata.php:24

References $_POST, $i, $type, getContainerGUI(), getContainerObject(), initRenderer(), and renderItem().

+ Here is the call graph for this function:

◆ getViewMode()

ilContainerContentGUI::getViewMode ( )
protected

Get view mode.

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

References $view_mode.

Referenced by renderItem().

+ Here is the caller graph for this function:

◆ hasForcedOrderByStartDate()

ilContainerContentGUI::hasForcedOrderByStartDate ( string  $type)
protected

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

546 : bool
547 {
548 return $type === 'sess' && get_class($this) === ilContainerSessionsContentGUI::class;
549 }

References $type.

Referenced by renderItem(), and renderPageEmbeddedBlocks().

+ Here is the caller graph for this function:

◆ initRenderer()

ilContainerContentGUI::initRenderer ( )
protected

Init container renderer.

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

315 {
316 include_once('./Services/Container/classes/class.ilContainerSorting.php');
317 $sorting = ilContainerSorting::_getInstance($this->getContainerObject()->getId());
318
319 include_once "Services/Container/classes/class.ilContainerRenderer.php";
320 $this->renderer = new ilContainerRenderer(
321 ($this->getContainerGUI()->isActiveAdministrationPanel() && !$_SESSION["clipboard"]),
322 $this->getContainerGUI()->isMultiDownloadEnabled(),
323 $this->getContainerGUI()->isActiveOrdering() && (get_class($this) != "ilContainerObjectiveGUI") // no block sorting in objective view
324 ,
325 $sorting->getBlockPositions(),
326 $this->container_gui,
327 $this->getViewMode()
328 );
329
330 // all event items are included per session rendering
331 // and should return true for hasItem
332 $event_items = ilEventItems::_getItemsOfContainer($this->container_obj->getRefId());
333 foreach ($event_items as $ev) {
334 $this->renderer->addItemId($ev);
335 }
336 }
$_SESSION["AccountId"]
Class ilContainerRenderer.
static _getInstance($a_obj_id)
get instance by obj_id
static _getItemsOfContainer($a_ref_id)

References $_SESSION, ilContainerSorting\_getInstance(), ilEventItems\_getItemsOfContainer(), getContainerGUI(), and getContainerObject().

Referenced by ilContainerSessionsContentGUI\__showMaterials(), ilContainerSimpleContentGUI\__showMaterials(), ilContainerObjectiveGUI\getMainContent(), getSingleTypeBlockAsynch(), and ilContainerByTypeContentGUI\renderItemList().

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

◆ insertPageEmbeddedBlocks()

ilContainerContentGUI::insertPageEmbeddedBlocks (   $a_output_html)

Insert blocks into container page.

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

772 {
773 $this->determinePageEmbeddedBlocks($a_output_html);
774 $this->renderPageEmbeddedBlocks($this->items);
775
776 // iterate all types
777 foreach ($this->getGroupedObjTypes() as $type => $v) {
778 // set template (overall or type specific)
779 if (is_int(strpos($a_output_html, "[list-" . $type . "]"))) {
780 $a_output_html = preg_replace(
781 '~\[list-' . $type . '\]~i',
782 $this->renderer->renderSingleTypeBlock($type),
783 $a_output_html
784 );
785 }
786 }
787
788 // insert all item groups
789 while (preg_match('~\[(item-group-([0-9]*))\]~i', $a_output_html, $found)) {
790 $itgr_ref_id = (int) $found[2];
791
792 $a_output_html = preg_replace(
793 '~\[' . $found[1] . '\]~i',
794 $this->renderer->renderSingleCustomBlock($itgr_ref_id),
795 $a_output_html
796 );
797 }
798
799 return $a_output_html;
800 }
renderPageEmbeddedBlocks()
Render Page Embedded Blocks.
determinePageEmbeddedBlocks($a_container_page_html)
Determine all blocks that are embedded in the container page.

References $type, determinePageEmbeddedBlocks(), getGroupedObjTypes(), and renderPageEmbeddedBlocks().

Referenced by ilContainerSessionsContentGUI\__showMaterials(), ilContainerSimpleContentGUI\__showMaterials(), ilContainerByTypeContentGUI\renderItemList(), and ilContainerObjectiveGUI\showObjectives().

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

◆ renderCard()

ilContainerContentGUI::renderCard (   $a_item_data,
  $a_position = 0,
  $a_force_icon = false,
  $a_pos_prefix = "" 
)

Render card.

Parameters
$a_item_data
int$a_position
bool$a_force_icon
string$a_pos_prefix
Returns
string

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

737 {
738 global $DIC;
739 $f = $DIC->ui()->factory();
740 $user = $DIC->user();
741
742 $item_list_gui = $this->getItemGUI($a_item_data);
743 $item_list_gui->setAjaxHash(ilCommonActionDispatcherGUI::buildAjaxHash(
745 $a_item_data['ref_id'],
746 $a_item_data['type'],
747 $a_item_data['obj_id']
748 ));
749 $item_list_gui->initItem(
750 $a_item_data['ref_id'],
751 $a_item_data['obj_id'],
752 $a_item_data['type'],
753 $a_item_data['title'],
754 $a_item_data['description']
755 );
756
757 // actions
758 $item_list_gui->insertCommands();
759 return $item_list_gui->getAsCard(
760 $a_item_data['ref_id'],
761 (int) $a_item_data['obj_id'],
762 (string) $a_item_data['type'],
763 (string) $a_item_data['title'],
764 (string) $a_item_data['description']
765 );
766 }
static buildAjaxHash( $a_node_type, $a_node_id, $a_obj_type, $a_obj_id, $a_sub_type=null, $a_sub_id=null, $a_news_id=0)
Build ajax hash.
getItemGUI($item_data, $a_show_path=false)
Get ListGUI object for item.

References $DIC, Vendor\Package\$f, $user, ilCommonActionDispatcherGUI\buildAjaxHash(), getItemGUI(), and ilCommonActionDispatcherGUI\TYPE_REPOSITORY.

Referenced by renderItem().

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

◆ renderItem()

ilContainerContentGUI::renderItem (   $a_item_data,
  $a_position = 0,
  $a_force_icon = false,
  $a_pos_prefix = "" 
)

Render an item.

Parameters
$a_item_data
int$a_position
bool$a_force_icon
string$a_pos_prefix
Returns
string

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

560 {
562 $ilAccess = $this->access;
563 $ilCtrl = $this->ctrl;
564
565 // Pass type, obj_id and tree to checkAccess method to improve performance
566 if (!$ilAccess->checkAccess('visible', '', $a_item_data['ref_id'], $a_item_data['type'], $a_item_data['obj_id'], $a_item_data['tree'])) {
567 return '';
568 }
569
570 if ($this->getViewMode() == self::VIEW_MODE_TILE) {
571 return $this->renderCard($a_item_data, $a_position, $a_force_icon, $a_pos_prefix);
572 }
573
574 $item_list_gui = $this->getItemGUI($a_item_data);
575 if ($ilSetting->get("icon_position_in_lists") == "item_rows" ||
576 $a_item_data["type"] == "sess" || $a_force_icon) {
577 $item_list_gui->enableIcon(true);
578 }
579
580 if ($this->getContainerGUI()->isActiveAdministrationPanel() && !$_SESSION["clipboard"]) {
581 $item_list_gui->enableCheckbox(true);
582 } elseif ($this->getContainerGUI()->isMultiDownloadEnabled()) {
583 // display multi download checkboxes
584 $item_list_gui->enableDownloadCheckbox($a_item_data["ref_id"], true);
585 }
586
587 if ($this->getContainerGUI()->isActiveItemOrdering() && !$this->hasForcedOrderByStartDate($a_item_data['type'])) {
588 $item_list_gui->setPositionInputField(
589 $a_pos_prefix . "[" . $a_item_data["ref_id"] . "]",
590 sprintf('%d', (int) $a_position * 10)
591 );
592 }
593
594 if ($a_item_data['type'] == 'sess' and get_class($this) != 'ilContainerObjectiveGUI') {
595 switch ($this->getDetailsLevel($a_item_data['obj_id'])) {
597 $item_list_gui->setDetailsLevel(ilObjectListGUI::DETAILS_MINIMAL);
598 $item_list_gui->enableExpand(true);
599 $item_list_gui->setExpanded(false);
600 $item_list_gui->enableDescription(false);
601 $item_list_gui->enableProperties(true);
602 break;
603
605 $item_list_gui->setDetailsLevel(ilObjectListGUI::DETAILS_ALL);
606 $item_list_gui->enableExpand(true);
607 $item_list_gui->setExpanded(true);
608 $item_list_gui->enableDescription(true);
609 $item_list_gui->enableProperties(true);
610 break;
611
612 default:
613 $item_list_gui->setDetailsLevel(ilObjectListGUI::DETAILS_ALL);
614 $item_list_gui->enableExpand(true);
615 $item_list_gui->enableDescription(true);
616 $item_list_gui->enableProperties(true);
617 break;
618 }
619 }
620
621 if (method_exists($this, "addItemDetails")) {
622 $this->addItemDetails($item_list_gui, $a_item_data);
623 }
624
625 // show subitems
626 if ($a_item_data['type'] == 'sess' and (
627 $this->getDetailsLevel($a_item_data['obj_id']) != self::DETAILS_TITLE or
628 $this->getContainerGUI()->isActiveAdministrationPanel() or
629 $this->getContainerGUI()->isActiveItemOrdering()
630 )
631 ) {
632 $pos = 1;
633
634 include_once('./Services/Container/classes/class.ilContainerSorting.php');
635 include_once('./Services/Object/classes/class.ilObjectActivation.php');
636 $items = ilObjectActivation::getItemsByEvent($a_item_data['obj_id']);
637 $items = ilContainerSorting::_getInstance($this->getContainerObject()->getId())->sortSubItems('sess', $a_item_data['obj_id'], $items);
639
640 $item_readable = $ilAccess->checkAccess('read', '', $a_item_data['ref_id']);
641
642 foreach ($items as $item) {
643 // TODO: this should be removed and be handled by if(strlen($sub_item_html))
644 // see mantis: 0003944
645 if (!$ilAccess->checkAccess('visible', '', $item['ref_id'])) {
646 continue;
647 }
648
649 $item_list_gui2 = $this->getItemGUI($item);
650 $item_list_gui2->enableIcon(true);
651 $item_list_gui2->enableItemDetailLinks(false);
652
653 // unique js-ids
654 $item_list_gui2->setParentRefId($a_item_data['ref_id']);
655
656 // @see mantis 10488
657 if (!$item_readable and !$ilAccess->checkAccess('write', '', $item['ref_id'])) {
658 $item_list_gui2->forceVisibleOnly(true);
659 }
660
661 if ($this->getContainerGUI()->isActiveAdministrationPanel() && !$_SESSION["clipboard"]) {
662 $item_list_gui2->enableCheckbox(true);
663 } elseif ($this->getContainerGUI()->isMultiDownloadEnabled()) {
664 // display multi download checkbox
665 $item_list_gui2->enableDownloadCheckbox($item['ref_id'], true);
666 }
667
668 if ($this->getContainerGUI()->isActiveItemOrdering()) {
669 $item_list_gui2->setPositionInputField(
670 "[sess][" . $a_item_data['obj_id'] . "][" . $item["ref_id"] . "]",
671 sprintf('%d', (int) $pos * 10)
672 );
673 $pos++;
674 }
675
676 // #10611
678
679 $sub_item_html = $item_list_gui2->getListItemHTML(
680 $item['ref_id'],
681 $item['obj_id'],
682 $item['title'],
683 $item['description']
684 );
685
686 $this->determineAdminCommands($item["ref_id"], $item_list_gui2->adminCommandsIncluded());
687 if (strlen($sub_item_html)) {
688 $item_list_gui->addSubItemHTML($sub_item_html);
689 }
690 }
691 }
692
693
694 if ($ilSetting->get("item_cmd_asynch")) {
695 $asynch = true;
696 $ilCtrl->setParameter($this->container_gui, "cmdrefid", $a_item_data['ref_id']);
697 $asynch_url = $ilCtrl->getLinkTarget(
698 $this->container_gui,
699 "getAsynchItemList",
700 "",
701 true,
702 false
703 );
704 $ilCtrl->setParameter($this->container_gui, "cmdrefid", "");
705 }
706
707 include_once "Services/Object/classes/class.ilObjectActivation.php";
708 ilObjectActivation::addListGUIActivationProperty($item_list_gui, $a_item_data);
709
710 $html = $item_list_gui->getListItemHTML(
711 $a_item_data['ref_id'],
712 $a_item_data['obj_id'],
713 $a_item_data['title'],
714 $a_item_data['description'],
715 $asynch,
716 false,
717 $asynch_url
718 );
720 $a_item_data["ref_id"],
721 $item_list_gui->adminCommandsIncluded()
722 );
723
724
725 return $html;
726 }
getDetailsLevel($a_item_id)
get details level
renderCard($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
Render card.
determineAdminCommands($a_ref_id, $a_admin_com_included_in_list=false)
determin admin commands
static getCompleteDescriptions(array $objects)
overwrites description fields to long or short description in an assoc array keys needed (obj_id and ...
static addListGUIActivationProperty(ilObjectListGUI $a_list_gui, array &$a_item)
Get timing details for list gui.
static getItemsByEvent($a_event_id)
Get session material / event items.
global $ilSetting
Definition: privfeed.php:17

References $_SESSION, $access, $ctrl, $ilSetting, $settings, ilContainerSorting\_getInstance(), ilObjectActivation\addListGUIActivationProperty(), DETAILS_ALL, ilObjectListGUI\DETAILS_ALL, ilObjectListGUI\DETAILS_MINIMAL, DETAILS_TITLE, determineAdminCommands(), ilContainer\getCompleteDescriptions(), getContainerGUI(), getContainerObject(), getDetailsLevel(), getItemGUI(), ilObjectActivation\getItemsByEvent(), getViewMode(), hasForcedOrderByStartDate(), and renderCard().

Referenced by ilContainerSessionsContentGUI\__showMaterials(), ilContainerSimpleContentGUI\__showMaterials(), getSingleTypeBlockAsynch(), renderItemGroup(), ilContainerByTypeContentGUI\renderItemList(), renderPageEmbeddedBlocks(), ilContainerObjectiveGUI\renderTest(), and ilContainerObjectiveGUI\showMaterials().

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

◆ renderItemGroup()

ilContainerContentGUI::renderItemGroup (   $a_itgr)

Render item group.

Parameters

return

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

923 {
924 $ilAccess = $this->access;
926
927 // #16493
928 $perm_ok = ($ilAccess->checkAccess("visible", "", $a_itgr['ref_id']) &&
929 $ilAccess->checkAccess("read", "", $a_itgr['ref_id']));
930
931 include_once('./Services/Container/classes/class.ilContainerSorting.php');
932 include_once('./Services/Object/classes/class.ilObjectActivation.php');
933 $items = ilObjectActivation::getItemsByItemGroup($a_itgr['ref_id']);
934
935 // get all valid ids (this is filtered)
936 $all_ids = array_map(function ($i) {
937 return $i["child"];
938 }, $this->items["_all"]);
939
940 // remove filtered items
941 $items = array_filter($items, function ($i) use ($all_ids) {
942 return in_array($i["ref_id"], $all_ids);
943 });
944
945 // if no permission is given, set the items to "rendered" but
946 // do not display the whole block
947 if (!$perm_ok) {
948 foreach ($items as $item) {
949 $this->renderer->hideItem($item["child"]);
950 }
951 return;
952 }
953
954 $item_list_gui = $this->getItemGUI($a_itgr);
955 $item_list_gui->enableNotes(false);
956 $item_list_gui->enableTags(false);
957 $item_list_gui->enableComments(false);
958 $item_list_gui->enableTimings(false);
959 $item_list_gui->getListItemHTML(
960 $a_itgr["ref_id"],
961 $a_itgr["obj_id"],
962 $a_itgr["title"],
963 $a_itgr["description"]
964 );
965 $commands_html = $item_list_gui->getCommandsHTML();
966
967 // determine behaviour
968 include_once("./Modules/ItemGroup/classes/class.ilObjItemGroup.php");
969 include_once("./Modules/ItemGroup/classes/class.ilItemGroupBehaviour.php");
970 $beh = ilObjItemGroup::lookupBehaviour($a_itgr["obj_id"]);
971 include_once("./Services/Container/classes/class.ilContainerBlockPropertiesStorageGUI.php");
973 "itgr_" . $a_itgr["ref_id"],
974 $ilUser->getId(),
975 "opened"
976 );
977 if ($stored_val !== false && $beh != ilItemGroupBehaviour::ALWAYS_OPEN) {
978 $beh = ($stored_val == "1")
981 }
982
983 $this->ctrl->setParameterByClass(
984 ilContainerBlockPropertiesStorageGUI::class,
985 'cont_block_id',
986 'itgr_' . $a_itgr['ref_id']
987 );
988 $target_url = $this->ctrl->getLinkTargetByClass(
989 ilContainerBlockPropertiesStorageGUI::class,
990 "store",
991 "",
992 true
993 );
994 $data = array(
995 "behaviour" => $beh,
996 "store-url" => $target_url,
997 );
998 if (ilObjItemGroup::lookupHideTitle($a_itgr["obj_id"]) &&
999 !$this->getContainerGUI()->isActiveAdministrationPanel()) {
1000 $this->renderer->addCustomBlock($a_itgr["ref_id"], "", $commands_html, $data);
1001 } else {
1002 $this->renderer->addCustomBlock($a_itgr["ref_id"], $a_itgr["title"], $commands_html, $data);
1003 }
1004
1005
1006 // render item group sub items
1007
1009 $this->getContainerObject()->getId()
1010 )->sortSubItems('itgr', $a_itgr['obj_id'], $items);
1011
1012 // #18285
1013 $items = ilContainer::getCompleteDescriptions($items);
1014
1015 $position = 1;
1016 foreach ($items as $item) {
1017 // we are NOT using hasItem() here, because item might be in multiple item groups
1018 $html2 = $this->renderItem($item, $position++, false, "[itgr][" . $a_itgr['obj_id'] . "]");
1019 if ($html2 != "") {
1020 // :TODO: show it multiple times?
1021 $this->renderer->addItemToBlock($a_itgr["ref_id"], $item["type"], $item["child"], $html2, true);
1022 }
1023 }
1024 }
static getProperty($a_block_id, $a_user_id, $a_property)
Get property in session or db.
static lookupBehaviour($a_id)
Lookup behaviour.
static lookupHideTitle($a_id)
Lookup hide title.
static getItemsByItemGroup($a_item_group_ref_id)
Get materials of item group.
$data
Definition: storeScorm.php:23

References $access, $data, $i, $ilUser, $user, ilContainerSorting\_getInstance(), ilItemGroupBehaviour\ALWAYS_OPEN, ilItemGroupBehaviour\EXPANDABLE_CLOSED, ilItemGroupBehaviour\EXPANDABLE_OPEN, ilContainer\getCompleteDescriptions(), getContainerGUI(), getContainerObject(), getItemGUI(), ilObjectActivation\getItemsByItemGroup(), ilContainerBlockPropertiesStorageGUI\getProperty(), ilObjItemGroup\lookupBehaviour(), ilObjItemGroup\lookupHideTitle(), and renderItem().

Referenced by getItemGroupsHTML(), and renderPageEmbeddedBlocks().

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

◆ renderPageEmbeddedBlocks()

ilContainerContentGUI::renderPageEmbeddedBlocks ( )

Render Page Embedded Blocks.

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

503 {
505
506 // item groups
507 if (is_array($this->embedded_block["itgr"])) {
508 $item_groups = array();
509 if (is_array($this->items["itgr"])) {
510 foreach ($this->items["itgr"] as $ig) {
511 $item_groups[$ig["ref_id"]] = $ig;
512 }
513 }
514
515 foreach ($this->embedded_block["itgr"] as $ref_id) {
516 if (isset($item_groups[$ref_id])) {
517 $this->renderItemGroup($item_groups[$ref_id]);
518 }
519 }
520 }
521
522 // type specific blocks
523 if (is_array($this->embedded_block["type"])) {
524 foreach ($this->embedded_block["type"] as $k => $type) {
525 if (is_array($this->items[$type]) &&
526 $this->renderer->addTypeBlock($type)) {
527 if ($this->hasForcedOrderByStartDate($type)) {
528 $this->items[$type] = ilUtil::sortArray($this->items[$type], 'start', 'ASC', true, true);
529 }
530
531 $position = 1;
532
533 foreach ($this->items[$type] as $k => $item_data) {
534 if (!$this->renderer->hasItem($item_data["child"])) {
535 $html = $this->renderItem($item_data, $position++);
536 if ($html != "") {
537 $this->renderer->addItemToBlock($type, $item_data["type"], $item_data["child"], $html);
538 }
539 }
540 }
541 }
542 }
543 }
544 }
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray

References $lng, $type, hasForcedOrderByStartDate(), renderItem(), renderItemGroup(), and ilUtil\sortArray().

Referenced by insertPageEmbeddedBlocks().

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

◆ setOutput()

ilContainerContentGUI::setOutput ( )

Sets view output into column layout.

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

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

175 {
177 $ilCtrl = $this->ctrl;
178
179 // note: we do not want to get the center html in case of
180 // asynchronous calls to blocks in the right column (e.g. news)
181 // see #13012
182 if ($ilCtrl->getNextClass() == "ilcolumngui" &&
183 $ilCtrl->isAsynch()) {
184 $tpl->setRightContent($this->getRightColumnHTML());
185 }
186
187 // BEGIN ChangeEvent: record read event.
188 require_once('Services/Tracking/classes/class.ilChangeEvent.php');
190
191 $obj_id = ilObject::_lookupObjId($this->getContainerObject()->getRefId());
193 $this->getContainerObject()->getType(),
194 $this->getContainerObject()->getRefId(),
195 $obj_id,
196 $ilUser->getId()
197 );
198 // END ChangeEvent: record read event.
199
200 $html = $this->getCenterColumnHTML();
201 if (strlen($html)) {
202 $tpl->setContent($html);
203 }
204
205 // see above, all other cases (this was the old position of setRightContent,
206 // maybe the position above is ok and all ifs can be removed)
207 if ($ilCtrl->getNextClass() != "ilcolumngui" ||
208 !$ilCtrl->isAsynch()) {
209 $tpl->setRightContent($this->getRightColumnHTML());
210 }
211 }
static _recordReadEvent( $a_type, $a_ref_id, $obj_id, $usr_id, $isCatchupWriteEvents=true, $a_ext_rc=false, $a_ext_time=false)
Records a read event and catches up with write events.
getCenterColumnHTML()
Get HTML for center column.
getRightColumnHTML()
Get HTML for right column.

References $ctrl, $ilUser, $tpl, $user, ilObject\_lookupObjId(), ilChangeEvent\_recordReadEvent(), getCenterColumnHTML(), getContainerObject(), and getRightColumnHTML().

+ Here is the call graph for this function:

Field Documentation

◆ $access

◆ $container_gui

ilContainerContentGUI::$container_gui

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

Referenced by getContainerGUI().

◆ $container_obj

ilContainerContentGUI::$container_obj

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

Referenced by getContainerObject().

◆ $ctrl

◆ $db

ilContainerContentGUI::$db
protected

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

Referenced by getCenterColumnHTML().

◆ $details_level

ilContainerContentGUI::$details_level = self::DETAILS_DEACTIVATED
protected

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

Referenced by getDetailsLevel().

◆ $lng

◆ $log

ilContainerContentGUI::$log
protected

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

◆ $obj_definition

ilContainerContentGUI::$obj_definition
protected

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

Referenced by getGroupedObjTypes().

◆ $plugin_admin

ilContainerContentGUI::$plugin_admin
protected

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

Referenced by getRightColumnHTML().

◆ $rbacsystem

ilContainerContentGUI::$rbacsystem
protected

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

Referenced by determineAdminCommands().

◆ $renderer

ilContainerContentGUI::$renderer
protected

◆ $settings

ilContainerContentGUI::$settings
protected

◆ $tpl

◆ $user

◆ $view_mode

ilContainerContentGUI::$view_mode
protected

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

Referenced by getViewMode().

◆ DETAILS_ALL

◆ DETAILS_DEACTIVATED

◆ DETAILS_TITLE

◆ VIEW_MODE_LIST

const ilContainerContentGUI::VIEW_MODE_LIST = 0

◆ VIEW_MODE_TILE

const ilContainerContentGUI::VIEW_MODE_TILE = 1

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