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