6require_once 
"./Services/Object/classes/class.ilObjectGUI.php";
 
    7require_once 
"./Services/Container/classes/class.ilContainer.php";
 
    8include_once 
'./Services/PersonalDesktop/interfaces/interface.ilDesktopItemHandling.php';
 
  106    public function __construct($a_data, $a_id, $a_call_by_reference = 
true, $a_prepare_output = 
true)
 
  110        $this->lng = 
$DIC->language();
 
  111        $this->tpl = 
$DIC[
"tpl"];
 
  112        $this->ctrl = 
$DIC->ctrl();
 
  113        $this->tabs = 
$DIC->tabs();
 
  115        $this->
user = $DIC->user();
 
  116        $this->db = 
$DIC->database();
 
  117        $this->access = 
$DIC->access();
 
  118        $this->tree = 
$DIC->repositoryTree();
 
  119        $this->
error = $DIC[
"ilErr"];
 
  120        $this->obj_definition = 
$DIC[
"objDefinition"];
 
  121        $this->rbacadmin = 
$DIC->rbac()->admin();
 
  122        $this->rbacreview = 
$DIC->rbac()->review();
 
  123        $this->log = 
$DIC[
"ilLog"];
 
  124        $this->obj_data_cache = 
$DIC[
"ilObjDataCache"];
 
  125        $this->toolbar = 
$DIC->toolbar();
 
  126        $this->plugin_admin = 
$DIC[
"ilPluginAdmin"];
 
  127        $this->app_event_handler = 
