95 $this->tpl = $DIC[
"tpl"];
96 $this->ctrl = $DIC->ctrl();
97 $this->
user = $DIC->user();
98 $this->lng = $DIC->language();
99 $this->access = $DIC->access();
100 $this->plugin_admin = $DIC[
"ilPluginAdmin"];
101 $this->db = $DIC->database();
102 $this->rbacsystem = $DIC->rbac()->system();
104 $this->obj_definition = $DIC[
"objDefinition"];
107 $this->container_gui = $container_gui_obj;
108 $this->container_obj = $this->container_gui->object;
110 $tpl->addJavaScript(
"./Services/Container/js/Container.js");
161 if (
$ilCtrl->getNextClass() ==
"ilcolumngui" &&
167 require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
186 if (
$ilCtrl->getNextClass() !=
"ilcolumngui" ||
203 $ilCtrl->saveParameterByClass(
"ilcolumngui",
"col_return");
208 include_once(
"Services/Block/classes/class.ilColumnGUI.php");
217 if (
$ilCtrl->getNextClass() ==
"ilcolumngui" &&
226 include_once(
"./Services/UIComponent/classes/class.ilUIHookProcessor.php");
228 "Services/Container",
230 array(
"container_content_gui" => $this)
232 if (!$uip->replaced()) {
251 $ilCtrl->saveParameterByClass(
"ilcolumngui",
"col_return");
253 $tpl->addOnLoadCode(
"il.Object.setRedrawListItemUrl('" .
254 $ilCtrl->getLinkTarget($this->container_gui,
"redrawListItem",
"",
true) .
"');");
256 $tpl->addOnLoadCode(
"il.Object.setRatingUrl('" .
258 array(get_class($this->container_gui),
"ilcommonactiondispatchergui",
"ilratinggui"),
265 switch (
$ilCtrl->getNextClass()) {
267 $this->container_gui->setSideColumnReturn();
272 $ilDB->useSlave(
true);
274 $ilDB->useSlave(
false);
292 include_once(
'./Services/Container/classes/class.ilContainerSorting.php');
295 include_once
"Services/Container/classes/class.ilContainerRenderer.php";
299 $this->
getContainerGUI()->isActiveOrdering() && (get_class($this) !=
"ilContainerObjectiveGUI")
301 $sorting->getBlockPositions()
313 include_once(
"Services/Block/classes/class.ilColumnGUI.php");
349 $this->adminCommands =
false;
361 if (!$this->adminCommands) {
363 if (
$rbacsystem->checkAccess(
"delete", $a_ref_id)) {
364 $this->adminCommands =
true;
367 $this->adminCommands = $a_admin_com_included_in_list;
375 protected function getItemGUI($item_data, $a_show_path =
false)
377 include_once
'Services/Object/classes/class.ilObjectListGUIFactory.php';
380 if (!is_object($this->list_gui[$item_data[
"type"]])) {
383 $this->list_gui[$item_data[
"type"]] =&$item_list_gui;
385 $item_list_gui =&$this->list_gui[$item_data[
"type"]];
389 $item_list_gui->setParentRefId($item_data[
"parent"]);
391 $item_list_gui->setDefaultCommandParameters(
array());
392 $item_list_gui->disableTitleLink(
false);
393 $item_list_gui->resetConditionTarget();
403 $item_list_gui->enableComments(
true);
404 $item_list_gui->enableNotes(
true);
405 $item_list_gui->enableTags(
true);
406 $item_list_gui->enableRating(
true);
409 $item_list_gui->forceVisibleOnly(
false);
412 $this->
getContainerGUI()->modifyItemGUI($item_list_gui, $item_data, $a_show_path);
414 return $item_list_gui;
425 foreach ($type_grps as
$type => $v) {
427 if (is_int(strpos($a_container_page_html,
"[list-" .
$type .
"]"))) {
433 while (preg_match(
'~\[(item-group-([0-9]*))\]~i', $a_container_page_html, $found)) {
436 $a_container_page_html = preg_replace(
'~\[' . $found[1] .
'\]~i',
$html, $a_container_page_html);
447 $this->embedded_block[$block_type][] = $block_parameter;
455 return $this->embedded_block;
466 if (is_array($this->embedded_block[
"itgr"])) {
467 $item_groups =
array();
468 if (is_array($this->items[
"itgr"])) {
469 foreach ($this->items[
"itgr"] as $ig) {
470 $item_groups[$ig[
"ref_id"]] = $ig;
474 foreach ($this->embedded_block[
"itgr"] as $ref_id) {
475 if (isset($item_groups[$ref_id])) {
482 if (is_array($this->embedded_block[
"type"])) {
483 foreach ($this->embedded_block[
"type"] as $k =>
$type) {
484 if (is_array($this->items[
$type]) &&
485 $this->renderer->addTypeBlock($type)) {
487 if ($type ==
'sess') {
488 $this->items[
'sess'] =
ilUtil::sortArray($this->items[
'sess'],
'start',
'ASC',
true,
true);
493 foreach ($this->items[$type] as $k => $item_data) {
494 if (!$this->renderer->hasItem($item_data[
"child"])) {
497 $this->renderer->addItemToBlock($type, $item_data[
"type"], $item_data[
"child"],
$html);
513 public function renderItem($a_item_data, $a_position = 0, $a_force_icon =
false, $a_pos_prefix =
"")
520 if (!$ilAccess->checkAccess(
'visible',
'', $a_item_data[
'ref_id'], $a_item_data[
'type'], $a_item_data[
'obj_id'], $a_item_data[
'tree'])) {
523 $item_list_gui = $this->
getItemGUI($a_item_data);
524 if (
$ilSetting->get(
"icon_position_in_lists") ==
"item_rows" ||
525 $a_item_data[
"type"] ==
"sess" || $a_force_icon) {
526 $item_list_gui->enableIcon(
true);
530 $item_list_gui->enableCheckbox(
true);
533 $item_list_gui->enableDownloadCheckbox($a_item_data[
"ref_id"],
true);
536 if ($this->
getContainerGUI()->isActiveItemOrdering() && ($a_item_data[
'type'] !=
'sess' || get_class($this) !=
'ilContainerSessionsContentGUI')) {
537 $item_list_gui->setPositionInputField(
538 $a_pos_prefix .
"[" . $a_item_data[
"ref_id"] .
"]",
539 sprintf(
'%d', (
int) $a_position*10)
543 if ($a_item_data[
'type'] ==
'sess' and get_class($this) !=
'ilContainerObjectiveGUI') {
545 case self::DETAILS_TITLE:
547 $item_list_gui->enableExpand(
true);
548 $item_list_gui->setExpanded(
false);
549 $item_list_gui->enableDescription(
false);
550 $item_list_gui->enableProperties(
true);
553 case self::DETAILS_ALL:
555 $item_list_gui->enableExpand(
true);
556 $item_list_gui->setExpanded(
true);
557 $item_list_gui->enableDescription(
true);
558 $item_list_gui->enableProperties(
true);
563 $item_list_gui->enableExpand(
true);
564 $item_list_gui->enableDescription(
true);
565 $item_list_gui->enableProperties(
true);
570 if (method_exists($this,
"addItemDetails")) {
571 $this->addItemDetails($item_list_gui, $a_item_data);
575 if ($a_item_data[
'type'] ==
'sess' and (
576 $this->
getDetailsLevel($a_item_data[
'obj_id']) != self::DETAILS_TITLE or
583 include_once(
'./Services/Container/classes/class.ilContainerSorting.php');
584 include_once(
'./Services/Object/classes/class.ilObjectActivation.php');
589 $item_readable = $ilAccess->checkAccess(
'read',
'', $a_item_data[
'ref_id']);
591 foreach ($items as $item) {
594 if (!$ilAccess->checkAccess(
'visible',
'', $item[
'ref_id'])) {
599 $item_list_gui2->enableIcon(
true);
600 $item_list_gui2->enableItemDetailLinks(
false);
603 $item_list_gui2->setParentRefId($a_item_data[
'ref_id']);
606 if (!$item_readable and !$ilAccess->checkAccess(
'write',
'', $item[
'ref_id'])) {
607 $item_list_gui2->forceVisibleOnly(
true);
611 $item_list_gui2->enableCheckbox(
true);
614 $item_list_gui2->enableDownloadCheckbox($item[
'ref_id'],
true);
618 $item_list_gui2->setPositionInputField(
619 "[sess][" . $a_item_data[
'obj_id'] .
"][" . $item[
"ref_id"] .
"]",
620 sprintf(
'%d', (
int) $pos*10)
628 $sub_item_html = $item_list_gui2->getListItemHTML(
636 if (strlen($sub_item_html)) {
637 $item_list_gui->addSubItemHTML($sub_item_html);
645 $ilCtrl->setParameter($this->container_gui,
"cmdrefid", $a_item_data[
'ref_id']);
646 $asynch_url =
$ilCtrl->getLinkTarget(
647 $this->container_gui,
653 $ilCtrl->setParameter($this->container_gui,
"cmdrefid",
"");
657 if ($a_item_data[
'type'] ==
'fold' && $fold_set->get(
"bgtask_download") && $fold_set->get(
"enable_download_folder")) {
658 include_once
"Services/BackgroundTask/classes/class.ilFolderDownloadBackgroundTaskHandler.php";
663 include_once
"Services/Object/classes/class.ilObjectActivation.php";
666 $html = $item_list_gui->getListItemHTML(
667 $a_item_data[
'ref_id'],
668 $a_item_data[
'obj_id'],
669 $a_item_data[
'title'],
670 $a_item_data[
'description'],
676 $a_item_data[
"ref_id"],
677 $item_list_gui->adminCommandsIncluded()
695 if (is_int(strpos($a_output_html,
"[list-" .
$type .
"]"))) {
696 $a_output_html = preg_replace(
697 '~\[list-' .
$type .
'\]~i',
698 $this->renderer->renderSingleTypeBlock(
$type),
705 while (preg_match(
'~\[(item-group-([0-9]*))\]~i', $a_output_html, $found)) {
706 $itgr_ref_id = (int) $found[2];
708 $a_output_html = preg_replace(
709 '~\[' . $found[1] .
'\]~i',
710 $this->renderer->renderSingleCustomBlock($itgr_ref_id),
715 return $a_output_html;
727 if (empty($this->type_grps)) {
729 $objDefinition->getGroupedRepositoryObjectTypes($this->
getContainerObject()->getType());
731 return $this->type_grps;
743 $lng->loadLanguageModule(
"rep");
745 $tpl =
new ilTemplate(
"tpl.rep_intro.html",
true,
true,
"Services/Repository");
747 $tpl->setVariable(
"TXT_WELCOME",
$lng->txt(
"rep_intro"));
748 $tpl->setVariable(
"TXT_INTRO_1",
$lng->txt(
"rep_intro1"));
749 $tpl->setVariable(
"TXT_INTRO_2",
$lng->txt(
"rep_intro2"));
750 $tpl->setVariable(
"TXT_INTRO_3", sprintf(
$lng->txt(
"rep_intro3"),
$lng->txt(
"add")));
751 $tpl->setVariable(
"TXT_INTRO_4", sprintf(
$lng->txt(
"rep_intro4"),
$lng->txt(
"cat_add")));
752 $tpl->setVariable(
"TXT_INTRO_5",
$lng->txt(
"rep_intro5"));
753 $tpl->setVariable(
"TXT_INTRO_6",
$lng->txt(
"rep_intro6"));
766 if (is_array($this->items[
"itgr"])) {
767 foreach ($this->items[
"itgr"] as $itgr) {
768 if (!$this->renderer->hasCustomBlock($itgr[
"child"])) {
771 $this->renderer->setBlockPosition($itgr[
"ref_id"], ++$a_pos);
790 $perm_ok = ($ilAccess->checkAccess(
"visible",
"", $a_itgr[
'ref_id']) &&
791 $ilAccess->checkAccess(
"read",
"", $a_itgr[
'ref_id']));
793 include_once(
'./Services/Container/classes/class.ilContainerSorting.php');
794 include_once(
'./Services/Object/classes/class.ilObjectActivation.php');
800 foreach ($items as $item) {
801 $this->renderer->hideItem($item[
"child"]);
807 $item_list_gui->enableNotes(
false);
808 $item_list_gui->enableTags(
false);
809 $item_list_gui->enableComments(
false);
810 $item_list_gui->enableTimings(
false);
811 $item_list_gui->getListItemHTML(
815 $a_itgr[
"description"]
817 $commands_html = $item_list_gui->getCommandsHTML();
820 include_once(
"./Modules/ItemGroup/classes/class.ilObjItemGroup.php");
821 include_once(
"./Modules/ItemGroup/classes/class.ilItemGroupBehaviour.php");
823 include_once(
"./Services/Container/classes/class.ilContainerBlockPropertiesStorage.php");
826 $beh = ($stored_val ==
"1")
833 "store-url" =>
"./ilias.php?baseClass=ilcontainerblockpropertiesstorage&cmd=store" .
834 "&cont_block_id=itgr_" . $a_itgr[
'ref_id']
838 $this->renderer->addCustomBlock($a_itgr[
"ref_id"],
"", $commands_html,
$data);
840 $this->renderer->addCustomBlock($a_itgr[
"ref_id"], $a_itgr[
"title"], $commands_html,
$data);
848 )->sortSubItems(
'itgr', $a_itgr[
'obj_id'], $items);
854 foreach ($items as $item) {
856 $html2 = $this->
renderItem($item, $position++,
false,
"[itgr][" . $a_itgr[
'obj_id'] .
"]");
859 $this->renderer->addItemToBlock($a_itgr[
"ref_id"], $item[
"type"], $item[
"child"],
$html2,
true);
static lookupHideTitle($a_id)
Lookup hide title.
determineAdminCommands($a_ref_id, $a_admin_com_included_in_list=false)
determin admin commands
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
static getProperty($a_block_id, $a_user_id, $a_property)
Get property in session or db.
determinePageEmbeddedBlocks($a_container_page_html)
Determine all blocks that are embedded in the container page.
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
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.
static getCmdSide()
Get Column Side of Current Command.
static getItemsByEvent($a_event_id)
Get session material / event items.
getEmbeddedBlocks()
Get page embedded blocks.
static initObjectListAction()
init js for background download
getItemGUI($item_data, $a_show_path=false)
Get ListGUI object for item.
static lookupBehaviour($a_id)
Lookup behaviour.
getItemGroupsHTML($a_pos=0)
Get item groups HTML.
renderPageEmbeddedBlocks()
Render Page Embedded Blocks.
initRenderer()
Init container renderer.
__forwardToColumnGUI()
Get columngui output.
insertPageEmbeddedBlocks($a_output_html)
Insert blocks into container page.
Parent class of all container content GUIs.
getMainContent()
Get content HTML for main column, this one must be overwritten in derived classes.
getContainerGUI()
Get container GUI object.
Column user interface class.
getDetailsLevel($a_item_id)
get details level
static _lookupObjId($a_id)
special template class to simplify handling of ITX/PEAR
getContainerObject()
Get container object.
renderItem($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
Render an item.
static addListGUIActivationProperty(ilObjectListGUI $a_list_gui, array &$a_item)
Get timing details for list gui.
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type
clearAdminCommandsDetermination()
cleaer administration commands determination
renderItemGroup($a_itgr)
Render item group.
static getScreenMode()
Get Screen Mode for current command.
static _getListGUIByType($a_type, $a_context=ilObjectListGUI::CONTEXT_REPOSITORY)
getCenterColumnHTML()
Get HTML for center column.
getIntroduction()
Get introduction.
static getItemsByItemGroup($a_item_group_ref_id)
Get materials of item group.
static getLogger($a_component_id)
Get component logger.
static _getInstance($a_obj_id)
get instance by obj_id
__construct(&$container_gui_obj)
Constructor.
Class ilContainerRenderer.
static getCompleteDescriptions(array $objects)
overwrites description fields to long or short description in an assoc array keys needed (obj_id and ...
addEmbeddedBlock($block_type, $block_parameter)
Add embedded block.
getRightColumnHTML()
Get HTML for right column.
getGroupedObjTypes()
Get grouped repository object types.
const DETAILS_DEACTIVATED
setOutput()
Sets view output into column layout.