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') {
547 $item_list_gui->enableExpand(
true);
548 $item_list_gui->setExpanded(
false);
549 $item_list_gui->enableDescription(
false);
550 $item_list_gui->enableProperties(
true);
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"] .
"]",
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"));
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);
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.
static getProperty($a_block_id, $a_user_id, $a_property)
Get property in session or db.
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 getLogger($a_component_id)
Get component logger.
static lookupBehaviour($a_id)
Lookup behaviour.
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