$DIC[
"ilAppEventHandler"];
 
  133        $lng->loadLanguageModule(
"cntr");
 
  134        $lng->loadLanguageModule(
'cont');
 
  138        parent::__construct($a_data, $a_id, $a_call_by_reference, 
false);
 
  149        $next_class = $this->ctrl->getNextClass();
 
  150        $cmd = $this->ctrl->getCmd(
"render");
 
  153        switch ($next_class) {
 
  155            case "ilcontainerpagegui":
 
  156                if (
$_GET[
"redirectSource"] != 
"ilinternallinkgui") {
 
  164            case "ilobjstylesheetgui":
 
  184        $values = parent::getEditFormValues();
 
  186        include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
 
  187        $values[
'didactic_type'] =
 
  199        include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateObjSettings.php';
 
  201            $this->object->getRefId()
 
  205        if ($new_tpl_id != $current_tpl_id) {
 
  206            $_REQUEST[
'tplid'] = $new_tpl_id;
 
  209            include_once 
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateGUI.php';
 
  210            $this->ctrl->setReturn($this, 
'edit');
 
  211            $this->ctrl->setCmdClass(
'ildidactictemplategui');
 
  212            $this->ctrl->setCmd(
'confirmTemplateSwitch');
 
  214            return $this->ctrl->forwardCommand($dtpl_gui);
 
  216        parent::afterUpdate();
 
  228        $ilTabs->clearTargets();
 
  231        include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheetGUI.php");
 
  232        $this->ctrl->setReturn($this, 
"editStyleProperties");
 
  233        $style_gui = 
new ilObjStyleSheetGUI(
"", $this->object->getStyleSheetId(), 
false, 
false);
 
  234        $style_gui->omitLocator();
 
  235        if ($cmd == 
"create" || 
$_GET[
"new_type"]==
"sty") {
 
  236            $style_gui->setCreationMode(
true);
 
  239        if ($cmd == 
"confirmedDelete") {
 
  240            $this->
object->setStyleSheetId(0);
 
  241            $this->
object->update();
 
  244        $ret = $this->ctrl->forwardCommand($style_gui);
 
  246        if ($cmd == 
"save" || $cmd == 
"copyStyle" || $cmd == 
"importStyle") {
 
  248            $this->
object->setStyleSheetId($style_id);
 
  249            $this->
object->update();
 
  250            $this->ctrl->redirectByClass(
"ilobjstylesheetgui", 
"edit");
 
  266        if (in_array($cmd, array(
"displayMediaFullscreen", 
"downloadFile", 
"displayMedia"))) {
 
  272        $ilTabs->clearTargets();
 
  274        if (
$_GET[
"redirectSource"] == 
"ilinternallinkgui") {
 
  279            $this->object->getId(),
 
  283            $ilTabs->setBackTarget(
 
  284                $lng->txt(
"cntr_back_to_old_editor"),
 
  285                $ilCtrl->getLinkTarget($this, 
"switchToOldEditor"),
 
  289            $ilTabs->setBackTarget(
$lng->txt(
"back"), 
"./goto.php?target=" . $this->object->getType() . 
"_" .
 
  290                $this->object->getRefId(), 
"_top");
 
  294        include_once(
"./Services/Container/classes/class.ilContainerPage.php");
 
  295        include_once(
"./Services/Container/classes/class.ilContainerPageGUI.php");
 
  297        $lng->loadLanguageModule(
"content");
 
  299        include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
  300        $this->tpl->setVariable(
 
  301            "LOCATION_CONTENT_STYLESHEET",
 
  304        $this->tpl->setCurrentBlock(
"SyntaxStyle");
 
  305        $this->tpl->setVariable(
 
  306            "LOCATION_SYNTAX_STYLESHEET",
 
  309        $this->tpl->parseCurrentBlock();
 
  313            $this->object->getId()
 
  317            $new_page_object->setParentId($this->object->getId());
 
  318            $new_page_object->setId($this->object->getId());
 
  319            $new_page_object->createFromXML();
 
  323        $this->ctrl->setReturnByClass(
"ilcontainerpagegui", 
"edit");
 
  325        include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
  327            $this->object->getStyleSheetId(),
 
  328            $this->object->getType()
 
  331        $page_gui->setTemplateTargetVar(
"ADM_CONTENT");
 
  332        $page_gui->setFileDownloadLink(
"");
 
  333        $page_gui->setFullscreenLink($this->ctrl->getLinkTarget($this, 
"showMediaFullscreen"));
 
  335        $page_gui->setPresentationTitle(
"");
 
  336        $page_gui->setTemplateOutput(
false);
 
  340            $this->object->getId(),
 
  345                "tpl.cntr_old_editor_message.html",
 
  350            $wtpl->setVariable(
"ALT_WARNING", 
$lng->txt(
"warning"));
 
  355            $wtpl->setVariable(
"TXT_MIGRATION_INFO", 
$lng->txt(
"cntr_switch_to_new_editor_message"));
 
  356            $wtpl->setVariable(
"TXT_MIGRATION_INFO", 
$lng->txt(
"cntr_switch_to_new_editor_message"));
 
  358                "HREF_SWITCH_TO_NEW_EDITOR",
 
  359                $ilCtrl->getLinkTarget($this, 
"useNewEditor")
 
  362                "TXT_MIGRATION_SWITCH",
 
  363                $lng->txt(
"cntr_switch_to_new_editor_cmd")
 
  365            $page_gui->setPrependingHtml($wtpl->get());
 
  369        $page_gui->setTabHook($this, 
"addPageTabs");
 
  371        $ret = $this->ctrl->forwardCommand($page_gui);
 
  387            $ilCtrl->getLinkTarget($this, 
'editStyleProperties'),
 
  388            "editStyleProperties" 
  400        if (!
$ilSetting->get(
"enable_cat_page_edit")) {
 
  406            $this->object->getId(),
 
  410            include_once(
"Services/XHTMLPage/classes/class.ilXHTMLPage.php");
 
  412            return $xpage->getContent();
 
  420        include_once(
"./Services/COPage/classes/class.ilPageUtil.php");
 
  423            $this->object->getId()
 
  427        include_once(
"./Services/Container/classes/class.ilContainerPage.php");
 
  428        include_once(
"./Services/Container/classes/class.ilContainerPageGUI.php");
 
  430        include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
  431        $this->tpl->setVariable(
 
  432            "LOCATION_CONTENT_STYLESHEET",
 
  435        $this->tpl->setCurrentBlock(
"SyntaxStyle");
 
  436        $this->tpl->setVariable(
 
  437            "LOCATION_SYNTAX_STYLESHEET",
 
  440        $this->tpl->parseCurrentBlock();
 
  443        include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
 
  445        $lang = $ot->getEffectiveContentLang(
$ilUser->getCurrentLanguage(), 
"cont");
 
  447        include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
  449            $this->object->getStyleSheetId(),
 
  450            $this->object->getType()
 
  453        $page_gui->setPresentationTitle(
"");
 
  454        $page_gui->setTemplateOutput(
false);
 
  455        $page_gui->setHeader(
"");
 
  456        $ret = $page_gui->showPage();
 
  469        if (parent::prepareOutput($a_show_subobjects)) {        
 
  472                #$this->showPossibleSubObjects(); 
  476                include_once 
'./Services/Container/classes/class.ilMemberViewGUI.php';
 
  487        if (
$_GET[
"obj_id"] != 
"") {
 
  491        include_once 
'./Services/Container/classes/class.ilMemberViewSettings.php';
 
  496        $mode = (
$_SESSION[
"il_rep_mode"] == 
"flat")
 
  499        $link = 
"ilias.php?baseClass=ilRepositoryGUI&cmd=frameset&set_mode=" . $mode . 
"&ref_id=" . $this->
object->getRefId();
 
  500        $tpl->setTreeFlatIcon($link, $mode);
 
  509            $this->tpl->setTitle($this->object->getTitle());
 
  510            $this->tpl->setDescription($this->object->getLongDescription());
 
  514            $this->tpl->setTitleIcon($icon, $this->lng->txt(
"obj_" . $this->object->getType()));
 
  516            include_once 
'./Services/Object/classes/class.ilObjectListGUIFactory.php';
 
  518            $lgui->initItem($this->object->getRefId(), $this->object->getId());
 
  519            $this->tpl->setAlertProperties($lgui->getAlertProperties());
 
  528        include_once 
"Services/Object/classes/class.ilObjectAddNewItemGUI.php";
 
  541        $courseTimingView = -1;
 
  542        if (
defined(
'IL_CRS_VIEW_TIMING')) {
 
  546        switch ($this->object->getViewMode()) {
 
  549                include_once(
"./Services/Container/classes/class.ilContainerSimpleContentGUI.php");
 
  554                include_once(
'./Services/Container/classes/class.ilContainerObjectiveGUI.php');
 
  560            case $courseTimingView: 
 
  561                include_once(
"./Services/Container/classes/class.ilContainerSessionsContentGUI.php");
 
  568                include_once(
"./Services/Container/classes/class.ilContainerByTypeContentGUI.php");
 
  573        return $container_view;
 
  593            $ilTabs->activateSubTab(
"manage");
 
  595            $ilTabs->activateSubTab(
"view_content");
 
  598        $container_view->setOutput();
 
  600        $this->adminCommands = $container_view->adminCommands;
 
  604        if (
$ilCtrl->getNextClass() != 
"ilcolumngui") {
 
  612        if ((
int) 
$_GET[
"ref_id"] > 1 && 
$ilSetting->get(
"rep_tree_synchronize")) {
 
  613            $ilCtrl->setParameter($this, 
"active_node", (
int) 
$_GET[
"ref_id"]);
 
  640        $lng->loadLanguageModule(
'cntr');
 
  644            $GLOBALS[
'tpl']->setPageFormAction($this->ctrl->getFormAction($this));
 
  646            include_once 
'./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
 
  648            $this->ctrl->setParameter($this, 
"type", 
"");
 
  649            $this->ctrl->setParameter($this, 
"item_ref_id", 
"");
 
  652                $this->lng->txt(
'paste_clipboard_items'),
 
  657                $this->lng->txt(
'clear_clipboard'),
 
  664            $GLOBALS[
'tpl']->setPageFormAction($this->ctrl->getFormAction($this));
 
  666            include_once 
'./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
 
  668            $this->ctrl->setParameter($this, 
"type", 
"");
 
  669            $this->ctrl->setParameter($this, 
"item_ref_id", 
"");
 
  673            if ($this->object->gotItems()) {
 
  679                    $this->lng->txt(
'delete_selected_items'),
 
  683                    $this->lng->txt(
'move_selected_items'),
 
  687                    $this->lng->txt(
'copy_selected_items'),
 
  691                    $this->lng->txt(
'link_selected_items'),
 
  696                if ($folder_set->get(
"enable_multi_download") == 
true) {
 
  699                    if (!$folder_set->get(
"bgtask_download", 0)) {
 
  701                            $this->lng->txt(
'download_selected_items'),
 
  705                        $url =  $this->ctrl->getLinkTargetByClass(array(
"ilrepositorygui", 
"ilobjfoldergui", 
"ilbackgroundtaskhub"), 
"", 
"", 
true, 
false);
 
  706                        $GLOBALS[
'tpl']->addJavaScript(
"Services/BackgroundTask/js/BgTask.js");
 
  707                        $GLOBALS[
'tpl']->addOnLoadCode(
"il.BgTask.initMultiForm('ilFolderDownloadBackgroundTaskHandler');");
 
  708                        $GLOBALS[
'tpl']->addOnLoadCode(
'il.BgTask.setAjax("' . 
$url . 
'");');
 
  710                        include_once 
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
 
  712                        $button->setCaption(
"download_selected_items");
 
  713                        $button->addCSSClass(
"ilbgtasksubmit");
 
  714                        $button->setCommand(
"download");
 
  715                        $toolbar->addButtonInstance($button);
 
  719            if ($this->object->getType() == 
'crs' or $this->object->getType() == 
'grp') {
 
  720                if ($this->object->gotItems()) {
 
  725                    $this->lng->txt(
'cntr_adopt_content'),
 
  726                    $this->ctrl->getLinkTargetByClass(
 
  746            $GLOBALS[
'tpl']->addAdminPanelToolbar(
 
  748                ($this->object->gotItems() && !
$_SESSION[
"clipboard"]) ? 
true : 
false,
 
  749                ($this->object->gotItems() && !
$_SESSION[
"clipboard"]) ? 
true : 
false 
  753            if ($this->object->gotItems()) {
 
  754                $GLOBALS[
'tpl']->setPageFormAction($this->ctrl->getFormAction($this));
 
  757            if ($this->edit_order) {
 
  758                if ($this->object->gotItems() and $ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
 
  759                    include_once(
'./Services/Container/classes/class.ilContainer.php');
 
  763                        $GLOBALS[
'tpl']->setPageFormAction($this->ctrl->getFormAction($this));
 
  765                        include_once 
'./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
 
  767                        $this->ctrl->setParameter($this, 
"type", 
"");
 
  768                        $this->ctrl->setParameter($this, 
"item_ref_id", 
"");
 
  771                            $this->lng->txt(
'sorting_save'),
 
  793                $num_files = $this->tree->getChildsByType(
$ref_id, 
"file");
 
  794                $num_folders = $this->tree->getChildsByType(
$ref_id, 
"fold");
 
  795                if (count($num_files) > 0 or count($num_folders) > 0) {
 
  797                    $GLOBALS[
'tpl']->setPageFormAction($this->ctrl->getFormAction($this));
 
  799                    include_once 
'./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
 
  801                    $this->ctrl->setParameter($this, 
"type", 
"");
 
  802                    $this->ctrl->setParameter($this, 
"item_ref_id", 
"");
 
  805                        $this->lng->txt(
'download_selected_items'),
 
  809                    $GLOBALS[
'tpl']->addAdminPanelToolbar(
 
  811                        $this->object->gotItems() ? 
true : 
false,
 
  812                        $this->object->gotItems() ? 
true : 
false 
  825        if (!
$tree->checkForParentType($this->object->getRefId(), 
'crs')) {
 
  828        $tpl->setCurrentBlock(
"custom_button");
 
  829        $tpl->setVariable(
"ADMIN_MODE_LINK", $this->ctrl->getLinkTargetByClass(
'ilcoursecontentgui', 
'editTimings'));
 
  830        $tpl->setVariable(
"TXT_ADMIN_MODE", $this->lng->txt(
'timings_edit'));
 
  831        $tpl->parseCurrentBlock();
 
  840            $this->object->getType(),
 
  841            $this->object->getRefId(),
 
  855        $ilCtrl->redirect($this, 
"editPageFrame");
 
  866        $ilCtrl->redirect($this, 
"editPageFrame");
 
  879        if ($ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
 
  880            include_once(
"./Services/XHTMLPage/classes/class.ilXHTMLPage.php");
 
  892                $this->object->getId(),
 
  900        $ilCtrl->redirect($this, 
"editPageFrame");
 
  910            $this->object->getId(),
 
  913        if ($xpage_id > 0 && 
$_SESSION[
"il_cntr_editor"] != 
"std") {
 
  914            $this->ctrl->redirect($this, 
"editPageContent");
 
  916            $this->ctrl->redirectByClass(array(
"ilcontainerpagegui"), 
"edit");
 
  933        if (!
$rbacsystem->checkAccess(
"write", $this->ref_id)) {
 
  934            $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"), 
$ilErr->MESSAGE);
 
  938            $this->object->getId(),
 
  942            include_once(
"Services/XHTMLPage/classes/class.ilXHTMLPage.php");
 
  944            $content = $xpage->getContent();
 
  951            "tpl.container_edit_page_content.html",
 
  955        $tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
 
  957            "TXT_EDIT_PAGE_CONTENT",
 
  958            $this->lng->txt(
"edit_page_content")
 
  960        $tpl->setVariable(
"TXT_SAVE", $this->lng->txt(
"save"));
 
  961        $tpl->setVariable(
"TXT_CANCEL", $this->lng->txt(
"cancel"));
 
  962        $tpl->setVariable(
"TXT_MIGRATION_INFO", 
$lng->txt(
"cntr_old_editor_warning"));
 
  963        $tpl->setVariable(
"TXT_MIGRATION_OPEN_STD_EDITOR", 
$lng->txt(
"cntr_old_editor_open_standard_editor"));
 
  965        $tpl->setVariable(
"HREF_OPEN_STD_EDITOR", 
$ilCtrl->getLinkTarget($this, 
"switchToStdEditor"));
 
  966        $tpl->setVariable(
"ALT_WARNING", 
$lng->txt(
"warning"));
 
  968        include_once(
"./Services/Form/classes/class.ilFormPropertyGUI.php");
 
  969        include_once(
"./Services/Form/classes/class.ilTextAreaInputGUI.php");
 
  974        include_once 
"./Services/RTE/classes/class.ilRTE.php";
 
  976        include_once 
"./Services/RTE/classes/class.$rtestring.php";
 
  977        $rte = 
new $rtestring();
 
  979        include_once 
"./Services/Object/classes/class.ilObject.php";
 
  982        $rte->addRTESupport(
$obj_id, $obj_type);
 
  989        include_once(
"Services/XHTMLPage/classes/class.ilXHTMLPage.php");
 
  990        include_once 
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
 
  992            $this->object->getId(),
 
 1011        if ($xpage_id > 0) {
 
 1013            $xpage->setContent(
$text);
 
 1017            $xpage->setContent(
$text);
 
 1020                $this->object->getId(),
 
 1026        include_once(
"Services/RTE/classes/class.ilRTE.php");
 
 1029            $this->object->getType() . 
":html",
 
 1030            $this->object->getId()
 
 1034        $this->ctrl->redirect($this, 
"");
 
 1039        $this->ctrl->redirect($this, 
"");
 
 1048            "tpl.container_link_help.html",
 
 1051            "Services/Container" 
 1054        $type_ordering = array(
 
 1055            "cat", 
"fold", 
"crs", 
"grp", 
"chat", 
"frm", 
"lres",
 
 1056            "glo", 
"webr", 
"file", 
"exc",
 
 1057            "tst", 
"svy", 
"mep", 
"qpl", 
"spl");
 
 1060        foreach ($childs as $child) {
 
 1061            if (in_array($child[
"type"], array(
"lm", 
"sahs", 
"htlm"))) {
 
 1064                $cnt[$child[
"type"]]++;
 
 1069        $tpl->setVariable(
"TXT_HELP_HEADER", 
$lng->txt(
"help"));
 
 1070        foreach ($type_ordering as 
$type) {
 
 1071            $tpl->setCurrentBlock(
"row");
 
 1072            $tpl->setVariable(
"ROWCOL", 
"tblrow" . (((
$i++)%2)+1));
 
 1073            if (
$type != 
"lres") {
 
 1075                    " (" . ((
int) $cnt[
$type]) . 
")");
 
 1077                $tpl->setVariable(
"TYPE", 
$lng->txt(
"learning_resources") .
 
 1078                    " (" . ((
int) $cnt[
"lres"]) . 
")");
 
 1080            $tpl->setVariable(
"TXT_LINK", 
"[list-" . 
$type . 
"]");
 
 1081            $tpl->parseCurrentBlock();
 
 1092        $this->adminCommands = 
false;
 
 1125            "tpl.container_list_block.html",
 
 1128            "Services/Container" 
 1130        $this->cur_row_type = 
"row_type_1";
 
 1146        if ($a_show_image) {
 
 1147            $a_tpl->setCurrentBlock(
"container_header_row_image");
 
 1148            $a_tpl->setVariable(
"HEADER_IMG", $icon);
 
 1149            $a_tpl->setVariable(
"HEADER_ALT", 
$title);
 
 1151            $a_tpl->setCurrentBlock(
"container_header_row");
 
 1154        $a_tpl->setVariable(
"BLOCK_HEADER_CONTENT", 
$title);
 
 1155        $a_tpl->parseCurrentBlock();
 
 1169        $a_item_ref_id = 
"",
 
 1170        $a_item_obj_id = 
"",
 
 1175        $this->cur_row_type = ($this->cur_row_type == 
"row_type_1")
 
 1179        $a_tpl->touchBlock($this->cur_row_type);
 
 1182        if (
$ilSetting->get(
"icon_position_in_lists") == 
"item_rows") {
 
 1184            $alt = $this->lng->txt(
"obj_" . $a_image_type);
 
 1188                in_array($a_image_type, array(
"cat",
"grp",
"crs"))) {
 
 1189                require_once(
"./Services/Container/classes/class.ilContainer.php");
 
 1195            $a_tpl->setCurrentBlock(
"block_row_image");
 
 1196            $a_tpl->setVariable(
"ROW_IMG", $icon);
 
 1197            $a_tpl->setVariable(
"ROW_ALT", $alt);
 
 1198            $a_tpl->parseCurrentBlock();
 
 1203            $a_tpl->setCurrentBlock(
"block_row_check");
 
 1204            $a_tpl->setVariable(
"ITEM_ID", $a_item_ref_id);
 
 1205            $a_tpl->parseCurrentBlock();
 
 1208        include_once(
'Services/Container/classes/class.ilContainerSortingSettings.php');
 
 1211            $a_tpl->setCurrentBlock(
'block_position');
 
 1212            $a_tpl->setVariable(
'POS_TYPE', $a_image_type);
 
 1213            $a_tpl->setVariable(
'POS_ID', $a_item_ref_id);
 
 1214            $a_tpl->setVariable(
'POSITION', 
sprintf(
'%.1f', $this->current_position++));
 
 1215            $a_tpl->parseCurrentBlock();
 
 1218            $a_tpl->setVariable(
"ROW_NBSP", 
" ");
 
 1220        $a_tpl->setCurrentBlock(
"container_standard_row");
 
 1221        $a_tpl->setVariable(
"BLOCK_ROW_CONTENT", $a_html);
 
 1222        $a_tpl->parseCurrentBlock();
 
 1223        $a_tpl->touchBlock(
"container_row");
 
 1231        $this->cur_row_type = ($this->cur_row_type == 
"row_type_1")
 
 1235        $a_tpl->touchBlock($this->cur_row_type);
 
 1238        $a_message = str_replace(
"[type]", 
$type, $a_message);
 
 1240        $a_tpl->setVariable(
"ROW_NBSP", 
" ");
 
 1242        $a_tpl->setCurrentBlock(
"container_standard_row");
 
 1243        $a_tpl->setVariable(
 
 1244            "BLOCK_ROW_CONTENT",
 
 1247        $a_tpl->parseCurrentBlock();
 
 1248        $a_tpl->touchBlock(
"container_row");
 
 1253        $this->cur_row_type = 
"";
 
 1265            || strtolower($this->ctrl->getCmdClass()) != 
"ilcontainerpagegui") {
 
 1269        $lng->loadLanguageModule(
"content");
 
 1274        $this->tabs_gui->setBackTarget(
 
 1275            $this->lng->txt(
"obj_cat"),
 
 1276            $this->ctrl->getLinkTarget($this, 
"frameset"),
 
 1280        $this->tabs_gui->addTarget(
"edit", $this->ctrl->getLinkTargetByClass(
"ilcontainerpagegui", 
"view"), array(
"", 
"view"), 
"ilcontainerpagegui");
 
 1297        if (!is_object($this->
object)) {
 
 1301        if ($a_include_view && $ilAccess->checkAccess(
"read", 
"", $this->object->getRefId())) {
 
 1303                $ilTabs->addSubTab(
"view_content", 
$lng->txt(
"view"), 
$ilCtrl->getLinkTarget($this, 
"view"));
 
 1305                $ilTabs->addSubTab(
"view_content", 
$lng->txt(
"view"), 
$ilCtrl->getLinkTarget($this, 
"disableAdministrationPanel"));
 
 1309        if (
$ilUser->getId() != ANONYMOUS_USER_ID &&
 
 1311                    $this->adminCommands ||
 
 1312                (is_object($this->
object) &&
 
 1313                ($ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())))
 
 1315                (is_object($this->
object) &&
 
 1316                ($this->object->getHiddenFilesFound())) ||
 
 1321                $ilTabs->addSubTab(
"manage", 
$lng->txt(
"cntr_manage"), 
$ilCtrl->getLinkTarget($this, 
""));
 
 1323                $ilTabs->addSubTab(
"manage", 
$lng->txt(
"cntr_manage"), 
$ilCtrl->getLinkTarget($this, 
"enableAdministrationPanel"));
 
 1326        if (
$ilUser->getId() != ANONYMOUS_USER_ID &&
 
 1327            is_object($this->
object) &&
 
 1328            $ilAccess->checkAccess(
"write", 
"", $this->object->getRefId()) 
 
 1331            $ilTabs->addSubTab(
"ordering", 
$lng->txt(
"cntr_ordering"), 
$ilCtrl->getLinkTarget($this, 
"editOrder"));
 
 1333        if (
$ilUser->getId() != ANONYMOUS_USER_ID &&
 
 1334            is_object($this->
object) &&
 
 1335            $ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())
 
 1337            if (
$ilSetting->get(
"enable_cat_page_edit")) {
 
 1340                    $lng->txt(
"cntr_text_media_editor"),
 
 1341                    $ilCtrl->getLinkTarget($this, 
"editPageFrame"),
 
 1359        if (
$rbacsystem->checkAccess(
'edit_permission', $this->ref_id)) {
 
 1360            $this->tabs_gui->addTarget(
 
 1362                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'), 
"perm"),
 
 1363                array(
"perm",
"info",
"owner"),
 
 1366            if (
$ilCtrl->getNextClass() == 
"ilpermissiongui") {
 
 1367                $this->tabs_gui->activateTab(
"perm_settings");
 
 1372        if (strtolower(
$_GET[
"baseClass"]) == 
"ilrepositorygui" && !empty(
$_SESSION[
"clipboard"])) {
 
 1373            $this->tabs_gui->addTarget(
 
 1375                $this->ctrl->getLinkTarget($this, 
"clipboard"),
 
 1392        $_SESSION[
"il_cont_admin_panel"] = 
true;
 
 1393        $this->ctrl->redirect($this, 
"render");
 
 1401        $_SESSION[
"il_cont_admin_panel"] = 
false;
 
 1402        $this->ctrl->redirect($this, 
"render");
 
 1412        $this->edit_order = 
true;
 
 1413        $_SESSION[
"il_cont_admin_panel"] = 
false;
 
 1416        $ilTabs->activateSubTab(
"ordering");
 
 1425        return $this->edit_order ? true : 
false;
 
 1448        if ((
int) 
$ilSetting->get(
'disable_my_offers')) {
 
 1452        include_once 
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
 
 1466        if ((
int) 
$ilSetting->get(
'disable_my_offers')) {
 
 1470        include_once 
'./Services/PersonalDesktop/classes/class.ilDesktopItemGUI.php';
 
 1481        $this->multi_download_enabled = 
true;
 
 1498            $this->ilErr->raiseError($this->lng->txt(
'err_no_permission'), $this->ilErr->MESSAGE);
 
 1502        require_once(
'Services/WebDAV/classes/class.ilDAVActivationChecker.php');
 
 1504            require_once 
'Services/WebDAV/classes/class.ilDAVServer.php';
 
 1506                require_once 
'Services/WebDAV/classes/class.ilDAVLocks.php';
 
 1510                    $_GET[
'item_ref_id'],
 
 1513                    'ref_' . 
$_GET[
'item_ref_id'] . 
'_usr_' . 
$ilUser->getId(),
 
 1543        if (
$_GET[
"item_ref_id"] != 
"") {
 
 1549        if (!isset(
$_POST[
"id"])) {
 
 1550            $ilErr->raiseError($this->lng->txt(
"no_checkbox"), 
$ilErr->MESSAGE);
 
 1556            $node_data = $this->tree->getNodeData(
$ref_id);
 
 1557            $subtree_nodes = $this->tree->getSubTree($node_data);
 
 1559            $all_node_data[] = $node_data;
 
 1560            $all_subtree_nodes[] = $subtree_nodes;
 
 1563            foreach ($subtree_nodes as $node) {
 
 1564                if ($node[
'type'] == 
'rolf') {
 
 1568                if (!
$rbacsystem->checkAccess(
'delete', $node[
"ref_id"])) {
 
 1569                    $no_cut[] = $node[
"ref_id"];
 
 1574        if (count($no_cut)) {
 
 1576            foreach ((array) $no_cut as $cut_id) {
 
 1580                $this->lng->txt(
"msg_no_perm_cut") . 
" " . implode(
',', (array) $titles),
 
 1609        if (
$_GET[
"item_ref_id"] != 
"") {
 
 1613        if (!isset(
$_POST[
"id"])) {
 
 1614            $ilErr->raiseError($this->lng->txt(
"no_checkbox"), 
$ilErr->MESSAGE);
 
 1621            $node_data = $this->tree->getNodeData(
$ref_id);
 
 1628            $subtree_nodes = $this->tree->getSubTree($node_data);
 
 1630            $all_node_data[] = $node_data;
 
 1631            $all_subtree_nodes[] = $subtree_nodes;
 
 1634            foreach ($subtree_nodes as $node) {
 
 1635                if ($node[
'type'] == 
'rolf') {
 
 1639                if (!
$rbacsystem->checkAccess(
'visible,read,copy', $node[
"ref_id"])) {
 
 1640                    $no_copy[] = $node[
"ref_id"];
 
 1645        if ($containers > 0 && count(
$_POST[
"id"]) > 1) {
 
 1646            $ilErr->raiseError($this->lng->txt(
"cntr_container_only_on_their_own"), 
$ilErr->MESSAGE);
 
 1650        if (is_array($no_copy) && count($no_copy)) {
 
 1652            foreach ((array) $no_copy as $copy_id) {
 
 1656                $this->lng->txt(
"msg_no_perm_copy") . 
" " . implode(
',', $titles),
 
 1662        if (count(
$_POST[
"id"]) == 1) {
 
 1663            $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_id", 
$_POST[
"id"][0]);
 
 1664            $ilCtrl->redirectByClass(
"ilobjectcopygui", 
"initTargetSelection");
 
 1666            $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_ids", implode(
$_POST[
"id"], 
"_"));
 
 1667            $ilCtrl->redirectByClass(
"ilobjectcopygui", 
"initTargetSelection");
 
 1687        if (
$_GET[
"item_ref_id"] != 
"") {
 
 1691        if (!isset(
$_POST[
"id"])) {
 
 1692            $ilErr->raiseError($this->lng->txt(
"no_checkbox"), 
$ilErr->MESSAGE);
 
 1698            $obj_type = 
$object->getType();
 
 1699            if (!in_array($obj_type, array(
"fold", 
"file"))) {
 
 1700                $no_download[] = 
$object->getType();
 
 1707        if (count($no_download)) {
 
 1708            $no_download = array_unique($no_download);
 
 1709            foreach ($no_download as 
$type) {
 
 1710                $txt_objs[] = $this->lng->txt(
"objs_" . 
$type);
 
 1712            $ilErr->raiseError(implode(
', ', $txt_objs) . 
" " . $this->lng->txt(
"msg_obj_no_download"), 
$ilErr->MESSAGE);
 
 1716        if (count($no_perm)) {
 
 1718                $this->lng->txt(
"msg_obj_perm_download") . 
" " . implode(
',', $no_perm),
 
 1733        include_once 
'Modules/Folder/classes/class.ilObjFolder.php';
 
 1734        include_once 
'Modules/File/classes/class.ilObjFile.php';
 
 1735        include_once 
'Modules/File/classes/class.ilFileException.php';
 
 1744            foreach ($a_ref_ids as 
$ref_id) {
 
 1745                if (!$ilAccess->checkAccess(
"read", 
"", 
$ref_id)) {
 
 1755                $obj_type = 
$object->getType();
 
 1756                if ($obj_type == 
"fold") {
 
 1759                } elseif ($obj_type == 
"file") {
 
 1766            $deliverFilename = ilUtil::getAsciiFilename($this->object->getTitle()) . 
".zip";
 
 1790        $ilAccess = 
$DIC->access();
 
 1795        $subtree = 
$tree->getChildsByTypeFilter($refid, array(
"fold",
"file"));
 
 1797        foreach ($subtree as $child) {
 
 1798            if (!$ilAccess->checkAccess(
"read", 
"", $child[
"ref_id"])) {
 
 1806            if ($child[
"type"] == 
"fold") {
 
 1821        if (!copy($oldFilename, $newFilename)) {
 
 1822            throw new ilFileException(
"Could not copy " . $oldFilename . 
" to " . $newFilename);
 
 1825        touch($newFilename, filectime($oldFilename));
 
 1843        if (
$_GET[
"item_ref_id"] != 
"") {
 
 1847        if (!isset(
$_POST[
"id"])) {
 
 1848            $ilErr->raiseError($this->lng->txt(
"no_checkbox"), 
$ilErr->MESSAGE);
 
 1859            if (!$this->objDefinition->allowLink(
$object->getType())) {
 
 1860                $no_link[] = 
$object->getType();
 
 1865        if (count($no_cut)) {
 
 1866            $ilErr->raiseError($this->lng->txt(
"msg_no_perm_link") . 
" " .
 
 1867                                     implode(
',', $no_cut), 
$ilErr->MESSAGE);
 
 1870        if (count($no_link)) {
 
 1872            $ilErr->raiseError($this->lng->txt(
"msg_obj_no_link"), 
$ilErr->MESSAGE);
 
 1876        $clipboard[
"parent"] = 
$_GET[
"ref_id"];
 
 1877        $clipboard[
"cmd"] = 
$ilCtrl->getCmd();
 
 1880            $clipboard[
"ref_ids"][] = 
$ref_id;
 
 1886        if (count($clipboard[
"ref_ids"]) == 1) {
 
 1908        if (isset(
$_POST[
"cmd"][
"clear"])) {
 
 1911            $this->ctrl->redirect($this, 
'render');
 
 1928        $not_allowed_subobject = [];
 
 1931        $command = 
$_SESSION[
'clipboard'][
'cmd'];
 
 1932        if (!in_array($command, array(
'cut', 
'link', 
'copy'))) {
 
 1933            $message = __METHOD__ . 
": cmd was neither 'cut', 'link' nor 'copy'; may be a hack attempt!";
 
 1937        if ($command == 
'cut') {
 
 1943        if (!is_array(
$_POST[
'nodes']) || !count(
$_POST[
'nodes'])) {
 
 1960        $folder_objects_cache = array();
 
 1963            $current_parent_id = 
$tree->getParentId($obj_data->getRefId());
 
 1965            foreach (
$_POST[
'nodes'] as $folder_ref_id) {
 
 1966                if (!array_key_exists($folder_ref_id, $folder_objects_cache)) {
 
 1971                if (!
$rbacsystem->checkAccess(
'create', $folder_ref_id, $obj_data->getType())) {
 
 1972                    $no_paste[] = 
sprintf($this->lng->txt(
'msg_no_perm_paste_object_in_folder'), $obj_data->getTitle() . 
' [' . $obj_data->getRefId() . 
']', $folder_objects_cache[$folder_ref_id]->getTitle() . 
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() . 
']');
 
 1976                if ($folder_ref_id == $current_parent_id) {
 
 1977                    $exists[] = 
sprintf($this->lng->txt(
'msg_obj_exists_in_folder'), $obj_data->getTitle() . 
' [' . $obj_data->getRefId() . 
']', $folder_objects_cache[$folder_ref_id]->getTitle() . 
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() . 
']');
 
 1983                    $is_child[] = 
sprintf($this->lng->txt(
'msg_paste_object_not_in_itself'), $obj_data->getTitle() . 
' [' . $obj_data->getRefId() . 
']');
 
 1987                if (!in_array($obj_data->getType(), array_keys($folder_objects_cache[$folder_ref_id]->getPossibleSubObjects()))) {
 
 1988                    $not_allowed_subobject[] = 
sprintf(
 
 1989                        $this->lng->txt(
'msg_obj_may_not_contain_objects_of_type'),
 
 1990                        $folder_objects_cache[$folder_ref_id]->getTitle() . 
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() . 
']',
 
 1991                        $GLOBALS[
'lng']->txt(
'obj_' . $obj_data->getType())
 
 1999        if (count($exists) && $command != 
"copy") {
 
 2000            $error .= implode(
'<br />', $exists);
 
 2003        if (count($is_child)) {
 
 2005            $error .= implode(
'<br />', $is_child);
 
 2008        if (count($not_allowed_subobject)) {
 
 2010            $error .= implode(
'<br />', $not_allowed_subobject);
 
 2013        if (count($no_paste)) {
 
 2015            $error .= implode(
'<br />', $no_paste);
 
 2035        $ilLog->write(__METHOD__ . 
", cmd: " . $command);
 
 2041        $ref_ids = 
$_SESSION[
'clipboard'][
'ref_ids'];
 
 2042        unset(
$_SESSION[
'clipboard'][
'ref_ids']);
 
 2045        require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
 
 2049        if ($command == 
'copy') {
 
 2050            foreach (
$_POST[
'nodes'] as $folder_ref_id) {
 
 2051                foreach ($ref_ids as 
$ref_id) {
 
 2052                    $revIdMapping = array();
 
 2055                    if ($oldNode_data[
'parent'] == $folder_ref_id) {
 
 2056                        require_once 
'Modules/File/classes/class.ilObjFileAccess.php';
 
 2058                        $newRef = $this->
cloneNodes($ref_id, $folder_ref_id, $refIdMapping, $newTitle);
 
 2060                        $newRef = $this->
cloneNodes($ref_id, $folder_ref_id, $refIdMapping, 
null);
 
 2065                    $newNode_data = 
$tree->getNodeData($newRef);
 
 2067                        $oldNode_data[
'type'],
 
 2069                        $oldNode_data[
'obj_id'],
 
 2073                        $newNode_data[
'obj_id'],
 
 2076                        $ilObjDataCache->lookupObjId($folder_ref_id)
 
 2087        if ($command == 
'cut') {
 
 2088            foreach (
$_POST[
'nodes'] as $folder_ref_id) {
 
 2089                foreach ($ref_ids as 
$ref_id) {
 
 2095                    include_once(
'./Services/AccessControl/classes/class.ilConditionHandler.php');
 
 2100                    $old_parent_data = 
$tree->getNodeData($old_parent);
 
 2102                        $node_data[
'obj_id'],
 
 2105                        $old_parent_data[
'obj_id']
 
 2108                        $node_data[
'obj_id'],
 
 2111                        $ilObjDataCache->lookupObjId($folder_ref_id)
 
 2125        if ($command == 
'link') {
 
 2126            $linked_to_folders = array();
 
 2128            include_once 
"Services/AccessControl/classes/class.ilRbacLog.php";
 
 2131            foreach (
$_POST[
'nodes'] as $folder_ref_id) {
 
 2132                $linked_to_folders[$folder_ref_id] = $ilObjDataCache->lookupTitle($ilObjDataCache->lookupObjId($folder_ref_id));
 
 2134                foreach ($ref_ids as 
$ref_id) {
 
 2143                foreach ($subnodes as 
$key => $subnode) {
 
 2146                    $new_ref_id = $obj_data->createReference();
 
 2147                    $obj_data->putInTree($folder_ref_id);
 
 2148                    $obj_data->setPermissions($folder_ref_id);
 
 2151                    if ($rbac_log_active) {
 
 2152                        $rbac_log_roles = 
$rbacreview->getParentRoleIds($new_ref_id, 
false);
 
 2158                    $node_data = 
$tree->getNodeData($new_ref_id);
 
 2160                        $node_data[
'obj_id'],
 
 2163                        $ilObjDataCache->lookupObjId($folder_ref_id)
 
 2169                $ilLog->write(__METHOD__ . 
', link finished');
 
 2172            $linked_targets = array();
 
 2173            if (count($linked_to_folders)) {
 
 2174                require_once 
'Services/Link/classes/class.ilLink.php';
 
 2181            if (count($ref_ids) == 1) {
 
 2184            ilUtil::sendSuccess(
sprintf($this->lng->txt(
'mgs_objects_linked_to_the_following_folders_' . $suffix), implode(
', ', $linked_targets)), 
true);
 
 2190        $this->ctrl->returnToParent($this);
 
 2198        $_SESSION[
'paste_linked_repexpand'] = array();
 
 2205        foreach ((array) 
$path as $node_id) {
 
 2206            if (!in_array($node_id, 
$_SESSION[
'paste_linked_repexpand'])) {
 
 2207                $_SESSION[
'paste_linked_repexpand'][] = $node_id;
 
 2223        $ilTabs->setTabActive(
'view_content');
 
 2225        if (!in_array(
$_SESSION[
'clipboard'][
'cmd'], array(
'link', 
'copy', 
'cut'))) {
 
 2226            $message = __METHOD__ . 
": Unknown action.";
 
 2233        if ($exp->handleCommand()) {
 
 2238        $txt_var = ($cmd == 
"copy")
 
 2244        $t->setFormAction($this->ctrl->getFormAction($this, 
"performPasteIntoMultipleObjects"));
 
 2246        include_once(
"./Services/UIComponent/Button/classes/class.ilSubmitButton.php");
 
 2248        $b->setCaption($txt_var);
 
 2249        $b->setCommand(
"performPasteIntoMultipleObjects");
 
 2252        $t->addStickyItem($b);
 
 2255        $this->lng->loadLanguageModule(
'obj');
 
 2256        $t->addFormButton($this->lng->txt(
"obj_insert_into_clipboard"), 
"keepObjectsInClipboard");
 
 2258        $t->addFormButton($this->lng->txt(
"cancel"), 
"cancelMoveLink");
 
 2259        $t->setCloseFormTag(
false);
 
 2263        $t->setCloseFormTag(
true);
 
 2264        $t->setOpenFormTag(
false);
 
 2267        $this->tpl->setContent(
$output);
 
 2278        $GLOBALS[
'ilCtrl']->returnToParent($this);
 
 2287        $GLOBALS[
'ilCtrl']->returnToParent($this);
 
 2296        $_SESSION[
'paste_copy_repexpand'] = array();
 
 2303        foreach ((array) 
$path as $node_id) {
 
 2304            if (!in_array($node_id, 
$_SESSION[
'paste_copy_repexpand'])) {
 
 2305                $_SESSION[
'paste_copy_repexpand'][] = $node_id;
 
 2318        $_SESSION[
'paste_cut_repexpand'] = array();
 
 2325        foreach ((array) 
$path as $node_id) {
 
 2326            if (!in_array($node_id, 
$_SESSION[
'paste_cut_repexpand'])) {
 
 2327                $_SESSION[
'paste_cut_repexpand'][] = $node_id;
 
 2352        require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
 
 2356        if (!in_array(
$_SESSION[
"clipboard"][
"cmd"], array(
"cut",
"link",
"copy"))) {
 
 2357            $message = get_class($this) . 
"::pasteObject(): cmd was neither 'cut','link' or 'copy'; may be a hack attempt!";
 
 2366            if (!
$rbacsystem->checkAccess(
'create', $this->object->getRefId(), $obj_data->getType())) {
 
 2368                $no_paste_titles[] = $obj_data->getTitle();
 
 2372            if ($this->object->getRefId() == $this->tree->getParentId($obj_data->getRefId())) {
 
 2378            if ($this->tree->isGrandChild(
$ref_id, $this->object->getRefId())) {
 
 2382            if (
$ref_id == $this->object->getRefId()) {
 
 2387            $obj_type = $obj_data->getType();
 
 2389            if (!in_array($obj_type, array_keys($this->object->getPossibleSubObjects()))) {
 
 2390                $not_allowed_subobject[] = $obj_data->getType();
 
 2397        if (count($exists) && 
$_SESSION[
"clipboard"][
"cmd"] != 
"copy") {
 
 2399            $ilErr->raiseError($this->lng->txt(
"msg_obj_exists"), 
$ilErr->MESSAGE);
 
 2402        if (count($is_child)) {
 
 2404                $this->lng->txt(
"msg_not_in_itself") . 
" " . implode(
',', $is_child),
 
 2409        if (count($not_allowed_subobject)) {
 
 2411                $this->lng->txt(
"msg_may_not_contain") . 
" " . implode(
',', $not_allowed_subobject),
 
 2416        if (count($no_paste)) {
 
 2417            $ilErr->raiseError($this->lng->txt(
"msg_no_perm_paste") . 
" " .
 
 2418                                     implode(
',', $no_paste), 
$ilErr->MESSAGE);
 
 2422        $ilLog->write(
"ilObjectGUI::pasteObject(), cmd: " . 
$_SESSION[
"clipboard"][
"cmd"]);
 
 2428        $ref_ids = 
$_SESSION[
"clipboard"][
"ref_ids"];
 
 2429        unset(
$_SESSION[
"clipboard"][
"ref_ids"]);
 
 2433        if (
$_SESSION[
"clipboard"][
"cmd"] == 
"copy") {
 
 2437            if (count($ref_ids) == 1) {
 
 2438                $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"target", $this->object->getRefId());
 
 2439                $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_id", $ref_ids[0]);
 
 2440                $ilCtrl->redirectByClass(
"ilobjectcopygui", 
"saveTarget");
 
 2442                $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"target", $this->object->getRefId());
 
 2443                $ilCtrl->setParameterByClass(
"ilobjectcopygui", 
"source_ids", implode($ref_ids, 
"_"));
 
 2444                $ilCtrl->redirectByClass(
"ilobjectcopygui", 
"saveTarget");
 
 2478            $ilLog->write(
"ilObjectGUI::pasteObject(), copy finished");
 
 2483        if (
$_SESSION[
"clipboard"][
"cmd"] == 
"cut") {
 
 2484            foreach ($ref_ids as 
$ref_id) {
 
 2487                $this->tree->moveTree(
$ref_id, $this->object->getRefId());
 
 2490                include_once(
'./Services/AccessControl/classes/class.ilConditionHandler.php');
 
 2495                $old_parent_data = 
$tree->getNodeData($old_parent);
 
 2497                    $node_data[
'obj_id'],
 
 2500                    $old_parent_data[
'obj_id']
 
 2503                    $node_data[
'obj_id'],
 
 2506                    $this->object->getId()
 
 2514        if (
$_SESSION[
"clipboard"][
"cmd"] == 
"link") {
 
 2515            foreach ($ref_ids as 
$ref_id) {
 
 2517                $top_node = $this->tree->getNodeData(
$ref_id);
 
 2520                $subnodes[
$ref_id] = $this->tree->getSubtree($top_node);
 
 2524            foreach ($subnodes as 
$key => $subnode) {
 
 2527                $new_ref_id = $obj_data->createReference();
 
 2528                $obj_data->putInTree(
$_GET[
"ref_id"]);
 
 2529                $obj_data->setPermissions(
$_GET[
"ref_id"]);
 
 2532                $node_data = 
$tree->getNodeData($new_ref_id);
 
 2534                    $node_data[
'obj_id'],
 
 2537                    $this->object->getId()
 
 2543            $ilLog->write(
"ilObjectGUI::pasteObject(), link finished");
 
 2547        $last_cmd = 
$_SESSION[
"clipboard"][
"cmd"];
 
 2553        if ($last_cmd == 
"cut") {
 
 2557        elseif ($last_cmd == 
"copy") {
 
 2559        } elseif ($last_cmd == 
'link') {
 
 2564        $this->ctrl->returnToParent($this);
 
 2581        $ilTabs->activateTab(
"clipboard");
 
 2585            $message = 
sprintf(
'%s::clipboardObject(): Illegal access. Clipboard variable is empty!', get_class($this));
 
 2587            $ilErr->raiseError($this->lng->txt(
"permission_denied"), 
$ilErr->WARNING);
 
 2597                "type" => $tmp_obj->getType(),
 
 2598                "type_txt" => $this->lng->txt(
"obj_" . $tmp_obj->getType()),
 
 2599                "title" => $tmp_obj->getTitle(),
 
 2600                "cmd" => (
$_SESSION[
"clipboard"][
"cmd"] == 
"cut") ? $this->lng->txt(
"move") :$this->lng->txt(
$_SESSION[
"clipboard"][
"cmd"]),
 
 2602                "obj_id" => $tmp_obj->getId()
 
 2608        include_once(
"./Services/Object/classes/class.ilObjClipboardTableGUI.php");
 
 2613        if (count(
$data) > 0) {
 
 2614            $ilToolbar->setFormAction(
$ilCtrl->getFormAction($this));
 
 2615            $ilToolbar->addFormButton(
 
 2616                $lng->txt(
"insert_object_here"),
 
 2619            $ilToolbar->addFormButton(
 
 2620                $lng->txt(
"clear_clipboard"),
 
 2638                $custom_icon = $this->
object->getCustomIconPath();
 
 2640                if ($a_as_section) {
 
 2642                    $title->setTitle($this->lng->txt(
"icon_settings"));
 
 2646                $a_form->addItem(
$title);
 
 2648                $caption = $this->lng->txt(
"cont_custom_icon");
 
 2650                $icon->setSuffixes(array(
"svg"));
 
 2651                $icon->setUseCache(
false);
 
 2652                $icon->setImage($custom_icon);
 
 2653                if ($a_as_section) {
 
 2654                    $a_form->addItem($icon);
 
 2656                    $title->addSubItem($icon);
 
 2668            $this->object->getRefId() &&
 
 2669            !$ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
 
 2673        return $_SESSION[
"il_cont_admin_panel"];
 
 2682        parent::setColumnSettings($column_gui);
 
 2684        if ($ilAccess->checkAccess(
"write", 
"", $this->object->getRefId()) &&
 
 2685            $this->isActiveAdministrationPanel() &&
 
 2686            $this->allowBlocksMoving()) {
 
 2691            $this->object->getSubItems($this->isActiveAdministrationPanel(), 
true)
 
 2696        if ($ilAccess->checkAccess(
"write", 
"", $this->object->getRefId())) {
 
 2756        include_once(
'Services/CopyWizard/classes/class.ilCopyWizardPageFactory.php');
 
 2761        if (!$_REQUEST[
'clone_source']) {
 
 2763            if (isset(
$_SESSION[
'wizard_search_title'])) {
 
 2764                $this->searchCloneSourceObject();
 
 2770        $source_id = $_REQUEST[
'clone_source'];
 
 2771        $new_type = $_REQUEST[
'new_type'];
 
 2772        $this->ctrl->setParameter($this, 
'clone_source', (
int) $_REQUEST[
'clone_source']);
 
 2773        $this->ctrl->setParameter($this, 
'new_type', $new_type);
 
 2777        $this->tpl->addJavaScript(
'./Services/CopyWizard/js/ilContainer.js');
 
 2778        $this->tpl->setVariable(
'BODY_ATTRIBUTES', 
'onload="ilDisableChilds(\'cmd\');"');
 
 2781        $this->tpl->addBlockFile(
 
 2784            'tpl.container_wizard_page.html',
 
 2785            "Services/Container" 
 2787        $this->tpl->setVariable(
'FORMACTION', $this->ctrl->getFormAction($this));
 
 2789        $this->tpl->setVariable(
'ALT_IMG', $this->lng->txt(
'obj_' . $new_type));
 
 2790        $this->tpl->setVariable(
'TXT_DUPLICATE', $this->lng->txt($new_type . 
'_wizard_page'));
 
 2791        $this->tpl->setVariable(
'INFO_DUPLICATE', $this->lng->txt($new_type . 
'_copy_threads_info'));
 
 2792        $this->tpl->setVariable(
'BTN_COPY', $this->lng->txt(
'obj_' . $new_type . 
'_duplicate'));
 
 2793        $this->tpl->setVariable(
'BTN_BACK', $this->lng->txt(
'btn_back'));
 
 2794        if (isset(
$_SESSION[
'wizard_search_title'])) {
 
 2795            $this->tpl->setVariable(
'CMD_BACK', 
'searchCloneSource');
 
 2797            $this->tpl->setVariable(
'CMD_BACK', 
'create');
 
 2800        $this->tpl->setVariable(
'BTN_TREE', $this->lng->txt(
'treeview'));
 
 2801        $this->tpl->setVariable(
'BTN_LIST', $this->lng->txt(
'flatview'));
 
 2808            foreach ($subnodes = 
$tree->getSubtree($source_node = 
$tree->getNodeData($source_id), 
true) as $node) {
 
 2809                if ($first == 
true) {
 
 2814                if ($node[
'type'] == 
'rolf') {
 
 2820                for (
$i = $source_node[
'depth'];
$i < $node[
'depth']; 
$i++) {
 
 2821                    $this->tpl->touchBlock(
'padding');
 
 2822                    $this->tpl->touchBlock(
'end_padding');
 
 2826                $copy_wizard_page->fillTreeSelection($node[
'ref_id'], $node[
'type'], $node[
'depth']);
 
 2828                $this->tpl->setCurrentBlock(
'tree_row');
 
 2830                $this->tpl->setVariable(
'TREE_ALT_IMG', $this->lng->txt(
'obj_' . $node[
'type']));
 
 2831                $this->tpl->setVariable(
'TREE_TITLE', $node[
'title']);
 
 2832                $this->tpl->parseCurrentBlock();
 
 2835                $this->tpl->setCurrentBlock(
'no_content');
 
 2836                $this->tpl->setVariable(
'TXT_NO_CONTENT', $this->lng->txt(
'container_no_items'));
 
 2837                $this->tpl->parseCurrentBlock();
 
 2839                $this->tpl->setCurrentBlock(
'tree_footer');
 
 2840                $this->tpl->setVariable(
'TXT_COPY_ALL', $this->lng->txt(
'copy_all'));
 
 2841                $this->tpl->setVariable(
'TXT_LINK_ALL', $this->lng->txt(
'link_all'));
 
 2842                $this->tpl->setVariable(
'TXT_OMIT_ALL', $this->lng->txt(
'omit_all'));
 
 2843                $this->tpl->parseCurrentBlock();
 
 2846            foreach (
$tree->getSubTreeTypes($source_id, array(
'rolf',
'crs')) as 
$type) {
 
 2848                if (strlen(
$html = $copy_wizard_page->getWizardPageBlockHTML())) {
 
 2849                    $this->tpl->setCurrentBlock(
'obj_row');
 
 2850                    $this->tpl->setVariable(
'ITEM_BLOCK', 
$html);
 
 2851                    $this->tpl->parseCurrentBlock();
 
 2869        include_once(
'./Services/Link/classes/class.ilLink.php');
 
 2870        include_once(
'Services/CopyWizard/classes/class.ilCopyWizardOptions.php');
 
 2878        $new_type = $_REQUEST[
'new_type'];
 
 2880        $clone_source = (int) $_REQUEST[
'clone_source'];
 
 2883            $ilErr->raiseError($this->lng->txt(
'permission_denied'));
 
 2885        if (!$clone_source) {
 
 2890        if (!$ilAccess->checkAccess(
'write', 
'', $clone_source, $new_type)) {
 
 2891            $ilErr->raiseError($this->lng->txt(
'permission_denied'));
 
 2898        include_once 
'./Services/CopyWizard/classes/class.ilCopyWizardOptions.php';
 
 2901            $ilCtrl->setParameterByClass(
"ilrepositorygui", 
"ref_id", 
$result[
'ref_id']);
 
 2902            $ilCtrl->redirectByClass(
"ilrepositorygui", 
"");
 
 2905            $ilCtrl->setParameterByClass(
"ilrepositorygui", 
"ref_id", 
$ref_id);
 
 2906            $ilCtrl->redirectByClass(
"ilrepositorygui", 
"");
 
 2920        include_once(
'Services/Container/classes/class.ilContainerSorting.php');
 
 2924        $positions = str_replace(
',', 
'.', 
$_POST[
'position']);
 
 2926        $sorting->savePost($positions);
 
 2928        $this->ctrl->redirect($this, 
"editOrder");
 
 2942    public function cloneNodes($srcRef, $dstRef, &$mapping, $newName=
null)
 
 2948        error_log(__METHOD__ . 
' cloning srcRef=' . $srcRef . 
' dstRef=' . $dstRef . 
'...');
 
 2949        $newRef = $srcObj->cloneObject($dstRef)->getRefId();
 
 2950        error_log(__METHOD__ . 
' ...cloning... newRef=' . $newRef . 
'...');
 
 2955        if (!is_null($newName)) {
 
 2957            $newObj->setTitle($newName);
 
 2962        $mapping[$newRef] = $srcRef;
 
 2965        $children = 
$tree->getChilds($srcRef);
 
 2966        foreach (
$tree->getChilds($srcRef) as $child) {
 
 2969            if ($child[
"type"] != 
'rolf') {
 
 2970                $this->
cloneNodes($child[
"ref_id"], $newRef, $mapping);
 
 2972                if (count($rolf = 
$tree->getChildsByType($newRef, 
"rolf"))) {
 
 2973                    $mapping[$rolf[0][
"ref_id"]] = $child[
"ref_id"];
 
 2977        error_log(__METHOD__ . 
' ...cloned srcRef=' . $srcRef . 
' dstRef=' . $dstRef . 
' newRef=' . $newRef);
 
 2994            $a_item_list_gui->addCustomProperty(
 
 2996                ilContainer::buildPath($a_item_data[
'ref_id'], $this->object->getRefId()),
 
 3012        $path_arr = 
$tree->getPathFull($a_ref_id, $a_course_ref_id);
 
 3014        foreach ($path_arr as 
$data) {
 
 3039        $tpl->setContent($this->form->getHTML());
 
 3041        $ilTabs->activateTab(
"obj_sty");
 
 3055        $tpl->setTreeFlatIcon(
"", 
"");
 
 3056        $ilTabs->clearTargets();
 
 3058            $this->object->getId(),
 
 3061        if ($xpage_id > 0) {
 
 3062            $ilTabs->setBackTarget(
 
 3063                $lng->txt(
"cntr_back_to_old_editor"),
 
 3064                $ilCtrl->getLinkTarget($this, 
"switchToOldEditor"),
 
 3068            $ilTabs->setBackTarget(
$lng->txt(
"back"), 
"./goto.php?target=" . $this->object->getType() . 
"_" .
 
 3069                $this->object->getRefId(), 
"_top");
 
 3072        include_once(
"./Services/Container/classes/class.ilContainerPageGUI.php");
 
 3074        $style_id = $this->
object->getStyleSheetId();
 
 3076            $page_gui->setStyleId($style_id);
 
 3080        $page_gui->setTabHook($this, 
"addPageTabs");
 
 3082        $ilTabs->setTabActive(
"obj_sty");
 
 3084        include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
 3085        $lng->loadLanguageModule(
"style");
 
 3087        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 3090        $fixed_style = 
$ilSetting->get(
"fixed_content_style_id");
 
 3093        if ($fixed_style > 0) {
 
 3096                $this->lng->txt(
"global_fixed") . 
")");
 
 3097            $this->form->addItem($st);
 
 3105            $st_styles[0] = $this->lng->txt(
"default");
 
 3108            if ($style_id > 0) {
 
 3113                    $this->form->addItem($st);
 
 3118                    $this->form->addCommandButton(
 
 3120                        $lng->txt(
"style_edit_style")
 
 3122                    $this->form->addCommandButton(
 
 3124                        $lng->txt(
"style_delete_style")
 
 3139                $style_sel->setOptions($st_styles);
 
 3140                $style_sel->setValue($style_id);
 
 3141                $this->form->addItem($style_sel);
 
 3143                $this->form->addCommandButton(
 
 3144                    "saveStyleSettings",
 
 3147                $this->form->addCommandButton(
 
 3149                    $lng->txt(
"sty_create_ind_style")
 
 3153        $this->form->setTitle(
$lng->txt(
"obj_sty"));
 
 3154        $this->form->setFormAction(
$ilCtrl->getFormAction($this));
 
 3164        $ilCtrl->redirectByClass(
"ilobjstylesheetgui", 
"create");
 
 3174        $ilCtrl->redirectByClass(
"ilobjstylesheetgui", 
"edit");
 
 3184        $ilCtrl->redirectByClass(
"ilobjstylesheetgui", 
"delete");
 
 3194        include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
 3195        if (
$ilSetting->get(
"fixed_content_style_id") <= 0 &&
 
 3197            || $this->object->getStyleSheetId() == 0)) {
 
 3199            $this->
object->update();
 
 3202        $this->ctrl->redirect($this, 
"editStyleProperties");
 
 3219        include_once 
'Services/Object/classes/class.ilObjectListGUIFactory.php';
 
 3221        $item_list_gui->setContainerObject($this);
 
 3223        $item_list_gui->enableComments(
true);
 
 3224        $item_list_gui->enableNotes(
true);
 
 3225        $item_list_gui->enableTags(
true);
 
 3228        $html = $item_list_gui->getListItemHTML(
 
 3239        $pl_names = $ilPluginAdmin->getActivePluginsForSlot(
IL_COMP_SERVICE, 
"UIComponent", 
"uihk");
 
 3240        foreach ($pl_names as $pl) {
 
 3242            $gui_class = $ui_plugin->getUIClassInstance();
 
 3243            $resp = $gui_class->getHTML(
"Services/Container", 
"async_item_list", array(
"html" => 
$html));
 
 3245                $html = $gui_class->modifyHTML(
$html, $resp);
 
 3267        include_once(
'Services/WebDAV/classes/class.ilDAVServer.php');
 
 3269        $ilToolbar->addButton(
 
 3270            $this->lng->txt(
'mount_webfolder'),
 
 3271            $davServer->getMountURI($this->object->getRefId()),
 
 3274            $davServer->getFolderURI($this->object->getRefId())
 
 3277        $tpl->setContent($this->form->getHTML());
 
 3286        include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
 
 3288        $this->form->setFormAction($this->ctrl->getFormAction($this));
 
 3291        $ipass = 
new ilPasswordInputGUI($this->lng->txt(
"desired_password"), 
"new_password");
 
 3292        $ipass->setRequired(
true);
 
 3294        $this->form->addItem($ipass);
 
 3295        $this->form->addCommandButton(
"savePassword", $this->lng->txt(
"save"));
 
 3296        $this->form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
 3298        $this->form->setTitle($this->lng->txt(
"chg_ilias_and_webfolder_password"));
 
 3299        $this->form->setFormAction($this->ctrl->getFormAction($this));
 
 3313        if (
$form->checkInput()) {
 
 3314            $ilUser->resetPassword($this->form->getInput(
'new_password'), $this->form->getInput(
'new_password'));
 
 3319        $form->setValuesByPost();
 
 3335        $item_data = $this->
object->getSubItems(
false, 
false, (
int) 
$_GET[
"child_ref_id"]);
 
 3339        include_once 
'./Modules/Session/classes/class.ilEventItems.php';
 
 3341        if (in_array((
int) 
$_GET[
"child_ref_id"], $event_items)) {
 
 3342            include_once(
'./Services/Object/classes/class.ilObjectActivation.php');
 
 3343            foreach ($this->object->items[
"sess"] as 
$id) {
 
 3345                foreach ($items as $event_item) {
 
 3346                    if ($event_item[
"child"] == (
int) 
$_GET[
"child_ref_id"]) {
 
 3348                        if ((
int) 
$_GET[
"parent_ref_id"]) {
 
 3349                            $event_item[
"parent"] = (int) 
$_GET[
"parent_ref_id"];
 
 3351                        $html = $container_view->renderItem($event_item);
 
 3359            foreach ($this->object->items[
"_all"] as 
$id) {
 
 3360                if (
$id[
"child"] == (
int) 
$_GET[
"child_ref_id"]) {
 
 3361                    $html = $container_view->renderItem(
$id);
 
 3370            echo 
$tpl->getOnLoadCodeForAsynch();
 
 3385        $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
 
 3388        include_once 
'./Services/WebServices/FileManager/classes/class.ilFMSettings.php';
 
 3391                $lg->addCustomCommand($this->ctrl->getLinkTarget($this, 
'fileManagerLaunch'), 
'fm_start', 
'_blank');
 
 3405        $tpl = 
new ilTemplate(
'tpl.fm_launch_ws.html', 
false, 
false, 
'Services/WebServices/FileManager');
 
 3406        $tpl->setVariable(
'JNLP_URL', ILIAS_HTTP_PATH . 
'/Services/WebServices/FileManager/lib/dist/FileManager.jnlp');
 
 3407        $tpl->setVariable(
'SESSION_ID', 
$_COOKIE[
'PHPSESSID'] . 
'::' . CLIENT_ID);
 
 3409        $tpl->setVariable(
'REF_ID', $this->object->getRefId());
 
 3410        $tpl->setVariable(
'WSDL_URI', ILIAS_HTTP_PATH . 
'/webservice/soap/server.php?wsdl');
 
 3412        $tpl->setVariable(
'REST_URI', ILIAS_HTTP_PATH . 
'/Services/WebServices/Rest/server.php');
 
 3413        $tpl->setVariable(
'FILE_LOCKS', 0);
 
 3416        include_once(
"./Modules/SystemFolder/classes/class.ilObjSystemFolder.php");
 
 3417        $header_top_title = ilObjSystemFolder::_getHeaderTitle();
 
 3418        $tpl->setVariable(
'HEADER_TITLE', $header_top_title ? $header_top_title : 
'');
 
 3435        if (!empty(
$_GET[
"set_mode"])) {
 
 3437            if (
$ilUser->getId() != ANONYMOUS_USER_ID) {
 
 3444            if (
$ilUser->getId() != ANONYMOUS_USER_ID) {
 
 3454        $mode = (
$_SESSION[
"il_rep_mode"] != 
"")
 
 3459        if ($mode == 
"tree" && (strtolower(
$_GET[
"baseClass"]) != 
"iladministrationgui")) {
 
 3460            include_once(
"./Services/Repository/classes/class.ilRepositoryExplorerGUI.php");
 
 3462            if (!$exp->handleCommand()) {
 
 3463                $tpl->setLeftNavContent($exp->getHTML());
 
 3475        include_once(
'Services/Container/classes/class.ilContainerSortingSettings.php');
 
 3476        include_once 
'./Services/Container/classes/class.ilContainer.php';
 
 3483            $sort_inherit->setTitle(
 
 3484                $this->lng->txt(
'sort_inherit_prefix') .
 
 3487                            $this->object->getId()
 
 3492            $sort_inherit->setInfo($this->lng->txt(
'sorting_info_inherit'));
 
 3493            $sort->addOption($sort_inherit);
 
 3497                $this->lng->txt(
'sorting_title_header'),
 
 3500            $sort_title->setInfo($this->lng->txt(
'sorting_info_title'));
 
 3503            $sort->addOption($sort_title);
 
 3507            $sort_activation->setInfo($this->lng->txt(
'sorting_creation_info'));
 
 3509            $sort->addOption($sort_activation);
 
 3513            $sort_activation->setInfo($this->lng->txt(
'crs_sort_timing_info'));
 
 3515            $sort->addOption($sort_activation);
 
 3519                $this->lng->txt(
'sorting_manual_header'),
 
 3522            $sort_manual->setInfo($this->lng->txt(
'sorting_info_manual'));
 
 3524            $sort->addOption($sort_manual);
 
 3528        if (in_array(
$settings->getSortMode(), $a_sorting_settings)) {
 
 3529            $sort->setValue(
$settings->getSortMode());
 
 3533        $form->addItem($sort);
 
 3544        if ($a_prefix == 
'manual') {
 
 3545            $txt = $this->lng->txt(
'sorting_new_items_direction');
 
 3547            $txt = $this->lng->txt(
'sorting_direction');
 
 3552        $direction->setRequired(
true);
 
 3556            $this->lng->txt(
'sorting_asc'),
 
 3559        $direction->addOption($asc);
 
 3563            $this->lng->txt(
'sorting_desc'),
 
 3566        $direction->addOption($desc);
 
 3568        $element->addSubItem($direction);
 
 3583        $position = 
new ilRadioGroupInputGUI($this->lng->txt(
'sorting_new_items_position'), $a_prefix . 
'_new_items_position');
 
 3584        $position->setValue(
$settings->getSortNewItemsPosition());
 
 3585        $position->setRequired(
true);
 
 3589            $this->lng->txt(
'sorting_new_items_at_top'),
 
 3593        $position->addOption($new_top);
 
 3597            $this->lng->txt(
'sorting_new_items_at_bottom'),
 
 3601        $position->addOption($new_bottom);
 
 3603        $element->addSubItem($position);
 
 3605        $order = 
new ilRadioGroupInputGUI($this->lng->txt(
'sorting_new_items_order'), $a_prefix . 
'_new_items_order');
 
 3606        $order->setValue(
$settings->getSortNewItemsOrder());
 
 3607        $order->setRequired(
true);
 
 3612                $this->lng->txt(
'sorting_title_header'),
 
 3616            $order->addOption($new_title);
 
 3622                $this->lng->txt(
'sorting_creation_header'),
 
 3626            $order->addOption($new_creation);
 
 3633                $this->lng->txt(
'crs_sort_activation'),
 
 3637            $order->addOption($new_activation);
 
 3640        $element->addSubItem($order);
 
 3653        include_once(
'Services/Container/classes/class.ilContainerSortingSettings.php');
 
 3657        switch (
$form->getInput(
'sorting')) {
 
 3659                $settings->setSortDirection(
$form->getInput(
'title_sorting_direction'));
 
 3662                $settings->setSortDirection(
$form->getInput(
'activation_sorting_direction'));
 
 3665                $settings->setSortDirection(
$form->getInput(
'creation_sorting_direction'));
 
 3668                $settings->setSortNewItemsPosition(
$form->getInput(
'manual_new_items_position'));
 
 3669                $settings->setSortNewItemsOrder(
$form->getInput(
'manual_new_items_order'));
 
 3670                $settings->setSortDirection(
$form->getInput(
'manual_sorting_direction'));
 
 3686        include_once(
"./Services/Repository/classes/class.ilRepUtilGUI.php");
 
 3688        $ru->showTrashTable(
$_GET[
"ref_id"]);
 
 3702        include_once(
"./Services/Repository/classes/class.ilRepUtilGUI.php");
 
 3704        $ru->removeObjectsFromSystem(
$_POST[
"trash_id"]);
 
 3705        $this->ctrl->redirect($this, 
"trash");
 
 3713        include_once(
"./Services/Repository/classes/class.ilRepUtilGUI.php");
 
 3715        $ru->restoreObjects(
$_GET[
"ref_id"], 
$_POST[
"trash_id"]);
 
 3716        $this->ctrl->redirect($this, 
"trash");
 
 3725        include_once(
"./Services/Repository/classes/class.ilRepUtilGUI.php");
 
 3727        if (!isset(
$_POST[
"trash_id"])) {
 
 3729            $this->ctrl->redirect($this, 
"trash");
 
 3733        $ru->confirmRemoveFromSystemObject(
$_POST[
"trash_id"]);
 
 3742        include_once(
"./Services/Repository/classes/class.ilRepositorySelectorExplorerGUI.php");
 
 3748        $exp->setTypeWhiteList(array(
"root", 
"cat", 
"grp", 
"crs", 
"fold"));
 
 3749        if ($cmd == 
"link") {
 
 3750            $exp->setSelectMode(
"nodes", 
true);
 
 3753            $exp->setSelectMode(
"nodes[]", 
false);
 
 3763        $this->ctrl->setReturn($this, 
"");
 
sprintf('%.4f', $callTime)
if(!isset( $_REQUEST[ 'ReturnTo'])) if(!isset($_REQUEST['AuthId'])) $options
An exception for terminatinating execution or to throw for unit testing.
error($a_errmsg)
set error message @access public
static _recordReadEvent( $a_type, $a_ref_id, $obj_id, $usr_id, $isCatchupWriteEvents=true, $a_ext_rc=false, $a_ext_time=false)
Records a read event and catches up with write events.
static _catchupWriteEvents($obj_id, $usr_id, $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
static _recordWriteEvent($obj_id, $usr_id, $action, $parent_obj_id=null)
Records a write event.
Column user interface class.
setBlockProperty($a_block_type, $a_property, $a_value)
This function is supposed to be used for block type specific properties, that should be passed to ilB...
setEnableMovement($a_enablemovement)
Set Enable Movement.
setRepositoryItems($a_repositoryitems)
Set Repository Items.
setAdminCommands($a_admincommands)
Set Administration Commmands.
static _adjustMovedObjectConditions($a_ref_id)
In the moment it is not allowed to create preconditions on objects that are located outside of a cour...
Shows all items grouped by type.
downloadMultipleObjects($a_ref_ids)
clearObject()
clear clipboard and go back to last object
saveSortingObject()
Save Sorting.
afterUpdate()
Post (successful) object update hook.
editPageFrameObject()
show page editor frameset
showAdministrationPanel(&$tpl)
show administration panel
clipboardObject()
show clipboard
initAndDisplayMoveIntoObjectObject()
getAsynchItemListObject()
Get item list command drop down asynchronously.
isActiveAdministrationPanel()
savePasswordObject()
Save password.
cloneWizardPageTreeObject()
@access public
setContentSubTabs()
Set content sub tabs.
setSideColumnReturn()
Set return point for side column actions.
initFormPasswordInstruction()
Init password form.
addStandardRow(&$a_tpl, $a_html, $a_item_ref_id="", $a_item_obj_id="", $a_image_type="")
adds a standard row to a block template
& forwardToPageObject()
forward command to page object
getEditFormValues()
Get values for edit form.
disableAdministrationPanelObject()
enable administration panel
trashObject()
Show trash content of object.
initAndDisplayCopyIntoMultipleObjectsObject()
static _buildPath($a_ref_id, $a_course_ref_id)
build path
initStylePropertiesForm()
Init style properties form.
__construct($a_data, $a_id, $a_call_by_reference=true, $a_prepare_output=true)
Constructor @access public.
cutObject()
cut object(s) out from a container and write the information to clipboard
confirmRemoveFromSystemObject()
confirmation screen remove from system
showPasteTreeObject()
Show paste tree.
getContentGUI()
Get content gui object.
enableMultiDownloadObject()
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
performPasteIntoMultipleObjectsObject()
addHeaderRow(&$a_tpl, $a_type, $a_show_image=true)
adds a header row to a block template
cancelMoveLinkObject()
Cancel move|link empty clipboard and return to parent.
allowBlocksConfigure()
Standard is to allow blocks configuration.
isActiveOrdering()
Check if ordering is enabled.
cloneNodes($srcRef, $dstRef, &$mapping, $newName=null)
Recursively clones all nodes of the RBAC tree.
getContainerPageHTML()
Get container page HTML.
initManualSortingOptionForm(ilContainerSortingSettings $settings, $element, $a_prefix, $a_sorting_settings)
Add manual sorting options.
clearAdminCommandsDetermination()
cleaer administration commands determination
switchToOldEditorObject()
Switch to old page editor.
addStandardContainerSubTabs($a_include_view=true)
Add standar container subtabs for view, manage, oderdering and text/media editor link.
static copyFile($obj_id, $title, $tmpdir)
& newBlockTemplate()
determin admin commands
redrawListItemObject()
Redraw a list item (ajax)
undeleteObject()
Get objects back from trash.
prepareOutput($a_show_subobjects=true)
prepare output
showPasswordInstructionObject($a_init=true)
Show webdav password instruction.
fileManagerLaunchObject()
Launch jnlp.
pasteObject()
paste object from clipboard to current place Depending on the chosen command the object(s) are linked...
editStylePropertiesObject()
Edit style properties.
__showTimingsButton(&$tpl)
editStyleObject()
Edit Style.
saveStyleSettingsObject()
Save style settings.
modifyItemGUI($a_item_list_gui, $a_item_data, $a_show_path)
Modify list gui for presentation in container @global type $lng.
setPageEditorTabs()
Add page editor tabs.
useNewEditorObject()
Use new editor (-> delete xhtml content page)
initSortingDirectionForm(ilContainerSortingSettings $sorting_settings, $element, $a_prefix)
Add sorting direction.
renderObject()
render the object
addPageTabs()
Add page tabs.
showPermanentLink(&$tpl)
show permanent link
cloneWizardPageObject($a_tree_view=true)
Show clone wizard page for container objects.
initAndDisplayLinkIntoMultipleObjectsObject()
addMessageRow(&$a_tpl, $a_message, $a_type)
add message row
editOrderObject()
Edit order.
setTitleAndDescription()
called by prepare output
initHeaderAction($a_sub_type=null, $a_sub_id=null)
Add file manager link.
forwardToStyleSheet()
Forward to style object.
showCustomIconsEditing($a_input_colspan=1, ilPropertyFormGUI $a_form=null, $a_as_section=true)
show edit section of custom icons for container
isActiveItemOrdering()
Check if item ordering is enabled.
cancelPageContentObject()
allowBlocksMoving()
Standard is to allow blocks moving.
enableAdministrationPanelObject()
enable administration panel
copyObject()
Copy object(s) out from a container and write the information to clipboard It is not possible to copy...
setColumnSettings(ilColumnGUI $column_gui)
May be overwritten in subclasses.
showPossibleSubObjects()
show possible sub objects selection list
linkObject()
create an new reference of an object in tree it's like a hard link of unix
deleteStyleObject()
Delete Style.
cloneWizardPageListObject()
@access public
switchToStdEditorObject()
Switch to standard page editor.
createStyleObject()
Create Style.
editPageContentObject()
edit page content (for repository root node and categories)
keepObjectsInClipboardObject()
Keep objects in the clipboard.
saveSortingSettings(ilPropertyFormGUI $form)
Save sorting settings.
removeFromSystemObject()
remove objects from trash bin and all entries therefore every object needs a specific deleteObject() ...
executeCommand()
execute command note: this method is overwritten in all container objects
cloneAllObject()
Clone all object Overwritten method for copying container objects.
static recurseFolder($refid, $title, $tmpdir)
private functions which iterates through all folders and files and create an according file structure...
getTabs()
common tabs for all container objects (should be called at the end of child getTabs() method
GUI class for course objective view.
Container page GUI class.
Shows all items in one block.
Shows all items in one block.
static lookupSortModeFromParentContainer($a_obj_id)
Lookup sort mode from parent container.
static _lookupSortMode($a_obj_id)
lookup sort mode
static sortModeToString($a_sort_mode)
get String representation of sort mode
getSortDirection()
Get sort direction.
static _getInstance($a_obj_id)
get instance by obj_id
const SORT_DIRECTION_DESC
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
const SORT_NEW_ITEMS_ORDER_ACTIVATION
const SORT_NEW_ITEMS_ORDER_TITLE
const SORT_NEW_ITEMS_ORDER_CREATION
static _lookupIconPath($a_id, $a_size="big")
lookup icon path
static _writeContainerSetting($a_id, $a_keyword, $a_value)
const SORT_NEW_ITEMS_POSITION_BOTTOM
const SORT_NEW_ITEMS_POSITION_TOP
static _isFinished($a_copy_id)
check if copy is finished
static _getInstanceByType($a_source_id, $a_item_type)
Get instance by type.
static _isActive()
Static getter.
static _isActionsVisible()
Static getter.
static getInstance()
Get singelton instance.
static addToDesktop()
Add desktop item @access public.
static removeFromDesktop()
Remove item from personal desktop @access public.
GUI class for didactic template settings inside repository objects.
static lookupTemplateId($a_ref_id)
Lookup template id @global ilDB $ilDB.
static _getItemsOfContainer($a_ref_id)
static getInstance()
Get singleton instance.
Class to report exception.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static showMemberViewSwitch($a_ref_id)
Show member view switch.
static getInstance()
Get instance.
This class represents a non editable value in a property form.
static _getUsedHTMLTagsAsString($a_module="")
Returns a string of all allowed HTML tags for text editing.
static _appendNumberOfCopyToFilename($a_file_name, $nth_copy=null, $a_handle_extension=false)
Appends the text " - Copy" to a filename in the language of the current user.
static _lookupAbsolutePath($obj_id, $a_version=null)
Class ilObjStyleSheetGUI.
static _lookupStandard($a_id)
Lookup standard flag.
static getSyntaxStylePath()
get syntax style path
static _getStandardStyles( $a_exclude_default_style=false, $a_include_deactivated=false, $a_scope=0)
Get standard styles.
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
static getContentStylePath($a_style_id, $add_random=true)
get content style path
static getItemsByEvent($a_event_id)
Get session material / event items.
Render add new item selector.
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
Class ilObjectGUI Basic methods of all Output classes.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
getCreationMode()
get creation mode
createObject()
create new object form
static _getListGUIByType($a_type, $a_context=ilObjectListGUI::CONTEXT_REPOSITORY)
static getInstance($a_obj_id)
Get instance.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static _lookupObjectId($a_ref_id)
lookup object id
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
static _isInTrash($a_ref_id)
checks wether object is in trash
static _lookupType($a_id, $a_reference=false)
lookup object type
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
static _existsAndNotEmpty($a_parent_type, $a_id, $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages)
static getPluginObject($a_ctype, $a_cname, $a_slot_id, $a_pname)
Get Plugin Object.
static _getRTEClassname()
static _cleanupMediaObjectUsage($a_text, $a_usage_type, $a_usage_id)
Synchronises appearances of media objects in $a_text with media object usage table.
This class represents an option in a radio group.
static add($a_action, $a_ref_id, array $a_diff, $a_source_ref_id=false)
static gatherFaPa($a_ref_id, array $a_role_ids, $a_add_action=false)
Repository GUI Utilities.
Repository explorer GUI class.
Explorer for selecting repository items.
special template class to simplify handling of ITX/PEAR
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static zip($a_dir, $a_file, $compress_content=false)
zips given directory/file into given zip.file
static ilTempnam($a_temp_path=null)
Create a temporary file in an ILIAS writable directory.
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static formSelect( $selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
if(!array_key_exists('StateId', $_REQUEST)) $id
if(!is_dir( $entity_dir)) exit("Fatal Error ([A-Za-z0-9]+)\s+" &#(? foreach( $entity_files as $file) $output
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
Interface for gui classes (e.g ilLuceneSearchGUI) that offer add/remove to/from desktop.
catch(Exception $e) $message
defined( 'APPLICATION_ENV')||define( 'APPLICATION_ENV'
if(isset($_POST['submit'])) $form