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->setParameterByClass(ilDidacticTemplateGUI::class, 
"didactic_type", $new_tpl_id);
   203             $this->
ctrl->redirectByClass(ilDidacticTemplateGUI::class, 
"confirmTemplateSwitch");
   205         parent::afterUpdate();
   215         if (in_array($cmd, [
"displayMediaFullscreen", 
"downloadFile", 
"displayMedia"])) {
   221         $ilTabs->clearTargets();
   223         if ($this->requested_redirectSource === 
"ilinternallinkgui") {
   227         $ilTabs->setBackTarget(
   229             $this->
ctrl->getLinkTargetByClass(
"ilcontainerpagegui", 
"edit")
   235         $this->content_style_gui->addCss($this->tpl, $this->
object->getRefId());
   246             $new_page_object->setParentId($this->
object->getId());
   247             $new_page_object->setId($this->
object->getId());
   248             $new_page_object->createFromXML();
   253         $style = $this->content_style_domain->styleForRefId($this->
object->getRefId());
   255             $style->getEffectiveStyleId()
   259             $page_gui->getLanguage()
   261         $page_gui->setTemplateTargetVar(
"ADM_CONTENT");
   262         $page_gui->setFileDownloadLink(
"");
   264         $page_gui->setPresentationTitle(
"");
   265         $page_gui->setTemplateOutput(
false);
   268         $page_gui->setTabHook($this, 
"addPageTabs");
   270         return $this->
ctrl->forwardCommand($page_gui);
   280             $ilCtrl->getLinkTargetByClass(
"ilObjectContentStyleSettingsGUI", 
''),
   281             "editStyleProperties",
   282             "ilobjectcontentstylesettingsgui"   291         if (!
$ilSetting->get(
"enable_cat_page_edit") || $this->
object->filteredSubtree()) {
   302         $this->content_style_gui->addCss($this->tpl, $this->
object->getRefId());
   303         $this->tpl->setCurrentBlock(
"SyntaxStyle");
   304         $this->tpl->setVariable(
   305             "LOCATION_SYNTAX_STYLESHEET",
   308         $this->tpl->parseCurrentBlock();
   312         $lang = $ot->getEffectiveContentLang($ilUser->getCurrentLanguage(), 
"cont");
   314         $style = $this->content_style_domain->styleForRefId($this->
object->getRefId());
   315         $page_gui->
setStyleId($style->getEffectiveStyleId());
   317         $page_gui->setPresentationTitle(
"");
   318         $page_gui->setTemplateOutput(
false);
   319         $page_gui->setHeader(
"");
   320         $ret = $page_gui->showPage();
   331             $this->tpl->setTitle($this->
object->getTitle(), 
true);
   333             parent::setTitleAndDescription();
   351         if ($this->
object->filteredSubtree()) {
   354         switch ($view_mode) {
   388         return $container_view;
   404             if (!$this->item_presentation->canManageItems()) {
   405                 $this->
ctrl->redirect($this, 
"disableAdministrationPanel");
   407             $ilTabs->activateSubTab(
"manage");
   409             $ilTabs->activateSubTab(
"view_content");
   412         $container_view->setOutput();
   416         $is_container_cmd = strtolower($this->std_request->getCmdClass()) === strtolower(get_class($this))
   417             || ($this->std_request->getCmdClass() === 
"");
   421         if ($is_container_cmd) {
   424             if (!$this->edit_order) {
   431             if (is_object($this->
object) &&
   433                 $this->rbacsystem->checkAccess(
"write", $this->
object->getRefId())
   435                 if (
$ilSetting->get(
"enable_cat_page_edit")) {
   441                             $lng->
txt(
"cntr_text_media_editor"),
   442                             $ilCtrl->getLinkTarget($this, 
"editPageFrame")
   447             if (!$this->edit_order) {
   459         if ($this->requested_ref_id > 1 && 
$ilSetting->get(
"rep_tree_synchronize")) {
   460             $ilCtrl->setParameter($this, 
"active_node", $this->requested_ref_id);
   475         echo $container_view->getSingleTypeBlockAsynch(
   476             $this->std_request->getType()
   493         $main_tpl = $DIC->ui()->mainTemplate();
   499             $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
   503             $this->
ctrl->setParameter($this, 
"type", 
"");
   504             $this->
ctrl->setParameter($this, 
"item_ref_id", 
"");
   507                 $this->
ui->factory()->button()->standard(
   508                     $this->
lng->txt(
'paste_clipboard_items'),
   509                     $this->
ctrl->getLinkTargetByClass([ilRepositoryGUI::class, static::class], 
'paste')
   514                 $this->
ui->factory()->button()->standard(
   515                     $this->
lng->txt(
'clear_clipboard'),
   516                     $this->
ctrl->getLinkTargetByClass([ilRepositoryGUI::class, static::class], 
'clear')
   520             $main_tpl->addAdminPanelToolbar(
$toolbar, 
true, 
false);
   523             $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
   526             $this->
ctrl->setParameter($this, 
"type", 
"");
   527             $this->
ctrl->setParameter($this, 
"item_ref_id", 
"");
   535                     $this->
lng->txt(
'delete_selected_items'),
   539                     $this->
lng->txt(
'move_selected_items'),
   543                     $this->
lng->txt(
'copy_selected_items'),
   547                     $this->
lng->txt(
'link_selected_items'),
   554                 if ((
bool) $folder_set->get(
'enable_multi_download') === 
true) {
   557                         $this->
lng->txt(
'download_selected_items'),
   562             $main_tpl->addAdminPanelToolbar(
   564                 $this->
gotItems() && !$this->clipboard->hasEntries(),
   565                 $this->
gotItems() && !$this->clipboard->hasEntries()
   570                 $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
   572         } elseif ($this->edit_order) {
   573             if ($this->
getItemPresentation()->hasItems() && $ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
   576                     $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
   579                     $this->
ctrl->setParameter($this, 
"type", 
"");
   580                     $this->
ctrl->setParameter($this, 
"item_ref_id", 
"");
   583                         $this->
lng->txt(
'sorting_save'),
   587                     $main_tpl->addAdminPanelToolbar(
$toolbar, 
true, 
false);
   597             $num_files = $this->tree->getChildsByType(
$ref_id, 
"file");
   598             $num_folders = $this->tree->getChildsByType(
$ref_id, 
"fold");
   599             if (count($num_files) > 0 || count($num_folders) > 0) {
   601                 $GLOBALS[
'tpl']->setPageFormAction($this->
ctrl->getFormAction($this));
   604                 $this->
ctrl->setParameter($this, 
"type", 
"");
   605                 $this->
ctrl->setParameter($this, 
"item_ref_id", 
"");
   608                     $this->
lng->txt(
'download_selected_items'),
   612                 $GLOBALS[
'tpl']->addAdminPanelToolbar(
   618                 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_no_downloadable_objects'), 
true);
   632         $tpl = $DIC->ui()->mainTemplate();
   636             $this->
object->getRefId(),
   644         $this->
ctrl->redirectByClass([static::class, 
"ilcontainerpagegui"], 
"edit");
   649         $this->
ctrl->redirect($this, 
"");
   660             "tpl.container_link_help.html",
   663             "components/ILIAS/Container"   686         foreach ($childs as $child) {
   687             if (in_array($child[
"type"], [
"lm", 
"sahs", 
"htlm"])) {
   690                 $cnt[$child[
"type"]]++;
   696         foreach ($type_ordering as 
$type) {
   698             if ($type !== 
"lres") {
   702                     " (" . ((
int) $cnt[$type]) . 
")"   708                     " (" . ((
int) $cnt[
"lres"]) . 
")"   721         bool $a_show_image = 
true   724         $title = $this->
lng->txt(
"objs_" . $a_type);
   734         $a_tpl->
setVariable(
"BLOCK_HEADER_CONTENT", $title);
   739     public function addStandardRow(
   742         int $a_item_ref_id = null,
   743         int $a_item_obj_id = null,
   744         string $a_image_type = 
""   749         if (
$ilSetting->get(
"icon_position_in_lists") === 
"item_rows") {
   751             $alt = $this->
lng->txt(
"obj_" . $a_image_type);
   756                 $customIconFactory = $DIC[
'object.customicons.factory'];
   757                 $customIcon = $customIconFactory->getPresenterByObjId($a_item_obj_id, $a_image_type);
   759                 if ($customIcon->exists()) {
   760                     $icon = $customIcon->getFullPath();
   782             $a_tpl->
setVariable(
'POSITION', sprintf(
'%.1f', $this->current_position++));
   799         $type = $this->
lng->txt(
"obj_" . $a_type);
   800         $a_message = str_replace(
"[type]", 
$type, $a_message);
   818             || strtolower($this->
ctrl->getCmdClass()) !== 
"ilcontainerpagegui") {
   827         $this->tabs_gui->setBackTarget(
   828             $this->
lng->txt(
"obj_cat"),
   829             $this->
ctrl->getLinkTarget($this, 
"")
   832         $this->tabs_gui->addTarget(
   834             $this->
ctrl->getLinkTargetByClass(
"ilcontainerpagegui", 
"view"),
   846         bool $a_include_view = 
true   853         if (!is_object($this->
object)) {
   857         if ($a_include_view && $this->rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
   859                 $ilTabs->addSubTab(
"view_content", 
$lng->
txt(
"view"), $ilCtrl->getLinkTargetByClass(static::class, 
"view"));
   864                     $ilCtrl->getLinkTarget($this, 
"disableAdministrationPanel")
   870         if ($item_presentation->canManageItems()) {
   872                 $ilTabs->addSubTab(
"manage", 
$lng->
txt(
"cntr_manage"), $ilCtrl->getLinkTarget($this, 
""));
   877                     $ilCtrl->getLinkTarget($this, 
"enableAdministrationPanel")
   881         if ($item_presentation->canOrderItems()) {
   882             $ilTabs->addSubTab(
"ordering", 
$lng->
txt(
"cntr_ordering"), $ilCtrl->getLinkTarget($this, 
"editOrder"));
   892         if ($rbacsystem->
checkAccess(
'edit_permission', $this->ref_id)) {
   893             $this->tabs_gui->addTarget(
   895                 $this->
ctrl->getLinkTargetByClass([get_class($this), 
'ilpermissiongui'], 
"perm"),
   896                 [
"perm", 
"info", 
"owner"],
   899             if ($ilCtrl->getNextClass() === 
"ilpermissiongui") {
   900                 $this->tabs_gui->activateTab(
"perm_settings");
   905         if (strtolower($this->std_request->getBaseClass()) === 
"ilrepositorygui" &&
   906             $this->clipboard->hasEntries()) {
   907             $this->tabs_gui->addTarget(
   909                 $this->
ctrl->getLinkTarget($this, 
"clipboard"),
   924         $this->
ctrl->redirect($this, 
"render");
   930         $this->
ctrl->redirect($this, 
"render");
   936         $this->edit_order = 
true;
   940         $ilTabs->activateSubTab(
"ordering");
   963         $this->multi_download_enabled = 
true;
   982         $ids = $this->std_request->getSelectedIds();
   985         if (count($ids) === 0) {
   986             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"), 
true);
   987             $this->
ctrl->redirect($this, 
"");
   993             $node_data = $this->tree->getNodeData($ref_id);
   994             $subtree_nodes = $this->tree->getSubTree($node_data);
   996             $all_node_data[] = $node_data;
   997             $all_subtree_nodes[] = $subtree_nodes;
  1000             foreach ($subtree_nodes as $node) {
  1001                 if ($node[
'type'] === 
'rolf') {
  1005                 if (!$rbacsystem->
checkAccess(
'delete', $node[
"ref_id"])) {
  1006                     $no_cut[] = $node[
"ref_id"];
  1011         if (count($no_cut)) {
  1013             foreach ($no_cut as $cut_id) {
  1017                 $this->
lng->txt(
"msg_no_perm_cut") . 
" " . implode(
',', $titles),
  1021         $this->clipboard->setParent($this->requested_ref_id);
  1022         $this->clipboard->setCmd($ilCtrl->getCmd());
  1023         $this->clipboard->setRefIds($this->std_request->getSelectedIds());
  1025         $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"msg_cut_clipboard"), 
true);
  1043         $ids = $this->std_request->getSelectedIds();
  1045         if (count($ids) === 0) {
  1046             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"), 
true);
  1047             $this->
ctrl->redirect($this, 
"");
  1054             $node_data = $this->tree->getNodeData($ref_id);
  1057             if ($objDefinition->isContainer($node_data[
"type"])) {
  1061             $subtree_nodes = $this->tree->getSubTree($node_data);
  1063             $all_node_data[] = $node_data;
  1064             $all_subtree_nodes[] = $subtree_nodes;
  1067             foreach ($subtree_nodes as $node) {
  1068                 if ($node[
'type'] === 
'rolf') {
  1072                 if (!$rbacsystem->
checkAccess(
'visible,read', $node[
"ref_id"])) {
  1073                     $no_copy[] = $node[
"ref_id"];
  1078         if ($containers > 0 && count($this->std_request->getSelectedIds()) > 1) {
  1079             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"cntr_container_only_on_their_own"), 
true);
  1080             $this->
ctrl->redirect($this, 
"");
  1084         if (is_array($no_copy) && count($no_copy)) {
  1086             foreach ($no_copy as $copy_id) {
  1089             $this->tpl->setOnScreenMessage(
  1091                 $this->
lng->txt(
"msg_no_perm_copy") . 
" " . implode(
',', $titles),
  1094             $this->
ctrl->redirect($this, 
"");
  1098         $ids = $this->std_request->getSelectedIds();
  1099         if (count($ids) === 1) {
  1100             $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_id", $ids[0]);
  1102             $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_ids", implode(
"_", $ids));
  1104         $ilCtrl->redirectByClass(
"ilobjectcopygui", 
"initTargetSelection");
  1106         $this->clipboard->setParent($this->requested_ref_id);
  1107         $this->clipboard->setCmd($ilCtrl->getCmd());
  1108         $this->clipboard->setRefIds($ids);
  1110         $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"msg_copy_clipboard"), 
true);
  1124         $initiated_by_folder_action = 
false;
  1126         $ids = $this->std_request->getSelectedIds();
  1128         if (count($ids) === 0) {
  1131             if ($object_type === 
"fold") {
  1133                 $initiated_by_folder_action = 
true;
  1135                 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"), 
true);
  1136                 $this->
ctrl->redirect($this, 
"");
  1143             $initiated_by_folder_action
  1147         if ($download_job->run()) {
  1148             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_bt_download_started'), 
true);
  1150         $GLOBALS[
'DIC']->ctrl()->redirect($this);
  1171         $ids = $this->std_request->getSelectedIds();
  1173         if (count($ids) === 0) {
  1174             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"), 
true);
  1175             $this->
ctrl->redirect($this, 
"");
  1180             if (!$rbacsystem->
checkAccess(
'delete', $ref_id)) {
  1192         if ($no_cut !== []) {
  1193             $this->tpl->setOnScreenMessage(
  1195                 $this->
lng->txt(
"msg_no_perm_link") . 
" " . implode(
',', $no_cut),
  1198             $this->
ctrl->redirect($this, 
"");
  1201         if ($no_link !== []) {
  1203             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_obj_no_link'), 
true);
  1204             $this->
ctrl->redirect($this, 
"");
  1207         $this->clipboard->setParent($this->requested_ref_id);
  1208         $this->clipboard->setCmd($ilCtrl->getCmd());
  1209         $this->clipboard->setRefIds($ids);
  1212         if (count($this->clipboard->getRefIds()) === 1) {
  1215         $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"msg_link_clipboard_" . $suffix), 
true);
  1225         $this->clipboard->clear();
  1230         if ($this->
ctrl->getCmd() === 
"clear") {
  1231             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_clear_clipboard"), 
true);
  1233             $this->
ctrl->redirect($this, 
'render');
  1252         $not_allowed_subobject = [];
  1255         $command = $this->clipboard->getCmd();
  1256         if (!in_array($command, [
'cut', 
'link', 
'copy'])) {
  1257             $message = __METHOD__ . 
": cmd was neither 'cut', 'link' nor 'copy'; may be a hack attempt!";
  1261         $nodes = $this->std_request->getNodes();
  1263         if (count($nodes) === 0) {
  1264             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_at_least_one_object'));
  1276         $folder_objects_cache = [];
  1277         foreach ($this->clipboard->getRefIds() as 
$ref_id) {
  1281             foreach ($nodes as $folder_ref_id) {
  1282                 if (!array_key_exists($folder_ref_id, $folder_objects_cache)) {
  1287                 if (!$rbacsystem->
checkAccess(
'create', $folder_ref_id, $obj_data->getType())) {
  1288                     $no_paste[] = sprintf(
  1289                         $this->
lng->txt(
'msg_no_perm_paste_object_in_folder'),
  1290                         $obj_data->getTitle() . 
' [' . $obj_data->getRefId() . 
']',
  1291                         $folder_objects_cache[$folder_ref_id]->getTitle(
  1292                         ) . 
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() . 
']'  1297                 if ($folder_ref_id == $current_parent_id) {
  1298                     $exists[] = sprintf(
  1299                         $this->
lng->txt(
'msg_obj_exists_in_folder'),
  1300                         $obj_data->getTitle() . 
' [' . $obj_data->getRefId() . 
']',
  1301                         $folder_objects_cache[$folder_ref_id]->getTitle(
  1302                         ) . 
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() . 
']'  1308                     $is_child[] = sprintf(
  1309                         $this->
lng->txt(
'msg_paste_object_not_in_itself'),
  1310                         $obj_data->getTitle() . 
' [' . $obj_data->getRefId() . 
']'  1315                 if (!array_key_exists(
  1316                     $obj_data->getType(),
  1317                     $folder_objects_cache[$folder_ref_id]->getPossibleSubObjects()
  1319                     $not_allowed_subobject[] = sprintf(
  1320                         $this->
lng->txt(
'msg_obj_may_not_contain_objects_of_type'),
  1321                         $folder_objects_cache[$folder_ref_id]->getTitle(
  1322                         ) . 
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() . 
']',
  1323                         $lng->
txt(
'obj_' . $obj_data->getType())
  1332         if ($command !== 
"copy" && count($exists)) {
  1333             $error .= implode(
'<br />', $exists);
  1336         if (count($is_child)) {
  1337             $error .= $error !== 
'' ? 
'<br />' : 
'';
  1338             $error .= implode(
'<br />', $is_child);
  1341         if (count($not_allowed_subobject)) {
  1342             $error .= $error !== 
'' ? 
'<br />' : 
'';
  1343             $error .= implode(
'<br />', $not_allowed_subobject);
  1346         if (count($no_paste)) {
  1347             $error .= $error !== 
'' ? 
'<br />' : 
'';
  1348             $error .= implode(
'<br />', $no_paste);
  1351         if ($error !== 
'') {
  1352             $this->tpl->setOnScreenMessage(
'failure', $error);
  1364         $ilLog->write(__METHOD__ . 
", cmd: " . $command);
  1370         $ref_ids = $this->clipboard->getRefIds();
  1371         $this->clipboard->clear();
  1375         if ($command === 
'copy') {
  1376             foreach ($nodes as $folder_ref_id) {
  1377                 foreach ($ref_ids as 
$ref_id) {
  1381                     if ($oldNode_data[
'parent'] == $folder_ref_id) {
  1383                         $newRef = $this->
cloneNodes($ref_id, $folder_ref_id, $refIdMapping, $newTitle);
  1385                         $newRef = $this->
cloneNodes($ref_id, $folder_ref_id, $refIdMapping, null);
  1392                         $oldNode_data[
'type'],
  1394                         $oldNode_data[
'obj_id'],
  1398                         $newNode_data[
'obj_id'],
  1401                         $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
  1408             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_cloned'), 
true);
  1412         if ($command === 
'cut') {
  1413             foreach ($nodes as $folder_ref_id) {
  1414                 foreach ($ref_ids as 
$ref_id) {
  1426                         $node_data[
'obj_id'],
  1429                         $old_parent_data[
'obj_id']
  1432                         $node_data[
'obj_id'],
  1435                         $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
  1445             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_cut_copied'), 
true);
  1449         if ($command === 
'link') {
  1451             $linked_to_folders = [];
  1455             foreach ($nodes as $folder_ref_id) {
  1456                 $linked_to_folders[$folder_ref_id] = $ilObjDataCache->lookupTitle(
  1457                     $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
  1460                 foreach ($ref_ids as 
$ref_id) {
  1469                 foreach ($subnodes as $key => $subnode) {
  1472                     $new_ref_id = $obj_data->createReference();
  1473                     $obj_data->putInTree($folder_ref_id);
  1474                     $obj_data->setPermissions($folder_ref_id);
  1477                     if ($rbac_log_active) {
  1486                         $node_data[
'obj_id'],
  1489                         $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
  1495                 $ilLog->write(__METHOD__ . 
', link finished');
  1499             if (count($linked_to_folders)) {
  1500                 foreach ($linked_to_folders as 
$ref_id => $title) {
  1501                     $links[] = $ui->
factory()->link()->standard($title, ilLink::_getLink(
$ref_id));
  1506             if (count($ref_ids) === 1) {
  1510             $mbox = $ui->
factory()->messageBox()->success(
  1511                 $this->
lng->txt(
'mgs_objects_linked_to_the_following_folders_' . $suffix)
  1513                        ->withLinks($links);
  1515             $this->tpl->setOnScreenMessage(
'success', $ui->
renderer()->render($mbox), 
true);
  1521         $this->
ctrl->returnToParent($this);
  1534         $ilTabs->setTabActive(
'view_content');
  1536         if (!in_array($this->clipboard->getCmd(), [
'link', 
'copy', 
'cut'])) {
  1537             $message = __METHOD__ . 
": Unknown action.";
  1540         $cmd = $this->clipboard->getCmd();
  1544         if ($exp->handleCommand()) {
  1547         $output = $exp->getHTML();
  1549         $txt_var = ($cmd === 
"copy")
  1555         $t->setFormAction($this->
ctrl->getFormAction($this, 
"performPasteIntoMultipleObjects"));
  1558             $this->
lng->txt($txt_var),
  1559             "performPasteIntoMultipleObjects"  1560         )->submit()->toToolbar(
true, $t);
  1563         $this->
lng->loadLanguageModule(
'obj');
  1564         $t->addFormButton($this->
lng->txt(
"obj_insert_into_clipboard"), 
"keepObjectsInClipboard");
  1566         $t->addFormButton($this->
lng->txt(
"cancel"), 
"cancelMoveLink");
  1567         $t->setCloseFormTag(
false);
  1569         $output = $t->getHTML() . $output;
  1571         $t->setCloseFormTag(
true);
  1572         $t->setOpenFormTag(
false);
  1573         $output .= 
"<br />" . $t->getHTML();
  1575         $this->tpl->setContent($output);
  1586         $this->clipboard->clear();
  1594         $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"obj_inserted_clipboard"), 
true);
  1625         $not_allowed_subobject = [];
  1628         if (!in_array($this->clipboard->getCmd(), [
"cut", 
"link", 
"copy"])) {
  1629             $message = get_class(
  1631             ) . 
"::pasteObject(): cmd was neither 'cut','link' or 'copy'; may be a hack attempt!";
  1636         foreach ($this->clipboard->getRefIds() as 
$ref_id) {
  1640             if (!$rbacsystem->
checkAccess(
'create', $this->object->getRefId(), $obj_data->getType())) {
  1642                 $no_paste_titles[] = $obj_data->getTitle();
  1646             if ($this->
object->getRefId() === $this->tree->getParentId($obj_data->getRefId())) {
  1652             if ($this->tree->isGrandChild(
$ref_id, $this->object->getRefId())) {
  1661             $obj_type = $obj_data->getType();
  1663             if (!array_key_exists($obj_type, $this->
object->getPossibleSubObjects())) {
  1664                 $not_allowed_subobject[] = $obj_data->getType();
  1671         if (count($exists) > 0 && $this->clipboard->getCmd() !== 
"copy") {
  1673             $ilErr->raiseError($this->
lng->txt(
"msg_obj_exists"), 
$ilErr->MESSAGE);
  1676         if (count($is_child) > 0) {
  1678                 $this->
lng->txt(
"msg_not_in_itself") . 
" " . implode(
',', $is_child),
  1683         if (count($not_allowed_subobject) > 0) {
  1685                 $this->
lng->txt(
"msg_may_not_contain") . 
" " . implode(
',', $not_allowed_subobject),
  1690         if (count($no_paste) > 0) {
  1692                 $this->
lng->txt(
"msg_no_perm_paste") . 
" " .
  1693                 implode(
',', $no_paste),
  1699         $ilLog->write(
"ilObjectGUI::pasteObject(), cmd: " . $this->clipboard->getCmd());
  1705         $ref_ids = $this->clipboard->getRefIds();
  1708         $last_cmd = $this->clipboard->getCmd();
  1712         if ($this->clipboard->getCmd() === 
"copy") {
  1713             $this->clipboard->clear();
  1716             $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"target", $this->
object->getRefId());
  1717             if (count($ref_ids) === 1) {
  1718                 $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_id", $ref_ids[0]);
  1720                 $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_ids", implode(
"_", $ref_ids));
  1722             $ilCtrl->redirectByClass(
"ilobjectcopygui", 
"saveTarget");
  1724             $ilLog->write(
"ilObjectGUI::pasteObject(), copy finished");
  1729         if ($this->clipboard->getCmd() === 
"cut") {
  1730             foreach ($ref_ids as 
$ref_id) {
  1733                 $this->tree->moveTree($ref_id, $this->
object->getRefId());
  1742                     $node_data[
'obj_id'],
  1745                     $old_parent_data[
'obj_id']
  1748                     $node_data[
'obj_id'],
  1751                     $this->
object->getId()
  1761         if ($this->clipboard->getCmd() === 
"link") {
  1762             foreach ($ref_ids as $ref_id) {
  1764                 $top_node = $this->tree->getNodeData($ref_id);
  1767                 $subnodes[
$ref_id] = $this->tree->getSubTree($top_node);
  1770             foreach ($subnodes as $key => $subnode) {
  1773                 $new_ref_id = $obj_data->createReference();
  1774                 $obj_data->putInTree($this->requested_ref_id);
  1775                 $obj_data->setPermissions($this->requested_ref_id);
  1780                     $node_data[
'obj_id'],
  1783                     $this->
object->getId()
  1789             $ilLog->write(
"ilObjectGUI::pasteObject(), link finished");
  1796         if ($last_cmd === 
"cut") {
  1797             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_cut_copied"), 
true);
  1799         elseif ($last_cmd === 
"copy") {
  1800             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_cloned"), 
true);
  1801         } elseif ($last_cmd === 
'link') {
  1803             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_linked"), 
true);
  1806         $this->
ctrl->returnToParent($this);
  1820         $ilTabs->activateTab(
"clipboard");
  1823         if (!$this->clipboard->hasEntries()) {
  1824             $message = sprintf(
'%s::clipboardObject(): Illegal access. Clipboard variable is empty!', get_class($this));
  1825             $ilLog->write($message, $ilLog->FATAL);
  1826             $ilErr->raiseError($this->
lng->txt(
"permission_denied"), 
$ilErr->WARNING);
  1830         foreach ($this->clipboard->getRefIds() as 
$ref_id) {
  1836                 "type" => $tmp_obj->getType(),
  1837                 "type_txt" => $this->
lng->txt(
"obj_" . $tmp_obj->getType()),
  1838                 "title" => $tmp_obj->getTitle(),
  1839                 "cmd" => ($this->clipboard->getCmd() === 
"cut") ? $this->
lng->txt(
"move") : $this->
lng->txt(
  1840                     $this->clipboard->getCmd()
  1843                 "obj_id" => $tmp_obj->getId()
  1850         $tab->setData(
$data);
  1853         if (count(
$data) > 0) {
  1854             $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
  1855             $ilToolbar->addFormButton(
  1856                 $lng->
txt(
"insert_object_here"),
  1859             $ilToolbar->addFormButton(
  1869         if ($this->
object->getRefId() &&
  1870             !$this->rbacsystem->checkAccess(
"visible,read", $this->
object->getRefId())) {
  1880         parent::setColumnSettings($column_gui);
  1883             $this->item_presentation
  1888         if ($ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
  1929         $new_type = $this->std_request->getNewType();
  1931         $clone_source = $this->std_request->getCloneSource();
  1934             $ilErr->raiseError($this->
lng->txt(
'permission_denied'));
  1936         if (!$clone_source) {
  1937             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
  1941         if (!$ilAccess->checkAccess(
'write', 
'', $clone_source, $new_type)) {
  1942             $ilErr->raiseError($this->
lng->txt(
'permission_denied'));
  1945         $options = $this->std_request->getCopyOptions();
  1947         $result = $orig->cloneAllObject(
  1957             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"object_duplicated"), 
true);
  1958             $ilCtrl->setParameterByClass(
"ilrepositorygui", 
"ref_id", $result[
'ref_id']);
  1960             $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"object_copy_in_progress"), 
true);
  1961             $ilCtrl->setParameterByClass(
"ilrepositorygui", 
"ref_id", 
$ref_id);
  1963         $ilCtrl->redirectByClass(
"ilrepositorygui", 
"");
  1971         $positions = $this->std_request->getPositions();
  1972         $sorting->savePost($positions);
  1973         $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'cntr_saved_sorting'), 
true);
  1974         $this->
ctrl->redirect($this, 
"editOrder");
  1986         string $newName = null
  1992         $newRef = $srcObj->cloneObject($dstRef)->getRefId();
  1997         if (!is_null($newName)) {
  1999             $newObj->setTitle($newName);
  2004         $mapping[$newRef] = $srcRef;
  2011             if ($child[
"type"] !== 
'rolf') {
  2012                 $this->
cloneNodes($child[
"ref_id"], $newRef, $mapping);
  2014                 $mapping[$rolf[0][
"ref_id"]] = $child[
"ref_id"];
  2045         int $a_course_ref_id
  2049         $tree = $DIC->repositoryTree();
  2054         foreach ($path_arr as 
$data) {
  2058             $path .= $data[
'title'];
  2067         $this->content_style_gui
  2068             ->redirectToObjectSettings();
  2088             $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'webdav_pwd_instruction'));
  2096             $this->
lng->txt(
"mount_webfolder"),
  2098         )->onClick(
"triggerWebDAVModal('$href'); return false;")->toToolbar();
  2109         $this->
form->setFormAction($this->
ctrl->getFormAction($this));
  2115         $this->
form->addItem($ipass);
  2116         $this->
form->addCommandButton(
"savePassword", $this->
lng->txt(
"save"));
  2117         $this->
form->addCommandButton(
'cancel', $this->
lng->txt(
'cancel'));
  2119         $this->
form->setTitle($this->
lng->txt(
"chg_ilias_and_webfolder_password"));
  2120         $this->
form->setFormAction($this->
ctrl->getFormAction($this));
  2131             $ilUser->resetPassword($this->
form->getInput(
'new_password'), $this->
form->getInput(
'new_password'));
  2132             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'webdav_pwd_instruction_success'), 
true);
  2149         $child_ref_id = $this->std_request->getChildRefId();
  2150         $parent_ref_id = $this->std_request->getParentRefId();
  2152         $item_data = $this->
object->getSubItems(
false, 
false, $child_ref_id);
  2157         if (isset($this->
object->items[
"sess"])) {
  2158             $sess_data = $this->
object->items[
"sess"]; 
  2167         if (in_array($child_ref_id, $event_items)) {
  2168             foreach (($sess_data) as 
$id) {
  2170                 foreach ($items as $event_item) {
  2171                     if ($event_item[
"child"] == $child_ref_id) {
  2173                         if ($parent_ref_id > 0) {
  2174                             $event_item[
"parent"] = $parent_ref_id;
  2176                         $html = $container_view->renderItem($event_item);
  2184             foreach (($this->
object->items[
"_all"] ?? []) as 
$id) {
  2185                 if ($id[
"child"] == $child_ref_id) {
  2186                     $html = $container_view->renderItem($id);
  2208         $form->
setTitle($this->
lng->txt($this->object->getType() . 
"_edit"));
  2210         $this->initFormTitleDescription($form);
  2227             $trans = $this->
object->getObjectTranslation();
  2230         $title->setRequired(
true);
  2235         if ($this->
getCreationMode() === 
false && count($trans->getLanguages()) > 1) {
  2236             $languages = $this->domain->metadata()->getLOMLanguagesForSelectInputs();
  2238                 $this->
lng->txt(
"language") . 
": " . $languages[$trans->getDefaultLanguage()] .
  2239                 ' <a href="' . $this->
ctrl->getLinkTargetByClass(
"ilobjecttranslationgui", 
"") .
  2240                 '">» ' . $this->
lng->txt(
"obj_more_translations") . 
'</a>'  2252             $title->setValue($trans->getDefaultTitle());
  2253             $desc->setValue($trans->getDefaultDescription());
  2262         array $a_sorting_settings
  2269             $sort_inherit->setTitle(
  2270                 $this->
lng->txt(
'sort_inherit_prefix') .
  2278             $sort_inherit->setInfo($this->
lng->txt(
'sorting_info_inherit'));
  2279             $sort->addOption($sort_inherit);
  2283                 $this->
lng->txt(
'sorting_title_header'),
  2286             $sort_title->setInfo($this->
lng->txt(
'sorting_info_title'));
  2289             $sort->addOption($sort_title);
  2293                 $this->
lng->txt(
'sorting_creation_header'),
  2296             $sort_activation->setInfo($this->
lng->txt(
'sorting_creation_info'));
  2298             $sort->addOption($sort_activation);
  2302             $sort_activation->setInfo($this->
lng->txt(
'crs_sort_timing_info'));
  2304             $sort->addOption($sort_activation);
  2308                 $this->
lng->txt(
'sorting_manual_header'),
  2311             $sort_manual->setInfo($this->
lng->txt(
'sorting_info_manual'));
  2313             $sort->addOption($sort_manual);
  2317         if (in_array(
$settings->getSortMode(), $a_sorting_settings)) {
  2318             $sort->setValue((
string) 
$settings->getSortMode());
  2335         $item_list->
setInfo($this->
lng->txt(
'cont_item_list_info'));
  2336         $lpres->addOption($item_list);
  2339         $tile_view->
setInfo($this->
lng->txt(
'cont_tile_view_info'));
  2340         $lpres->addOption($tile_view);
  2345         foreach ($this->
object->getTileSizes() as $key => 
$txt) {
  2347             $si->addOption($op);
  2349         $tile_view->addSubItem($si);
  2365         $val = ($form->
getInput(
'list_presentation') === 
"tile")
  2372             (string) ((
int) $form->
getInput(
'tile_size'))
  2384         if ($a_prefix === 
'manual') {
  2385             $txt = $this->
lng->txt(
'sorting_new_items_direction');
  2387             $txt = $this->
lng->txt(
'sorting_direction');
  2392         $direction->setRequired(
true);
  2396             $this->
lng->txt(
'sorting_asc'),
  2399         $direction->addOption($asc);
  2403             $this->
lng->txt(
'sorting_desc'),
  2406         $direction->addOption($desc);
  2420         array $a_sorting_settings
  2423             $this->
lng->txt(
'sorting_new_items_position'),
  2424             $a_prefix . 
'_new_items_position'  2427         $position->setRequired(
true);
  2431             $this->
lng->txt(
'sorting_new_items_at_top'),
  2435         $position->addOption($new_top);
  2439             $this->
lng->txt(
'sorting_new_items_at_bottom'),
  2443         $position->addOption($new_bottom);
  2447         $order = 
new ilRadioGroupInputGUI($this->
lng->txt(
'sorting_new_items_order'), $a_prefix . 
'_new_items_order');
  2449         $order->setRequired(
true);
  2454                 $this->
lng->txt(
'sorting_title_header'),
  2458             $order->addOption($new_title);
  2464                 $this->
lng->txt(
'sorting_creation_header'),
  2468             $order->addOption($new_creation);
  2474                 $this->
lng->txt(
'crs_sort_activation'),
  2478             $order->addOption($new_activation);
  2493         switch ($form->
getInput(
'sorting')) {
  2498                 $settings->setSortDirection((
int) $form->
getInput(
'activation_sorting_direction'));
  2501                 $settings->setSortDirection((
int) $form->
getInput(
'creation_sorting_direction'));
  2504                 $settings->setSortNewItemsPosition($form->
getInput(
'manual_new_items_position'));
  2521         $this->tabs_gui->activateTab(
'trash');
  2523         $this->
lng->loadLanguageModule(
'cont');
  2527         $trash_table->
init();
  2528         $trash_table->parse();
  2530         $trash_table->setFilterCommand(
'trashApplyFilter');
  2531         $trash_table->setResetCommand(
'trashResetFilter');
  2549         $trash_table->
init();
  2550         $trash_table->resetOffset();
  2551         if ($action_reset) {
  2552             $trash_table->resetFilter();
  2554         if ($action_apply) {
  2555             $trash_table->writeFilterToSession();
  2564         $ru->removeObjectsFromSystem($this->std_request->getTrashIds());
  2565         $this->
ctrl->redirect($this, 
"trash");
  2570         $this->tabs_gui->activateTab(
'trash');
  2573         $ru->restoreToNewLocation();
  2582         $ru->restoreObjects(
  2583             $this->requested_ref_id,
  2584             $this->std_request->getTrashIds()
  2586         $this->
ctrl->redirect($this, 
"trash");
  2593         if (count($this->std_request->getTrashIds()) == 0) {
  2594             $this->tpl->setOnScreenMessage(
'failure', 
$lng->
txt(
"no_checkbox"), 
true);
  2595             $this->
ctrl->redirect($this, 
"trash");
  2599         $ru->confirmRemoveFromSystemObject($this->std_request->getTrashIds());
  2609         $exp->setTypeWhiteList([
"root", 
"cat", 
"grp", 
"crs", 
"fold"]);
  2613         if (in_array($this->clipboard->getCmd(), [
"link", 
"cut"])) {
  2614             $lso_types = array_keys($this->obj_definition->getSubObjects(
'lso'));
  2615             $refs = $this->clipboard->getRefIds();
  2617             foreach ($refs as $item_ref_id) {
  2619                 if (!in_array(
$type, $lso_types)) {
  2624                 $whitelist = $exp->getTypeWhiteList();
  2625                 $whitelist[] = 
'lso';
  2626                 $exp->setTypeWhiteList($whitelist);
  2630         if ($cmd === 
"link") {
  2631             $exp->setSelectMode(
"nodes", 
true);
  2633             $exp->setSelectMode(
"nodes[]", 
false);
  2640         $this->
ctrl->setReturn($this, 
"");
  2656         $request = $DIC->http()->request();
  2658         $filter = $filter_service->util()->getFilterForRefId(
  2660             $DIC->ctrl()->getLinkTarget($this, 
"render", 
"", 
true),
  2664         $filter_data = $DIC->uiService()->filter()->getData($filter);
  2666         $this->container_user_filter = $filter_service->userFilter($filter_data);
  2667         $this->ui_filter = $filter;
  2673         if (!is_null($this->ui_filter)) {
  2677             $main_tpl->setFilter(
$renderer->render($this->ui_filter));
  2680                 "filter_show_empty",
  2691             $this->tabs_gui->addTab(
  2693                 $this->
lng->txt(
'view'),
  2694                 $this->
ctrl->getLinkTarget($this, 
'view')
  2699         $this->tabs_gui->addTab(
  2701             $this->
lng->txt(
'trash'),
  2702             $this->
ctrl->getLinkTarget($this, 
'trash')
  2706             $this->tabs_gui->addTab(
  2708                 $this->
lng->txt(
'perm_settings'),
  2709                 $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...
 
ilObjectDefinition $obj_definition
 
static getStyleSheetLocation(string $mode="output", string $a_css_name="")
get full style sheet file name (path inclusive) of current user 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
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)
 
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...
 
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. 
 
prepareOutput(bool $show_sub_objects=true)
 
initAndDisplayCopyIntoMultipleObjectsObject()
 
Interface Observer  Contains several chained tasks and infos about them. 
 
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. 
 
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)
 
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)
 
static gatherFaPa(int $ref_id, array $role_ids, bool $add_action=false)
 
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...
 
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. 
 
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 getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory) 
 
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. 
 
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)
 
buildAddNewItemElements(array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)
 
static add(int $action, int $ref_id, array $diff, bool $source_ref_id=false)
 
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="")
 
Render add new item selector. 
 
initListPresentationForm(ilPropertyFormGUI $form)
Add list presentation settings to form. 
 
getSortNewItemsPosition()
 
addAvailabilityPeriodButtonToToolbar(ilToolbarGUI $toolbar)
 
performPasteIntoMultipleObjectsObject()
 
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form. 
 
addImportButtonToToolbar()
 
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) 
 
__construct(Container $dic, ilPlugin $plugin)
 
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...
 
getCreatableObjectTypes()
 
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. 
 
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...
 
modifyItemGUI(ilObjectListGUI $a_item_list_gui, array $a_item_data)
 
cancelPageContentObject()
 
ILIAS Style Content DomainService $content_style_domain