38 $this->container_gui = $container_gui_obj;
39 $this->container_obj = $this->container_gui->object;
87 if (
$ilCtrl->getNextClass() ==
"ilcolumngui" &&
94 require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
111 if ($ilCtrl->getNextClass() !=
"ilcolumngui" ||
126 $ilCtrl->saveParameterByClass(
"ilcolumngui",
"col_return");
131 include_once(
"Services/Block/classes/class.ilColumnGUI.php");
141 if (
$ilCtrl->getNextClass() ==
"ilcolumngui" &&
155 include_once(
"./Services/UIComponent/classes/class.ilUIHookProcessor.php");
157 array(
"container_content_gui" => $this));
158 if (!$uip->replaced())
176 $ilCtrl->saveParameterByClass(
"ilcolumngui",
"col_return");
178 $tpl->addOnLoadCode(
"il.Object.setRedrawListItemUrl('".
179 $ilCtrl->getLinkTarget($this->container_gui,
"redrawListItem",
"",
true).
"');");
181 $tpl->addOnLoadCode(
"il.Object.setRatingUrl('".
182 $ilCtrl->getLinkTargetByClass(array(get_class($this->container_gui),
"ilcommonactiondispatchergui",
"ilratinggui"),
183 "saveRating",
"",
true,
false).
"');");
185 switch (
$ilCtrl->getNextClass())
188 $this->container_gui->setSideColumnReturn();
193 $ilDB->useSlave(
true);
195 $ilDB->useSlave(
false);
213 include_once(
'./Services/Container/classes/class.ilContainerSorting.php');
216 include_once
"Services/Container/classes/class.ilContainerRenderer.php";
220 ,$this->
getContainerGUI()->isActiveOrdering() && (get_class($this) !=
"ilContainerObjectiveGUI")
221 ,$sorting->getBlockPositions()
232 include_once(
"Services/Block/classes/class.ilColumnGUI.php");
274 $this->adminCommands =
false;
286 if (!$this->adminCommands)
290 if ($rbacsystem->checkAccess(
"delete", $a_ref_id))
292 $this->adminCommands =
true;
297 $this->adminCommands = $a_admin_com_included_in_list;
305 protected function getItemGUI($item_data,$a_show_path =
false)
307 include_once
'Services/Object/classes/class.ilObjectListGUIFactory.php';
310 if (!is_object ($this->list_gui[$item_data[
"type"]]))
314 $this->list_gui[$item_data[
"type"]] =& $item_list_gui;
318 $item_list_gui =& $this->list_gui[$item_data[
"type"]];
323 $item_list_gui->setParentRefId($item_data[
"parent"]);
325 $item_list_gui->setDefaultCommandParameters(array());
326 $item_list_gui->disableTitleLink(
false);
327 $item_list_gui->resetConditionTarget();
338 $item_list_gui->enableComments(
true);
339 $item_list_gui->enableNotes(
true);
340 $item_list_gui->enableTags(
true);
341 $item_list_gui->enableRating(
true);
344 $item_list_gui->forceVisibleOnly(
false);
347 $this->
getContainerGUI()->modifyItemGUI($item_list_gui, $item_data, $a_show_path);
349 return $item_list_gui;
360 foreach ($type_grps as $type => $v)
363 if (is_int(strpos($a_container_page_html,
"[list-".$type.
"]")))
370 while (preg_match(
'~\[(item-group-([0-9]*))\]~i', $a_container_page_html, $found))
374 $a_container_page_html = preg_replace(
'~\['.$found[1].
'\]~i',
$html, $a_container_page_html);
385 $this->embedded_block[$block_type][] = $block_parameter;
393 return $this->embedded_block;
404 if (is_array($this->embedded_block[
"itgr"]))
406 $item_groups = array();
407 if (is_array($this->items[
"itgr"]))
409 foreach ($this->items[
"itgr"] as $ig)
411 $item_groups[$ig[
"ref_id"]] = $ig;
415 foreach ($this->embedded_block[
"itgr"] as
$ref_id)
417 if(isset($item_groups[
$ref_id]))
425 if (is_array($this->embedded_block[
"type"]))
427 foreach ($this->embedded_block[
"type"] as $k => $type)
429 if (is_array($this->items[$type]) &&
430 $this->renderer->addTypeBlock($type))
435 $this->items[
'sess'] =
ilUtil::sortArray($this->items[
'sess'],
'start',
'ASC',
true,
true);
440 foreach($this->items[$type] as $k => $item_data)
442 if(!$this->renderer->hasItem($item_data[
"child"]))
447 $this->renderer->addItemToBlock($type, $item_data[
"type"], $item_data[
"child"],
$html);
463 function renderItem($a_item_data,$a_position = 0,$a_force_icon =
false, $a_pos_prefix =
"")
468 if(!$ilAccess->checkAccess(
'visible',
'',$a_item_data[
'ref_id'],$a_item_data[
'type'],$a_item_data[
'obj_id'],$a_item_data[
'tree']))
472 $item_list_gui = $this->
getItemGUI($a_item_data);
473 if (
$ilSetting->get(
"icon_position_in_lists") ==
"item_rows" ||
474 $a_item_data[
"type"] ==
"sess" || $a_force_icon)
476 $item_list_gui->enableIcon(
true);
481 $item_list_gui->enableCheckbox(
true);
486 $item_list_gui->enableDownloadCheckbox($a_item_data[
"ref_id"],
true);
489 if ($this->
getContainerGUI()->isActiveItemOrdering() && ($a_item_data[
'type'] !=
'sess' || get_class($this) !=
'ilContainerSessionsContentGUI'))
491 $item_list_gui->setPositionInputField($a_pos_prefix.
"[".$a_item_data[
"ref_id"].
"]",
492 sprintf(
'%d', (
int)$a_position*10));
495 if($a_item_data[
'type'] ==
'sess' and get_class($this) !=
'ilContainerObjectiveGUI')
501 $item_list_gui->enableExpand(
true);
502 $item_list_gui->setExpanded(
false);
503 $item_list_gui->enableDescription(
false);
504 $item_list_gui->enableProperties(
true);
509 $item_list_gui->enableExpand(
true);
510 $item_list_gui->setExpanded(
true);
511 $item_list_gui->enableDescription(
true);
512 $item_list_gui->enableProperties(
true);
517 $item_list_gui->enableExpand(
true);
518 $item_list_gui->enableDescription(
true);
519 $item_list_gui->enableProperties(
true);
524 if(method_exists($this,
"addItemDetails"))
526 $this->addItemDetails($item_list_gui, $a_item_data);
530 if($a_item_data[
'type'] ==
'sess' and (
531 $this->
getDetailsLevel($a_item_data[
'obj_id']) != self::DETAILS_TITLE or
539 include_once(
'./Services/Container/classes/class.ilContainerSorting.php');
540 include_once(
'./Services/Object/classes/class.ilObjectActivation.php');
545 $item_readable = $ilAccess->checkAccess(
'read',
'',$a_item_data[
'ref_id']);
547 foreach($items as $item)
551 if(!$ilAccess->checkAccess(
'visible',
'',$item[
'ref_id']))
557 $item_list_gui2->enableIcon(
true);
558 $item_list_gui2->enableItemDetailLinks(
false);
561 $item_list_gui2->setParentRefId($a_item_data[
'ref_id']);
564 if(!$item_readable and !$ilAccess->checkAccess(
'write',
'',$item[
'ref_id']))
566 $item_list_gui2->forceVisibleOnly(
true);
571 $item_list_gui2->enableCheckbox(
true);
576 $item_list_gui2->enableDownloadCheckbox($item[
'ref_id'],
true);
581 $item_list_gui2->setPositionInputField(
"[sess][".$a_item_data[
'obj_id'].
"][".$item[
"ref_id"].
"]",
589 $sub_item_html = $item_list_gui2->getListItemHTML($item[
'ref_id'],
590 $item[
'obj_id'], $item[
'title'], $item[
'description']);
593 if(strlen($sub_item_html))
595 $item_list_gui->addSubItemHTML($sub_item_html);
604 $ilCtrl->setParameter($this->container_gui,
"cmdrefid", $a_item_data[
'ref_id']);
605 $asynch_url =
$ilCtrl->getLinkTarget($this->container_gui,
606 "getAsynchItemList",
"",
true,
false);
607 $ilCtrl->setParameter($this->container_gui,
"cmdrefid",
"");
611 if ($a_item_data[
'type'] ==
'fold' && $fold_set->get(
"bgtask_download") && $fold_set->get(
"enable_download_folder")) {
612 include_once
"Services/BackgroundTask/classes/class.ilFolderDownloadBackgroundTaskHandler.php";
617 include_once
"Services/Object/classes/class.ilObjectActivation.php";
620 $html = $item_list_gui->getListItemHTML($a_item_data[
'ref_id'],
621 $a_item_data[
'obj_id'], $a_item_data[
'title'], $a_item_data[
'description'],
622 $asynch,
false, $asynch_url);
624 $item_list_gui->adminCommandsIncluded());
642 if (is_int(strpos($a_output_html,
"[list-".$type.
"]")))
644 $a_output_html = preg_replace(
'~\[list-'.$type.
'\]~i',
645 $this->renderer->renderSingleTypeBlock($type), $a_output_html);
650 while (preg_match(
'~\[(item-group-([0-9]*))\]~i', $a_output_html, $found))
652 $itgr_ref_id = (int) $found[2];
654 $a_output_html = preg_replace(
'~\['.$found[1].
'\]~i',
655 $this->renderer->renderSingleCustomBlock($itgr_ref_id), $a_output_html);
658 return $a_output_html;
668 global $objDefinition;
670 if (empty($this->type_grps))
673 $objDefinition->getGroupedRepositoryObjectTypes($this->
getContainerObject()->getType());
675 return $this->type_grps;
685 $lng->loadLanguageModule(
"rep");
687 $tpl =
new ilTemplate(
"tpl.rep_intro.html",
true,
true,
"Services/Repository");
689 $tpl->setVariable(
"TXT_WELCOME",
$lng->txt(
"rep_intro"));
690 $tpl->setVariable(
"TXT_INTRO_1",
$lng->txt(
"rep_intro1"));
691 $tpl->setVariable(
"TXT_INTRO_2",
$lng->txt(
"rep_intro2"));
694 $tpl->setVariable(
"TXT_INTRO_5",
$lng->txt(
"rep_intro5"));
695 $tpl->setVariable(
"TXT_INTRO_6",
$lng->txt(
"rep_intro6"));
708 if (is_array($this->items[
"itgr"]))
710 foreach ($this->items[
"itgr"] as $itgr)
712 if (!$this->renderer->hasCustomBlock($itgr[
"child"]))
716 $this->renderer->setBlockPosition($itgr[
"ref_id"], ++$a_pos);
734 $perm_ok = ($ilAccess->checkAccess(
"visible",
"", $a_itgr[
'ref_id']) &&
735 $ilAccess->checkAccess(
"read",
"", $a_itgr[
'ref_id']));
737 include_once(
'./Services/Container/classes/class.ilContainerSorting.php');
738 include_once(
'./Services/Object/classes/class.ilObjectActivation.php');
745 foreach($items as $item)
747 $this->renderer->hideItem($item[
"child"]);
753 $item_list_gui->enableNotes(
false);
754 $item_list_gui->enableTags(
false);
755 $item_list_gui->enableComments(
false);
756 $item_list_gui->enableTimings(
false);
757 $item_list_gui->getListItemHTML($a_itgr[
"ref_id"], $a_itgr[
"obj_id"],
758 $a_itgr[
"title"], $a_itgr[
"description"]);
759 $commands_html = $item_list_gui->getCommandsHTML();
761 include_once(
"./Modules/ItemGroup/classes/class.ilObjItemGroup.php");
765 $this->renderer->addCustomBlock($a_itgr[
"ref_id"],
"", $commands_html);
769 $this->renderer->addCustomBlock($a_itgr[
"ref_id"], $a_itgr[
"title"], $commands_html);
776 $this->
getContainerObject()->getId())->sortSubItems(
'itgr', $a_itgr[
'obj_id'], $items);
782 foreach($items as $item)
785 $html2 = $this->
renderItem($item, $position++,
false,
"[itgr][".$a_itgr[
'obj_id'].
"]");
789 $this->renderer->addItemToBlock($a_itgr[
"ref_id"], $item[
"type"], $item[
"child"],
$html2,
true);
sprintf('%.4f', $callTime)
An exception for terminatinating execution or to throw for unit testing.
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.
Column user interface class.
static getScreenMode()
Get Screen Mode for current command.
static getCmdSide()
Get Column Side of Current Command.
Parent class of all container content GUIs.
initRenderer()
Init container renderer.
getEmbeddedBlocks()
Get page embedded blocks.
getContainerObject()
Get container object.
getContainerGUI()
Get container GUI object.
getCenterColumnHTML()
Get HTML for center column.
renderItem($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
Render an item.
setOutput()
Sets view output into column layout.
__forwardToColumnGUI()
Get columngui output.
getRightColumnHTML()
Get HTML for right column.
getGroupedObjTypes()
Get grouped repository object types.
addEmbeddedBlock($block_type, $block_parameter)
Add embedded block.
insertPageEmbeddedBlocks($a_output_html)
Insert blocks into container page.
getMainContent()
Get content HTML for main column, this one must be overwritten in derived classes.
getDetailsLevel($a_item_id)
get details level
getItemGroupsHTML($a_pos=0)
Get item groups HTML.
renderPageEmbeddedBlocks()
Render Page Embedded Blocks.
renderItemGroup($a_itgr)
Render item group.
getItemGUI($item_data, $a_show_path=false)
Get ListGUI object for item.
__construct(&$container_gui_obj)
Constructor.
getIntroduction()
Get introduction.
determineAdminCommands($a_ref_id, $a_admin_com_included_in_list=false)
determin admin commands
determinePageEmbeddedBlocks($a_container_page_html)
Determine all blocks that are embedded in the container page.
clearAdminCommandsDetermination()
cleaer administration commands determination
const DETAILS_DEACTIVATED
Class ilContainerRenderer.
static _getInstance($a_obj_id)
get instance by obj_id
static getCompleteDescriptions(array $objects)
overwrites description fields to long or short description in an assoc array keys needed (obj_id and ...
static initObjectListAction()
init js for background download
static lookupHideTitle($a_id)
Lookup hide title.
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.
static getItemsByItemGroup($a_item_group_ref_id)
Get materials of item group.
static _getListGUIByType($a_type, $a_context=ilObjectListGUI::CONTEXT_REPOSITORY)
static _lookupObjId($a_id)
static _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
static _lookupType($a_id, $a_reference=false)
lookup object type
special template class to simplify handling of ITX/PEAR
UI interface hook processor.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray