35     protected \ILIAS\Container\InternalGUIService 
$gui;
    40     protected \ILIAS\Container\InternalDomainService 
$domain;
    69         bool $a_call_by_reference = 
true,
    70         bool $a_prepare_output = 
true    75         $this->
lng = $DIC->language();
    76         $this->tpl = $DIC[
"tpl"];
    77         $this->
ctrl = $DIC->ctrl();
    78         $this->
tabs = $DIC->tabs();
    80         $this->
user = $DIC->user();
    81         $this->
access = $DIC->access();
    82         $this->tree = $DIC->repositoryTree();
    83         $this->error = $DIC[
"ilErr"];
    84         $this->obj_definition = $DIC[
"objDefinition"];
    85         $this->rbacadmin = $DIC->rbac()->admin();
    86         $this->rbacreview = $DIC->rbac()->review();
    87         $this->log = $DIC[
"ilLog"];
    88         $this->obj_data_cache = $DIC[
"ilObjDataCache"];
    89         $this->
toolbar = $DIC->toolbar();
    90         $this->app_event_handler = $DIC[
"ilAppEventHandler"];
    91         $this->
ui = $DIC->ui();
    92         $this->global_screen = $DIC->globalScreen();
    93         $this->component_factory = $DIC[
"component.factory"];
    94         $rbacsystem = $DIC->rbac()->system();
    95         $lng = $DIC->language();
   106         $this->clipboard = $DIC
   111         $this->std_request = $DIC
   116         $this->requested_redirectSource = $this->std_request->getRedirectSource();
   117         $this->domain = $DIC->container()
   123         $cs = $DIC->contentStyle();
   124         $this->content_style_gui = $cs->gui();
   125         $this->content_style_domain = $cs->domain();
   126         $this->gui = $DIC->container()->internal()->gui();
   131         if (is_null($this->mode_manager)) {
   132             $this->mode_manager = $this->domain
   140         $include_empty_blocks = 
true,
   142     ): \
