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