ILIAS\Container\Content\ItemPresentationManager {
   143         if (is_null($this->item_presentation)) {
   144             $this->item_presentation = $this->domain
   148                     $this->container_user_filter,
   149                     $include_empty_blocks,
   160         $next_class = $this->
ctrl->getNextClass();
   161         $cmd = $this->
ctrl->getCmd(
"render");
   163         switch ($next_class) {
   165             case "ilcontainerpagegui":
   166                 if ($this->requested_redirectSource !== 
"ilinternallinkgui") {
   184         $values = parent::getEditFormValues();
   186         $values[
'didactic_type'] =
   200         if ($new_tpl_id !== $current_tpl_id) {
   202             $this->
ctrl->setReturn($this, 
'edit');
   203             $this->
ctrl->setCmdClass(
'ildidactictemplategui');
   204             $this->
ctrl->setCmd(
'confirmTemplateSwitch');
   206             $this->
ctrl->forwardCommand($dtpl_gui);
   209         parent::afterUpdate();
   219         if (in_array($cmd, [
"displayMediaFullscreen", 
"downloadFile", 
"displayMedia"])) {
   225         $ilTabs->clearTargets();
   227         if ($this->requested_redirectSource === 
"ilinternallinkgui") {
   231         $ilTabs->setBackTarget(
   233             $this->
ctrl->getLinkTargetByClass(
"ilcontainerpagegui", 
"edit")
   239         $this->content_style_gui->addCss($this->tpl, $this->
object->getRefId());
   250             $new_page_object->setParentId($this->
object->getId());
   251             $new_page_object->setId($this->
object->getId());
   252             $new_page_object->createFromXML();
   257         $style = $this->content_style_domain->styleForRefId($this->
object->getRefId());
   259             $style->getEffectiveStyleId()
   263             $page_gui->getLanguage()
   265         $page_gui->setTemplateTargetVar(
"ADM_CONTENT");
   266         $page_gui->setFileDownloadLink(
"");
   268         $page_gui->setPresentationTitle(
"");
   269         $page_gui->setTemplateOutput(
false);
   272         $page_gui->setTabHook($this, 
"addPageTabs");
   274         return $this->
ctrl->forwardCommand($page_gui);
   284             $ilCtrl->getLinkTargetByClass(
"ilObjectContentStyleSettingsGUI", 
''),
   285             "editStyleProperties",
   286             "ilobjectcontentstylesettingsgui"   295         if (!
$ilSetting->get(
"enable_cat_page_edit") || $this->
object->filteredSubtree()) {
   306         $this->content_style_gui->addCss($this->tpl, $this->
object->getRefId());
   307         $this->tpl->setCurrentBlock(
"SyntaxStyle");
   308         $this->tpl->setVariable(
   309             "LOCATION_SYNTAX_STYLESHEET",
   312         $this->tpl->parseCurrentBlock();
   316         $lang = $ot->getEffectiveContentLang($ilUser->getCurrentLanguage(), 
"cont");
   318         $style = $this->content_style_domain->styleForRefId($this->
object->getRefId());
   319         $page_gui->
setStyleId($style->getEffectiveStyleId());
   321         $page_gui->setPresentationTitle(
"");
   322         $page_gui->setTemplateOutput(
false);
   323         $page_gui->setHeader(
"");
   324         $ret = $page_gui->showPage();
   334         if (parent::prepareOutput($show_subobjects)) {    
   345             $this->tpl->setTitle($this->
object->getTitle(), 
true);
   347             parent::setTitleAndDescription();
   363         if ($this->
object->filteredSubtree()) {
   366         switch ($view_mode) {
   400         return $container_view;
   416             if (!$this->item_presentation->canManageItems()) {
   417                 $this->
ctrl->redirect($this, 
"disableAdministrationPanel");
   419             $ilTabs->activateSubTab(
"manage");
   421             $ilTabs->activateSubTab(
"view_content");
   424         $container_view->setOutput();
   428         $is_container_cmd = strtolower($this->std_request->getCmdClass()) === strtolower(get_class($this))
   429             || ($this->std_request->getCmdClass() === 
"");
   433         if ($is_container_cmd) {
   435             if (!$this->edit_order) {
   439             if (is_object($this->
object) &&
   441                 $this->rbacsystem->checkAccess(
"write", $this->
object->getRefId())
   443                 if (
$ilSetting->get(
"enable_cat_page_edit")) {
   449                             $lng->
txt(
"cntr_text_media_editor"),
   450                             $ilCtrl->getLinkTarget($this, 
"editPageFrame")
   462         if ($this->requested_ref_id > 1 && 
$ilSetting->get(
"rep_tree_synchronize")) {
   463             $ilCtrl->setParameter($this, 
"active_node", $this->requested_ref_id);
   478         echo $container_view->getSingleTypeBlockAsynch(
   479             $this->std_request->getType()
   496         $main_tpl = $DIC->ui()->mainTemplate();
   502             $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
   506             $this->
ctrl->setParameter($this, 
"type", 
"");
   507             $this->
ctrl->setParameter($this, 
"item_ref_id", 
"");
   510                 $this->
ui->factory()->button()->standard(
   511                     $this->
lng->txt(
'paste_clipboard_items'),
   512                     $this->
ctrl->getLinkTargetByClass([ilRepositoryGUI::class, static::class], 
'paste')
   517                 $this->
ui->factory()->button()->standard(
   518                     $this->
lng->txt(
'clear_clipboard'),
   519                     $this->
ctrl->getLinkTargetByClass([ilRepositoryGUI::class, static::class], 
'clear')
   523             $main_tpl->addAdminPanelToolbar(
$toolbar, 
true, 
false);
   526             $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
   529             $this->
ctrl->setParameter($this, 
"type", 
"");
   530             $this->
ctrl->setParameter($this, 
"item_ref_id", 
"");
   538                     $this->
lng->txt(
'delete_selected_items'),
   542                     $this->
lng->txt(
'move_selected_items'),
   546                     $this->
lng->txt(
'copy_selected_items'),
   550                     $this->
lng->txt(
'link_selected_items'),
   557                 if ((
bool) $folder_set->get(
'enable_multi_download') === 
true) {
   560                         $this->
lng->txt(
'download_selected_items'),
   565             $main_tpl->addAdminPanelToolbar(
   567                 $this->
gotItems() && !$this->clipboard->hasEntries(),
   568                 $this->
gotItems() && !$this->clipboard->hasEntries()
   573                 $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
   575         } elseif ($this->edit_order) {
   576             if ($this->
getItemPresentation()->hasItems() && $ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
   579                     $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
   582                     $this->
ctrl->setParameter($this, 
"type", 
"");
   583                     $this->
ctrl->setParameter($this, 
"item_ref_id", 
"");
   586                         $this->
lng->txt(
'sorting_save'),
   590                     $main_tpl->addAdminPanelToolbar(
$toolbar, 
true, 
false);
   600             $num_files = $this->tree->getChildsByType(
$ref_id, 
"file");
   601             $num_folders = $this->tree->getChildsByType(
$ref_id, 
"fold");
   602             if (count($num_files) > 0 || count($num_folders) > 0) {
   604                 $GLOBALS[
'tpl']->setPageFormAction($this->
ctrl->getFormAction($this));
   607                 $this->
ctrl->setParameter($this, 
"type", 
"");
   608                 $this->
ctrl->setParameter($this, 
"item_ref_id", 
"");
   611                     $this->
lng->txt(
'download_selected_items'),
   615                 $GLOBALS[
'tpl']->addAdminPanelToolbar(
   621                 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_no_downloadable_objects'), 
true);
   635         $tpl = $DIC->ui()->mainTemplate();
   639             $this->
object->getRefId(),
   647         $this->
ctrl->redirectByClass([static::class, 
"ilcontainerpagegui"], 
"edit");
   652         $this->
ctrl->redirect($this, 
"");
   663             "tpl.container_link_help.html",
   689         foreach ($childs as $child) {
   690             if (in_array($child[
"type"], [
"lm", 
"sahs", 
"htlm"])) {
   693                 $cnt[$child[
"type"]]++;
   699         foreach ($type_ordering as 
$type) {
   701             if ($type !== 
"lres") {
   705                     " (" . ((
int) $cnt[$type]) . 
")"   711                     " (" . ((
int) $cnt[
"lres"]) . 
")"   724         bool $a_show_image = 
true   727         $title = $this->
lng->txt(
"objs_" . $a_type);
   737         $a_tpl->
setVariable(
"BLOCK_HEADER_CONTENT", $title);
   742     public function addStandardRow(
   745         int $a_item_ref_id = null,
   746         int $a_item_obj_id = null,
   747         string $a_image_type = 
""   752         if (
$ilSetting->get(
"icon_position_in_lists") === 
"item_rows") {
   754             $alt = $this->
lng->txt(
"obj_" . $a_image_type);
   759                 $customIconFactory = $DIC[
'object.customicons.factory'];
   760                 $customIcon = $customIconFactory->getPresenterByObjId($a_item_obj_id, $a_image_type);
   762                 if ($customIcon->exists()) {
   763                     $icon = $customIcon->getFullPath();
   785             $a_tpl->
setVariable(
'POSITION', sprintf(
'%.1f', $this->current_position++));
   802         $type = $this->
lng->txt(
"obj_" . $a_type);
   803         $a_message = str_replace(
"[type]", 
$type, $a_message);
   821             || strtolower($this->
ctrl->getCmdClass()) !== 
"ilcontainerpagegui") {
   830         $this->tabs_gui->setBackTarget(
   831             $this->
lng->txt(
"obj_cat"),
   832             $this->
ctrl->getLinkTarget($this, 
""),
   836         $this->tabs_gui->addTarget(
   838             $this->
ctrl->getLinkTargetByClass(
"ilcontainerpagegui", 
"view"),
   850         bool $a_include_view = 
true   857         if (!is_object($this->
object)) {
   861         if ($a_include_view && $this->rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
   863                 $ilTabs->addSubTab(
"view_content", 
$lng->
txt(
"view"), $ilCtrl->getLinkTargetByClass(static::class, 
"view"));
   868                     $ilCtrl->getLinkTarget($this, 
"disableAdministrationPanel")
   874         if ($item_presentation->canManageItems()) {
   876                 $ilTabs->addSubTab(
"manage", 
$lng->
txt(
"cntr_manage"), $ilCtrl->getLinkTarget($this, 
""));
   881                     $ilCtrl->getLinkTarget($this, 
"enableAdministrationPanel")
   885         if ($item_presentation->canOrderItems()) {
   886             $ilTabs->addSubTab(
"ordering", 
$lng->
txt(
"cntr_ordering"), $ilCtrl->getLinkTarget($this, 
"editOrder"));
   896         if ($rbacsystem->
checkAccess(
'edit_permission', $this->ref_id)) {
   897             $this->tabs_gui->addTarget(
   899                 $this->
ctrl->getLinkTargetByClass([get_class($this), 
'ilpermissiongui'], 
"perm"),
   900                 [
"perm", 
"info", 
"owner"],
   903             if ($ilCtrl->getNextClass() === 
"ilpermissiongui") {
   904                 $this->tabs_gui->activateTab(
"perm_settings");
   909         if (strtolower($this->std_request->getBaseClass()) === 
"ilrepositorygui" &&
   910             $this->clipboard->hasEntries()) {
   911             $this->tabs_gui->addTarget(
   913                 $this->
ctrl->getLinkTarget($this, 
"clipboard"),
   928         $this->
ctrl->redirect($this, 
"render");
   934         $this->
ctrl->redirect($this, 
"render");
   940         $this->edit_order = 
true;
   944         $ilTabs->activateSubTab(
"ordering");
   967         $this->multi_download_enabled = 
true;
   986         $ids = $this->std_request->getSelectedIds();
   989         if (count($ids) === 0) {
   990             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"), 
true);
   991             $this->
ctrl->redirect($this, 
"");
   997             $node_data = $this->tree->getNodeData($ref_id);
   998             $subtree_nodes = $this->tree->getSubTree($node_data);
  1000             $all_node_data[] = $node_data;
  1001             $all_subtree_nodes[] = $subtree_nodes;
  1004             foreach ($subtree_nodes as $node) {
  1005                 if ($node[
'type'] === 
'rolf') {
  1009                 if (!$rbacsystem->
checkAccess(
'delete', $node[
"ref_id"])) {
  1010                     $no_cut[] = $node[
"ref_id"];
  1015         if (count($no_cut)) {
  1017             foreach ($no_cut as $cut_id) {
  1021                 $this->
lng->txt(
"msg_no_perm_cut") . 
" " . implode(
',', $titles),
  1025         $this->clipboard->setParent($this->requested_ref_id);
  1026         $this->clipboard->setCmd($ilCtrl->getCmd());
  1027         $this->clipboard->setRefIds($this->std_request->getSelectedIds());
  1029         $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"msg_cut_clipboard"), 
true);
  1047         $ids = $this->std_request->getSelectedIds();
  1049         if (count($ids) === 0) {
  1050             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"), 
true);
  1051             $this->
ctrl->redirect($this, 
"");
  1058             $node_data = $this->tree->getNodeData($ref_id);
  1061             if ($objDefinition->isContainer($node_data[
"type"])) {
  1065             $subtree_nodes = $this->tree->getSubTree($node_data);
  1067             $all_node_data[] = $node_data;
  1068             $all_subtree_nodes[] = $subtree_nodes;
  1071             foreach ($subtree_nodes as $node) {
  1072                 if ($node[
'type'] === 
'rolf') {
  1076                 if (!$rbacsystem->
checkAccess(
'visible,read', $node[
"ref_id"])) {
  1077                     $no_copy[] = $node[
"ref_id"];
  1082         if ($containers > 0 && count($this->std_request->getSelectedIds()) > 1) {
  1083             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"cntr_container_only_on_their_own"), 
true);
  1084             $this->
ctrl->redirect($this, 
"");
  1088         if (is_array($no_copy) && count($no_copy)) {
  1090             foreach ($no_copy as $copy_id) {
  1093             $this->tpl->setOnScreenMessage(
  1095                 $this->
lng->txt(
"msg_no_perm_copy") . 
" " . implode(
',', $titles),
  1098             $this->
ctrl->redirect($this, 
"");
  1102         $ids = $this->std_request->getSelectedIds();
  1103         if (count($ids) === 1) {
  1104             $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_id", $ids[0]);
  1106             $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_ids", implode(
"_", $ids));
  1108         $ilCtrl->redirectByClass(
"ilobjectcopygui", 
"initTargetSelection");
  1110         $this->clipboard->setParent($this->requested_ref_id);
  1111         $this->clipboard->setCmd($ilCtrl->getCmd());
  1112         $this->clipboard->setRefIds($ids);
  1114         $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"msg_copy_clipboard"), 
true);
  1128         $initiated_by_folder_action = 
false;
  1130         $ids = $this->std_request->getSelectedIds();
  1132         if (count($ids) === 0) {
  1135             if ($object_type === 
"fold") {
  1137                 $initiated_by_folder_action = 
true;
  1139                 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"), 
true);
  1140                 $this->
ctrl->redirect($this, 
"");
  1147             $initiated_by_folder_action
  1151         if ($download_job->run()) {
  1152             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_bt_download_started'), 
true);
  1154         $GLOBALS[
'DIC']->ctrl()->redirect($this);
  1175         $ids = $this->std_request->getSelectedIds();
  1177         if (count($ids) === 0) {
  1178             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"), 
true);
  1179             $this->
ctrl->redirect($this, 
"");
  1184             if (!$rbacsystem->
checkAccess(
'delete', $ref_id)) {
  1196         if ($no_cut !== []) {
  1197             $this->tpl->setOnScreenMessage(
  1199                 $this->
lng->txt(
"msg_no_perm_link") . 
" " . implode(
',', $no_cut),
  1202             $this->
ctrl->redirect($this, 
"");
  1205         if ($no_link !== []) {
  1207             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_obj_no_link'), 
true);
  1208             $this->
ctrl->redirect($this, 
"");
  1211         $this->clipboard->setParent($this->requested_ref_id);
  1212         $this->clipboard->setCmd($ilCtrl->getCmd());
  1213         $this->clipboard->setRefIds($ids);
  1216         if (count($this->clipboard->getRefIds()) === 1) {
  1219         $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"msg_link_clipboard_" . $suffix), 
true);
  1229         $this->clipboard->clear();
  1234         if ($this->
ctrl->getCmd() === 
"clear") {
  1235             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_clear_clipboard"), 
true);
  1237             $this->
ctrl->redirect($this, 
'render');
  1256         $not_allowed_subobject = [];
  1259         $command = $this->clipboard->getCmd();
  1260         if (!in_array($command, [
'cut', 
'link', 
'copy'])) {
  1261             $message = __METHOD__ . 
": cmd was neither 'cut', 'link' nor 'copy'; may be a hack attempt!";
  1265         $nodes = $this->std_request->getNodes();
  1267         if (count($nodes) === 0) {
  1268             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_at_least_one_object'));
  1280         $folder_objects_cache = [];
  1281         foreach ($this->clipboard->getRefIds() as 
$ref_id) {
  1285             foreach ($nodes as $folder_ref_id) {
  1286                 if (!array_key_exists($folder_ref_id, $folder_objects_cache)) {
  1291                 if (!$rbacsystem->
checkAccess(
'create', $folder_ref_id, $obj_data->getType())) {
  1292                     $no_paste[] = sprintf(
  1293                         $this->
lng->txt(
'msg_no_perm_paste_object_in_folder'),
  1294                         $obj_data->getTitle() . 
' [' . $obj_data->getRefId() . 
']',
  1295                         $folder_objects_cache[$folder_ref_id]->getTitle(
  1296                         ) . 
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() . 
']'  1301                 if ($folder_ref_id == $current_parent_id) {
  1302                     $exists[] = sprintf(
  1303                         $this->
lng->txt(
'msg_obj_exists_in_folder'),
  1304                         $obj_data->getTitle() . 
' [' . $obj_data->getRefId() . 
']',
  1305                         $folder_objects_cache[$folder_ref_id]->getTitle(
  1306                         ) . 
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() . 
']'  1312                     $is_child[] = sprintf(
  1313                         $this->
lng->txt(
'msg_paste_object_not_in_itself'),
  1314                         $obj_data->getTitle() . 
' [' . $obj_data->getRefId() . 
']'  1319                 if (!array_key_exists(
  1320                     $obj_data->getType(),
  1321                     $folder_objects_cache[$folder_ref_id]->getPossibleSubObjects()
  1323                     $not_allowed_subobject[] = sprintf(
  1324                         $this->
lng->txt(
'msg_obj_may_not_contain_objects_of_type'),
  1325                         $folder_objects_cache[$folder_ref_id]->getTitle(
  1326                         ) . 
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() . 
']',
  1327                         $lng->
txt(
'obj_' . $obj_data->getType())
  1336         if ($command !== 
"copy" && count($exists)) {
  1337             $error .= implode(
'<br />', $exists);
  1340         if (count($is_child)) {
  1341             $error .= $error !== 
'' ? 
'<br />' : 
'';
  1342             $error .= implode(
'<br />', $is_child);
  1345         if (count($not_allowed_subobject)) {
  1346             $error .= $error !== 
'' ? 
'<br />' : 
'';
  1347             $error .= implode(
'<br />', $not_allowed_subobject);
  1350         if (count($no_paste)) {
  1351             $error .= $error !== 
'' ? 
'<br />' : 
'';
  1352             $error .= implode(
'<br />', $no_paste);
  1355         if ($error !== 
'') {
  1356             $this->tpl->setOnScreenMessage(
'failure', $error);
  1368         $ilLog->write(__METHOD__ . 
", cmd: " . $command);
  1374         $ref_ids = $this->clipboard->getRefIds();
  1375         $this->clipboard->clear();
  1379         if ($command === 
'copy') {
  1380             foreach ($nodes as $folder_ref_id) {
  1381                 foreach ($ref_ids as 
$ref_id) {
  1385                     if ($oldNode_data[
'parent'] == $folder_ref_id) {
  1387                         $newRef = $this->
cloneNodes($ref_id, $folder_ref_id, $refIdMapping, $newTitle);
  1389                         $newRef = $this->
cloneNodes($ref_id, $folder_ref_id, $refIdMapping, null);
  1396                         $oldNode_data[
'type'],
  1398                         $oldNode_data[
'obj_id'],
  1402                         $newNode_data[
'obj_id'],
  1405                         $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
  1412             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_cloned'), 
true);
  1416         if ($command === 
'cut') {
  1417             foreach ($nodes as $folder_ref_id) {
  1418                 foreach ($ref_ids as 
$ref_id) {
  1430                         $node_data[
'obj_id'],
  1433                         $old_parent_data[
'obj_id']
  1436                         $node_data[
'obj_id'],
  1439                         $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
  1449             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_cut_copied'), 
true);
  1453         if ($command === 
'link') {
  1455             $linked_to_folders = [];
  1459             foreach ($nodes as $folder_ref_id) {
  1460                 $linked_to_folders[$folder_ref_id] = $ilObjDataCache->lookupTitle(
  1461                     $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
  1464                 foreach ($ref_ids as 
$ref_id) {
  1473                 foreach ($subnodes as 
$key => $subnode) {
  1476                     $new_ref_id = $obj_data->createReference();
  1477                     $obj_data->putInTree($folder_ref_id);
  1478                     $obj_data->setPermissions($folder_ref_id);
  1481                     if ($rbac_log_active) {
  1490                         $node_data[
'obj_id'],
  1493                         $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
  1499                 $ilLog->write(__METHOD__ . 
', link finished');
  1503             if (count($linked_to_folders)) {
  1504                 foreach ($linked_to_folders as 
$ref_id => $title) {
  1505                     $links[] = $ui->
factory()->link()->standard($title, ilLink::_getLink(
$ref_id));
  1510             if (count($ref_ids) === 1) {
  1514             $mbox = $ui->
factory()->messageBox()->success(
  1515                 $this->
lng->txt(
'mgs_objects_linked_to_the_following_folders_' . $suffix)
  1517                        ->withLinks($links);
  1519             $this->tpl->setOnScreenMessage(
'success', $ui->
renderer()->render($mbox), 
true);
  1525         $this->
ctrl->returnToParent($this);
  1538         $ilTabs->setTabActive(
'view_content');
  1540         if (!in_array($this->clipboard->getCmd(), [
'link', 
'copy', 
'cut'])) {
  1541             $message = __METHOD__ . 
": Unknown action.";
  1544         $cmd = $this->clipboard->getCmd();
  1548         if ($exp->handleCommand()) {
  1551         $output = $exp->getHTML();
  1553         $txt_var = ($cmd === 
"copy")
  1559         $t->setFormAction($this->
ctrl->getFormAction($this, 
"performPasteIntoMultipleObjects"));
  1562             $this->
lng->txt($txt_var),
  1563             "performPasteIntoMultipleObjects"  1564         )->submit()->toToolbar(
true, $t);
  1567         $this->
lng->loadLanguageModule(
'obj');
  1568         $t->addFormButton($this->
lng->txt(
"obj_insert_into_clipboard"), 
"keepObjectsInClipboard");
  1570         $t->addFormButton($this->
lng->txt(
"cancel"), 
"cancelMoveLink");
  1571         $t->setCloseFormTag(
false);
  1573         $output = $t->getHTML() . $output;
  1575         $t->setCloseFormTag(
true);
  1576         $t->setOpenFormTag(
false);
  1577         $output .= 
"<br />" . $t->getHTML();
  1579         $this->tpl->setContent($output);
  1590         $this->clipboard->clear();
  1598         $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"obj_inserted_clipboard"), 
true);
  1629         $not_allowed_subobject = [];
  1632         if (!in_array($this->clipboard->getCmd(), [
"cut", 
"link", 
"copy"])) {
  1635             ) . 
"::pasteObject(): cmd was neither 'cut','link' or 'copy'; may be a hack attempt!";
  1640         foreach ($this->clipboard->getRefIds() as 
$ref_id) {
  1644             if (!$rbacsystem->
checkAccess(
'create', $this->object->getRefId(), $obj_data->getType())) {
  1646                 $no_paste_titles[] = $obj_data->getTitle();
  1650             if ($this->
object->getRefId() === $this->tree->getParentId($obj_data->getRefId())) {
  1656             if ($this->tree->isGrandChild(
$ref_id, $this->object->getRefId())) {
  1665             $obj_type = $obj_data->getType();
  1667             if (!array_key_exists($obj_type, $this->
object->getPossibleSubObjects())) {
  1668                 $not_allowed_subobject[] = $obj_data->getType();
  1675         if (count($exists) > 0 && $this->clipboard->getCmd() !== 
"copy") {
  1677             $ilErr->raiseError($this->
lng->txt(
"msg_obj_exists"), 
$ilErr->MESSAGE);
  1680         if (count($is_child) > 0) {
  1682                 $this->
lng->txt(
"msg_not_in_itself") . 
" " . implode(
',', $is_child),
  1687         if (count($not_allowed_subobject) > 0) {
  1689                 $this->
lng->txt(
"msg_may_not_contain") . 
" " . implode(
',', $not_allowed_subobject),
  1694         if (count($no_paste) > 0) {
  1696                 $this->
lng->txt(
"msg_no_perm_paste") . 
" " .
  1697                 implode(
',', $no_paste),
  1703         $ilLog->write(
"ilObjectGUI::pasteObject(), cmd: " . $this->clipboard->getCmd());
  1709         $ref_ids = $this->clipboard->getRefIds();
  1712         $last_cmd = $this->clipboard->getCmd();
  1716         if ($this->clipboard->getCmd() === 
"copy") {
  1717             $this->clipboard->clear();
  1720             $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"target", $this->
object->getRefId());
  1721             if (count($ref_ids) === 1) {
  1722                 $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_id", $ref_ids[0]);
  1724                 $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_ids", implode(
"_", $ref_ids));
  1726             $ilCtrl->redirectByClass(
"ilobjectcopygui", 
"saveTarget");
  1728             $ilLog->write(
"ilObjectGUI::pasteObject(), copy finished");
  1733         if ($this->clipboard->getCmd() === 
"cut") {
  1734             foreach ($ref_ids as 
$ref_id) {
  1737                 $this->tree->moveTree($ref_id, $this->
object->getRefId());
  1746                     $node_data[
'obj_id'],
  1749                     $old_parent_data[
'obj_id']
  1752                     $node_data[
'obj_id'],
  1755                     $this->
object->getId()
  1765         if ($this->clipboard->getCmd() === 
"link") {
  1766             foreach ($ref_ids as $ref_id) {
  1768                 $top_node = $this->tree->getNodeData($ref_id);
  1771                 $subnodes[
$ref_id] = $this->tree->getSubTree($top_node);
  1774             foreach ($subnodes as 
$key => $subnode) {
  1777                 $new_ref_id = $obj_data->createReference();
  1778                 $obj_data->putInTree($this->requested_ref_id);
  1779                 $obj_data->setPermissions($this->requested_ref_id);
  1784                     $node_data[
'obj_id'],
  1787                     $this->
object->getId()
  1793             $ilLog->write(
"ilObjectGUI::pasteObject(), link finished");
  1800         if ($last_cmd === 
"cut") {
  1801             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_cut_copied"), 
true);
  1803         elseif ($last_cmd === 
"copy") {
  1804             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_cloned"), 
true);
  1805         } elseif ($last_cmd === 
'link') {
  1807             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_linked"), 
true);
  1810         $this->
ctrl->returnToParent($this);
  1824         $ilTabs->activateTab(
"clipboard");
  1827         if (!$this->clipboard->hasEntries()) {
  1828             $message = sprintf(
'%s::clipboardObject(): Illegal access. Clipboard variable is empty!', get_class($this));
  1829             $ilLog->write(
$message, $ilLog->FATAL);
  1830             $ilErr->raiseError($this->
lng->txt(
"permission_denied"), 
$ilErr->WARNING);
  1834         foreach ($this->clipboard->getRefIds() as 
$ref_id) {
  1840                 "type" => $tmp_obj->getType(),
  1841                 "type_txt" => $this->
lng->txt(
"obj_" . $tmp_obj->getType()),
  1842                 "title" => $tmp_obj->getTitle(),
  1843                 "cmd" => ($this->clipboard->getCmd() === 
"cut") ? $this->
lng->txt(
"move") : $this->
lng->txt(
  1844                     $this->clipboard->getCmd()
  1847                 "obj_id" => $tmp_obj->getId()
  1854         $tab->setData(
$data);
  1857         if (count(
$data) > 0) {
  1858             $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
  1859             $ilToolbar->addFormButton(
  1860                 $lng->
txt(
"insert_object_here"),
  1863             $ilToolbar->addFormButton(
  1873         if ($this->
object->getRefId() &&
  1874             !$this->rbacsystem->checkAccess(
"visible,read", $this->
object->getRefId())) {
  1884         parent::setColumnSettings($column_gui);
  1887             $this->item_presentation
  1892         if ($ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
  1933         $new_type = $this->std_request->getNewType();
  1935         $clone_source = $this->std_request->getCloneSource();
  1938             $ilErr->raiseError($this->
lng->txt(
'permission_denied'));
  1940         if (!$clone_source) {
  1941             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
  1945         if (!$ilAccess->checkAccess(
'write', 
'', $clone_source, $new_type)) {
  1946             $ilErr->raiseError($this->
lng->txt(
'permission_denied'));
  1949         $options = $this->std_request->getCopyOptions();
  1951         $result = $orig->cloneAllObject(
  1961             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"object_duplicated"), 
true);
  1962             $ilCtrl->setParameterByClass(
"ilrepositorygui", 
"ref_id", $result[
'ref_id']);
  1964             $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"object_copy_in_progress"), 
true);
  1965             $ilCtrl->setParameterByClass(
"ilrepositorygui", 
"ref_id", 
$ref_id);
  1967         $ilCtrl->redirectByClass(
"ilrepositorygui", 
"");
  1975         $positions = $this->std_request->getPositions();
  1976         $sorting->savePost($positions);
  1977         $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'cntr_saved_sorting'), 
true);
  1978         $this->
ctrl->redirect($this, 
"editOrder");
  1990         string $newName = null
  1996         $newRef = $srcObj->cloneObject($dstRef)->getRefId();
  2001         if (!is_null($newName)) {
  2003             $newObj->setTitle($newName);
  2008         $mapping[$newRef] = $srcRef;
  2015             if ($child[
"type"] !== 
'rolf') {
  2016                 $this->
cloneNodes($child[
"ref_id"], $newRef, $mapping);
  2018                 $mapping[$rolf[0][
"ref_id"]] = $child[
"ref_id"];
  2049         int $a_course_ref_id
  2053         $tree = $DIC->repositoryTree();
  2058         foreach ($path_arr as 
$data) {
  2062             $path .= $data[
'title'];
  2071         $this->content_style_gui
  2072             ->redirectToObjectSettings();
  2086         $ref_id = $this->std_request->getCmdRefId();
  2098         $item_list_gui->setContainerObject($this);
  2100         $item_list_gui->enableComments(
true);
  2101         $item_list_gui->enableNotes(
true);
  2102         $item_list_gui->enableTags(
true);
  2105         $html = $item_list_gui->getListItemHTML(
  2115         foreach ($this->component_factory->getActivePluginsInSlot(
"uihk") as 
$plugin) {
  2116             $gui_class = 
$plugin->getUIClassInstance();
  2117             $resp = $gui_class->getHTML(
"Services/Container", 
"async_item_list", [
"html" => 
$html]);
  2135             $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'webdav_pwd_instruction'));
  2143             $this->
lng->txt(
"mount_webfolder"),
  2145         )->onClick(
"triggerWebDAVModal('$href'); return false;")->toToolbar();
  2156         $this->
form->setFormAction($this->
ctrl->getFormAction($this));
  2162         $this->
form->addItem($ipass);
  2163         $this->
form->addCommandButton(
"savePassword", $this->
lng->txt(
"save"));
  2164         $this->
form->addCommandButton(
'cancel', $this->
lng->txt(
'cancel'));
  2166         $this->
form->setTitle($this->
lng->txt(
"chg_ilias_and_webfolder_password"));
  2167         $this->
form->setFormAction($this->
ctrl->getFormAction($this));
  2178             $ilUser->resetPassword($this->
form->getInput(
'new_password'), $this->
form->getInput(
'new_password'));
  2179             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'webdav_pwd_instruction_success'), 
true);
  2196         $child_ref_id = $this->std_request->getChildRefId();
  2197         $parent_ref_id = $this->std_request->getParentRefId();
  2199         $item_data = $this->
object->getSubItems(
false, 
false, $child_ref_id);
  2204         if (isset($this->
object->items[
"sess"])) {
  2205             $sess_data = $this->
object->items[
"sess"]; 
  2214         if (in_array($child_ref_id, $event_items)) {
  2215             foreach (($sess_data) as 
$id) {
  2217                 foreach ($items as $event_item) {
  2218                     if ($event_item[
"child"] == $child_ref_id) {
  2220                         if ($parent_ref_id > 0) {
  2221                             $event_item[
"parent"] = $parent_ref_id;
  2223                         $html = $container_view->renderItem($event_item);
  2231             foreach (($this->
object->items[
"_all"] ?? []) as 
$id) {
  2232                 if ($id[
"child"] == $child_ref_id) {
  2233                     $html = $container_view->renderItem($id);
  2255         $form->
setTitle($this->
lng->txt($this->object->getType() . 
"_edit"));
  2257         $this->initFormTitleDescription($form);
  2274             $trans = $this->
object->getObjectTranslation();
  2277         $title->setRequired(
true);
  2282         if ($this->
getCreationMode() === 
false && count($trans->getLanguages()) > 1) {
  2285                 $this->
lng->txt(
"language") . 
": " . $languages[$trans->getDefaultLanguage()] .
  2286                 ' <a href="' . $this->
ctrl->getLinkTargetByClass(
"ilobjecttranslationgui", 
"") .
  2287                 '">» ' . $this->
lng->txt(
"obj_more_translations") . 
'</a>'  2299             $title->setValue($trans->getDefaultTitle());
  2300             $desc->setValue($trans->getDefaultDescription());
  2309         array $a_sorting_settings
  2316             $sort_inherit->setTitle(
  2317                 $this->
lng->txt(
'sort_inherit_prefix') .
  2325             $sort_inherit->setInfo($this->
lng->txt(
'sorting_info_inherit'));
  2326             $sort->addOption($sort_inherit);
  2330                 $this->
lng->txt(
'sorting_title_header'),
  2333             $sort_title->setInfo($this->
lng->txt(
'sorting_info_title'));
  2336             $sort->addOption($sort_title);
  2340                 $this->
lng->txt(
'sorting_creation_header'),
  2343             $sort_activation->setInfo($this->
lng->txt(
'sorting_creation_info'));
  2345             $sort->addOption($sort_activation);
  2349             $sort_activation->setInfo($this->
lng->txt(
'crs_sort_timing_info'));
  2351             $sort->addOption($sort_activation);
  2355                 $this->
lng->txt(
'sorting_manual_header'),
  2358             $sort_manual->setInfo($this->
lng->txt(
'sorting_info_manual'));
  2360             $sort->addOption($sort_manual);
  2364         if (in_array(
$settings->getSortMode(), $a_sorting_settings)) {
  2365             $sort->setValue((
string) 
$settings->getSortMode());
  2382         $item_list->
setInfo($this->
lng->txt(
'cont_item_list_info'));
  2383         $lpres->addOption($item_list);
  2386         $tile_view->
setInfo($this->
lng->txt(
'cont_tile_view_info'));
  2387         $lpres->addOption($tile_view);
  2394             $si->addOption($op);
  2396         $tile_view->addSubItem($si);
  2412         $val = ($form->
getInput(
'list_presentation') === 
"tile")
  2419             (string) ((
int) $form->
getInput(
'tile_size'))
  2431         if ($a_prefix === 
'manual') {
  2432             $txt = $this->
lng->txt(
'sorting_new_items_direction');
  2434             $txt = $this->
lng->txt(
'sorting_direction');
  2439         $direction->setRequired(
true);
  2443             $this->
lng->txt(
'sorting_asc'),
  2446         $direction->addOption($asc);
  2450             $this->
lng->txt(
'sorting_desc'),
  2453         $direction->addOption($desc);
  2467         array $a_sorting_settings
  2470             $this->
lng->txt(
'sorting_new_items_position'),
  2471             $a_prefix . 
'_new_items_position'  2474         $position->setRequired(
true);
  2478             $this->
lng->txt(
'sorting_new_items_at_top'),
  2482         $position->addOption($new_top);
  2486             $this->
lng->txt(
'sorting_new_items_at_bottom'),
  2490         $position->addOption($new_bottom);
  2494         $order = 
new ilRadioGroupInputGUI($this->
lng->txt(
'sorting_new_items_order'), $a_prefix . 
'_new_items_order');
  2496         $order->setRequired(
true);
  2501                 $this->
lng->txt(
'sorting_title_header'),
  2505             $order->addOption($new_title);
  2511                 $this->
lng->txt(
'sorting_creation_header'),
  2515             $order->addOption($new_creation);
  2521                 $this->
lng->txt(
'crs_sort_activation'),
  2525             $order->addOption($new_activation);
  2540         switch ($form->
getInput(
'sorting')) {
  2545                 $settings->setSortDirection((
int) $form->
getInput(
'activation_sorting_direction'));
  2548                 $settings->setSortDirection((
int) $form->
getInput(
'creation_sorting_direction'));
  2551                 $settings->setSortNewItemsPosition($form->
getInput(
'manual_new_items_position'));
  2568         $this->tabs_gui->activateTab(
'trash');
  2570         $this->
lng->loadLanguageModule(
'cont');
  2574         $trash_table->
init();
  2575         $trash_table->parse();
  2577         $trash_table->setFilterCommand(
'trashApplyFilter');
  2578         $trash_table->setResetCommand(
'trashResetFilter');
  2596         $trash_table->
init();
  2597         $trash_table->resetOffset();
  2598         if ($action_reset) {
  2599             $trash_table->resetFilter();
  2601         if ($action_apply) {
  2602             $trash_table->writeFilterToSession();
  2611         $ru->removeObjectsFromSystem($this->std_request->getTrashIds());
  2612         $this->
ctrl->redirect($this, 
"trash");
  2617         $this->tabs_gui->activateTab(
'trash');
  2620         $ru->restoreToNewLocation();
  2629         $ru->restoreObjects(
  2630             $this->requested_ref_id,
  2631             $this->std_request->getTrashIds()
  2633         $this->
ctrl->redirect($this, 
"trash");
  2640         if (count($this->std_request->getTrashIds()) == 0) {
  2641             $this->tpl->setOnScreenMessage(
'failure', 
$lng->
txt(
"no_checkbox"), 
true);
  2642             $this->
ctrl->redirect($this, 
"trash");
  2646         $ru->confirmRemoveFromSystemObject($this->std_request->getTrashIds());
  2656         $exp->setTypeWhiteList([
"root", 
"cat", 
"grp", 
"crs", 
"fold"]);
  2660         if (in_array($this->clipboard->getCmd(), [
"link", 
"cut"])) {
  2661             $lso_types = array_keys($this->obj_definition->getSubObjects(
'lso'));
  2662             $refs = $this->clipboard->getRefIds();
  2664             foreach ($refs as $item_ref_id) {
  2666                 if (!in_array(
$type, $lso_types)) {
  2671                 $whitelist = $exp->getTypeWhiteList();
  2672                 $whitelist[] = 
'lso';
  2673                 $exp->setTypeWhiteList($whitelist);
  2677         if ($cmd === 
"link") {
  2678             $exp->setSelectMode(
"nodes", 
true);
  2680             $exp->setSelectMode(
"nodes[]", 
false);
  2687         $this->
ctrl->setReturn($this, 
"");
  2703         $request = $DIC->http()->request();
  2705         $filter = $filter_service->util()->getFilterForRefId(
  2707             $DIC->ctrl()->getLinkTarget($this, 
"render", 
"", 
true),
  2711         $filter_data = $DIC->uiService()->filter()->getData($filter);
  2713         $this->container_user_filter = $filter_service->userFilter($filter_data);
  2714         $this->ui_filter = $filter;
  2720         if (!is_null($this->ui_filter)) {
  2721             $renderer = $DIC->ui()->renderer();
  2724             $main_tpl->setFilter($renderer->render($this->ui_filter));
  2727                 "filter_show_empty",
  2738             $this->tabs_gui->addTab(
  2740                 $this->
lng->txt(
'view'),
  2741                 $this->
ctrl->getLinkTarget($this, 
'view')
  2746         $this->tabs_gui->addTab(
  2748             $this->
lng->txt(
'trash'),
  2749             $this->
ctrl->getLinkTarget($this, 
'trash')
  2753             $this->tabs_gui->addTab(
  2755                 $this->
lng->txt(
'perm_settings'),
  2756                 $this->
ctrl->getLinkTargetByClass(
 ilContainerUserFilter $container_user_filter
 
printToStdout(string $part=self::DEFAULT_BLOCK, bool $has_tabs=true, bool $skip_main_menu=false)
 
parseCurrentBlock(string $part=ilGlobalTemplateInterface::DEFAULT_BLOCK)
 
moveTree(int $a_source_id, int $a_target_id, int $a_location=self::POS_LAST_NODE)
Move Tree Implementation  public. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
getAsynchItemListObject()
 
ilObjectDefinition $obj_definition
 
prepareOutput(bool $show_subobjects=true)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
static gatherFaPa(int $a_ref_id, array $a_role_ids, bool $a_add_action=false)
 
ILIAS Container Content ItemPresentationManager $item_presentation
 
redrawListItemObject()
Redraw a list item (ajax) 
 
initAndDisplayMoveIntoObjectObject()
 
ilObjectDataCache $obj_data_cache
 
adjustMovedObjectPermissions(int $ref_id, int $old_parent)
Adjust permissions of moved objects. 
 
enableAdministrationPanelObject()
 
cloneNodes(int $srcRef, int $dstRef, array &$mapping, string $newName=null)
Recursively clones all nodes of the RBAC tree. 
 
clearObject()
clear clipboard and go back to last object 
 
getNodeData(int $a_node_id, ?int $a_tree_pk=null)
get all information of a node. 
 
redirectByClass( $a_class, string $a_cmd=null, string $a_anchor=null, bool $is_async=false)
 
const SORT_NEW_ITEMS_POSITION_TOP
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
saveSortingSettings(ilPropertyFormGUI $form)
 
Explorer for selecting repository items. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
 
renderBlockAsynchObject()
render the object 
 
special template class to simplify handling of ITX/PEAR 
 
StandardGUIRequest $std_request
 
static getItemsByEvent(int $event_id)
Get session material / event items. 
 
string $requested_redirectSource
 
Class ilDownloadContainerFilesBackgroundTask. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
__construct($data, int $id=0, bool $call_by_reference=true, bool $prepare_output=true)
 
setOnScreenMessage(string $type, string $a_txt, bool $a_keep=false)
Set a message to be displayed to the user. 
 
getCmd(string $fallback_command=null)
 
initSortingDirectionForm(ilContainerSortingSettings $sorting_settings, ilRadioOption $element, string $a_prefix)
Add sorting direction. 
 
initAndDisplayCopyIntoMultipleObjectsObject()
 
Class ChatMainBarProvider . 
 
getTreeSelectorGUI(string $cmd)
 
addMessageRow(ilTemplate $a_tpl, string $a_message, string $a_type)
 
getChilds(int $a_node_id, string $a_order="", string $a_direction="ASC")
get child nodes of given node 
 
cloneAllObject()
Clone all object Overwritten method for copying container objects. 
 
allowBlocksMoving()
Standard is to allow blocks moving. 
 
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory) 
 
trashObject()
Show trash content of object. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
getDidacticTemplateVar(string $type)
Get didactic template setting from creation screen. 
 
trashHandleFilter(bool $action_apply, bool $action_reset)
 
setAdminCommands(bool $a_admincommands)
 
confirmRemoveFromSystemObject()
 
loadLanguageModule(string $a_module)
Load language module. 
 
createObject()
create new object form 
 
enableMultiDownloadObject()
 
setVariable(string $variable, $value='')
Sets the given variable to the given value. 
 
ilContainerFilterService $container_filter_service
 
returnToParent(object $a_gui_obj, string $a_anchor=null)
 
static _getItemsOfContainer(int $a_ref_id)
 
static getStyleSheetLocation(string $mode="output", string $a_css_name="", string $a_css_location="")
get full style sheet file name (path inclusive) of current user 
 
setStyleId(int $a_styleid)
 
initAndDisplayLinkIntoMultipleObjectsObject()
 
getPathFull(int $a_endnode_id, int $a_startnode_id=0)
get path from a given startnode to a given endnode if startnode is not given the rootnode is startnod...
 
isActiveAdministrationPanel()
 
ClipboardManager $clipboard
 
static _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
 
static _appendNumberOfCopyToFilename($a_file_name, $nth_copy=null)
Appends the text " - Copy" to a filename in the language of the current user. 
 
static _lookupObjId(int $ref_id)
 
ModeManager $mode_manager
 
Parent class of all container content GUIs. 
 
isGrandChild(int $a_startnode_id, int $a_querynode_id)
checks if a node is in the path of an other node 
 
static getASCIIFilename(string $a_filename)
 
initFormPasswordInstruction()
Init password form. 
 
getItemPresentation( $include_empty_blocks=true, ?string $lang=null)
 
checkAccess(string $a_operations, int $a_ref_id, string $a_type="")
checkAccess represents the main method of the RBAC-system in ILIAS3 developers want to use With this ...
 
static _lookupSortMode(int $a_obj_id)
 
touchBlock(string $block)
 
pasteObject()
paste object from clipboard to current place Depending on the chosen command the object(s) are linked...
 
parses the objects.xml it handles the xml-description of all ilias objects 
 
getChildsByType(int $a_node_id, string $a_type)
get child nodes of given node by object type 
 
Provides fluid interface to RBAC services. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
editStylePropertiesObject()
 
static lookupTemplateId(int $a_ref_id)
 
static _existsAndNotEmpty(string $a_parent_type, int $a_id, string $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages) ...
 
ilComponentFactory $component_factory
 
const SORT_NEW_ITEMS_POSITION_BOTTOM
 
setVariable($variable, $value='')
Sets a variable value. 
 
static add(int $a_action, int $a_ref_id, array $a_diff, bool $a_source_ref_id=false)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
ilGlobalTemplateInterface $tpl
 
static _lookupTitle(int $obj_id)
 
setContent(string $a_html)
Sets content for standard template. 
 
undeleteObject()
Get objects back from trash. 
 
getParentNodeData(int $a_node_id)
get data of parent node from tree and object_data 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
showPasswordInstructionObject(bool $a_init=true)
 
addStandardContainerSubTabs(bool $a_include_view=true)
Add standard container subtabs for view, manage, oderdering and text/media editor link...
 
static _exists(string $a_parent_type, int $a_id, string $a_lang="", bool $a_no_cache=false)
Checks whether page exists. 
 
linkObject()
create an new reference of an object in tree it's like a hard link of unix 
 
Column user interface class. 
 
ILIAS Style Content GUIService $content_style_gui
 
setColumnSettings(ilColumnGUI $column_gui)
 
const SORT_NEW_ITEMS_ORDER_CREATION
 
ServerRequestInterface $request
 
renderer()
Get a renderer for UI components. 
 
allowBlocksConfigure()
Standard is to allow blocks configuration. 
 
Class ilObjectGUI Basic methods of all Output classes. 
 
static _recordReadEvent(string $a_type, int $a_ref_id, int $obj_id, int $usr_id, bool $isCatchupWriteEvents=true, $a_ext_rc=null, $a_ext_time=null)
 
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id 
 
getParentRoleIds(int $a_endnode_id, bool $a_templates=false)
Get an array of parent role ids of all parent roles, if last parameter is set true you get also all p...
 
static getInstance(int $obj_id)
 
static _isFinished(int $a_copy_id)
 
setBackTarget(string $a_title, string $a_target, string $a_frame="")
 
Repository GUI Utilities. 
 
static _lookupObjectId(int $ref_id)
 
static _recordWriteEvent(int $obj_id, int $usr_id, string $action, ?int $parent_obj_id=null)
Records a write event. 
 
static _adjustMovedObjectConditions(int $a_ref_id)
In the moment it is not allowed to create preconditions on objects that are located outside of a cour...
 
setItemPresentationManager(ItemPresentationManager $item_presentation)
 
cancelMoveLinkObject()
Cancel move|link empty clipboard and return to parent. 
 
Manages items in repository clipboard. 
 
static _getListGUIByType(string $type, int $context=ilObjectListGUI::CONTEXT_REPOSITORY)
 
getParentId(int $a_node_id)
get parent id of given node 
 
clearTargets()
clear all targets 
 
setBlockProperty(string $a_block_type, string $a_property, string $a_value)
This function is supposed to be used for block type specific properties, that should be passed to ilB...
 
static getSyntaxStylePath()
 
initManualSortingOptionForm(ilContainerSortingSettings $settings, ilRadioOption $element, string $a_prefix, array $a_sorting_settings)
Add manual sorting options. 
 
copyObject()
Copy object(s) out from a container and write the information to clipboard It is not possible to copy...
 
disableAdministrationPanelObject()
 
saveListPresentation(ilPropertyFormGUI $form)
 
static showMemberViewSwitch(int $a_ref_id)
 
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
static _writeContainerSetting(int $a_id, string $a_keyword, string $a_value)
 
const SORT_NEW_ITEMS_ORDER_ACTIVATION
 
setCurrentBlock(string $part=self::DEFAULT_BLOCK)
Sets the template to the given block. 
 
setCurrentBlock(string $part=ilGlobalTemplateInterface::DEFAULT_BLOCK)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
setPermanentLink(string $a_type, ?int $a_id, string $a_append="", string $a_target="", string $a_title="")
Generates and sets a permanent ilias link. 
 
form( $class_path, string $cmd, string $submit_caption="")
 
initListPresentationForm(ilPropertyFormGUI $form)
Add list presentation settings to form. 
 
getSortNewItemsPosition()
 
addAvailabilityPeriodButtonToToolbar(ilToolbarGUI $toolbar)
 
Error Handling & global info handling. 
 
performPasteIntoMultipleObjectsObject()
 
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
Explorer class that works on tree objects (Services/Tree) 
 
const SORT_DIRECTION_DESC
 
static lookupSortModeFromParentContainer(int $a_obj_id)
 
This class represents a text area property in a property form. 
 
static _getInstance(int $a_obj_id)
 
static sortModeToString(int $a_sort_mode)
Get string representation of sort mode. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
bool $multi_download_enabled
 
restoreToNewLocationObject(ilPropertyFormGUI $form=null)
 
cutObject()
cut object(s) out from a container and write the information to clipboard  public ...
 
ilAppEventHandler $app_event_handler
 
ILIAS Container InternalGUIService $gui
 
Class ilContainerGUI This is a base GUI class for all container objects in ILIAS: root folder...
 
getOnLoadCodeForAsynch()
Get js onload code for ajax calls. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
factory()
Get the factory that crafts UI components. 
 
render()
Add new item selection to current page incl. 
 
Class ilRbacAdmin Core functions for role based access control. 
 
showAdministrationPanel()
 
getUriToMountInstructionModalByRef(int $a_ref_id)
 
static _buildPath(int $a_ref_id, int $a_course_ref_id)
build path 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
getSubTree(array $a_node, bool $a_with_data=true, array $a_type=[])
get all nodes in the subtree under specified node 
 
parseCurrentBlock(string $block_name=self::DEFAULT_BLOCK)
Parses the given block. 
 
static _lookupType(int $id, bool $reference=false)
 
addHeaderRow(ilTemplate $a_tpl, string $a_type, bool $a_show_image=true)
 
static _catchupWriteEvents(int $obj_id, int $usr_id, ?string $timestamp=null)
Catches up with all write events which occured before the specified timestamp. 
 
const SORT_NEW_ITEMS_ORDER_TITLE
 
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
ILIAS Container InternalDomainService $domain
 
keepObjectsInClipboardObject()
 
initEditCustomForm(ilPropertyFormGUI $a_form)
Add custom fields to update form. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
High level business logic class. 
 
modifyItemGUI(ilObjectListGUI $a_item_list_gui, array $a_item_data)
 
cancelPageContentObject()
 
ILIAS Style Content DomainService $content_style_domain