35 protected \ILIAS\Container\InternalGUIService
$gui;
40 protected \ILIAS\Container\InternalDomainService
$domain;
69 bool $a_call_by_reference =
true,
70 bool $a_prepare_output =
true 75 $this->
lng = $DIC->language();
76 $this->tpl = $DIC[
"tpl"];
77 $this->
ctrl = $DIC->ctrl();
78 $this->
tabs = $DIC->tabs();
80 $this->
user = $DIC->user();
81 $this->
access = $DIC->access();
82 $this->tree = $DIC->repositoryTree();
83 $this->error = $DIC[
"ilErr"];
84 $this->obj_definition = $DIC[
"objDefinition"];
85 $this->rbacadmin = $DIC->rbac()->admin();
86 $this->rbacreview = $DIC->rbac()->review();
87 $this->log = $DIC[
"ilLog"];
88 $this->obj_data_cache = $DIC[
"ilObjDataCache"];
89 $this->
toolbar = $DIC->toolbar();
90 $this->app_event_handler = $DIC[
"ilAppEventHandler"];
91 $this->
ui = $DIC->ui();
92 $this->global_screen = $DIC->globalScreen();
93 $this->component_factory = $DIC[
"component.factory"];
94 $rbacsystem = $DIC->rbac()->system();
95 $lng = $DIC->language();
106 $this->clipboard = $DIC
111 $this->std_request = $DIC
116 $this->requested_redirectSource = $this->std_request->getRedirectSource();
117 $this->domain = $DIC->container()
123 $cs = $DIC->contentStyle();
124 $this->content_style_gui = $cs->gui();
125 $this->content_style_domain = $cs->domain();
126 $this->gui = $DIC->container()->internal()->gui();
131 if (is_null($this->mode_manager)) {
132 $this->mode_manager = $this->domain
140 $include_empty_blocks =
true,
142 ): \
ILIAS\Container\Content\ItemPresentationManager {
143 if (is_null($this->item_presentation)) {
144 $this->item_presentation = $this->domain
148 $this->container_user_filter,
149 $include_empty_blocks,
160 $next_class = $this->
ctrl->getNextClass();
161 $cmd = $this->
ctrl->getCmd(
"render");
163 switch ($next_class) {
165 case "ilcontainerpagegui":
166 if ($this->requested_redirectSource !==
"ilinternallinkgui") {
184 $values = parent::getEditFormValues();
186 $values[
'didactic_type'] =
200 if ($new_tpl_id !== $current_tpl_id) {
202 $this->
ctrl->setParameterByClass(ilDidacticTemplateGUI::class,
"didactic_type", $new_tpl_id);
203 $this->
ctrl->redirectByClass(ilDidacticTemplateGUI::class,
"confirmTemplateSwitch");
205 parent::afterUpdate();
215 if (in_array($cmd, [
"displayMediaFullscreen",
"downloadFile",
"displayMedia"])) {
221 $ilTabs->clearTargets();
223 if ($this->requested_redirectSource ===
"ilinternallinkgui") {
227 $ilTabs->setBackTarget(
229 $this->
ctrl->getLinkTargetByClass(
"ilcontainerpagegui",
"edit")
235 $this->content_style_gui->addCss($this->tpl, $this->
object->getRefId());
246 $new_page_object->setParentId($this->
object->getId());
247 $new_page_object->setId($this->
object->getId());
248 $new_page_object->createFromXML();
253 $style = $this->content_style_domain->styleForRefId($this->
object->getRefId());
255 $style->getEffectiveStyleId()
259 $page_gui->getLanguage()
261 $page_gui->setTemplateTargetVar(
"ADM_CONTENT");
262 $page_gui->setFileDownloadLink(
"");
264 $page_gui->setPresentationTitle(
"");
265 $page_gui->setTemplateOutput(
false);
268 $page_gui->setTabHook($this,
"addPageTabs");
270 return $this->
ctrl->forwardCommand($page_gui);
280 $ilCtrl->getLinkTargetByClass(
"ilObjectContentStyleSettingsGUI",
''),
281 "editStyleProperties",
282 "ilobjectcontentstylesettingsgui" 291 if (!
$ilSetting->get(
"enable_cat_page_edit") || $this->
object->filteredSubtree()) {
302 $this->content_style_gui->addCss($this->tpl, $this->
object->getRefId());
303 $this->tpl->setCurrentBlock(
"SyntaxStyle");
304 $this->tpl->setVariable(
305 "LOCATION_SYNTAX_STYLESHEET",
308 $this->tpl->parseCurrentBlock();
312 $lang = $ot->getEffectiveContentLang($ilUser->getCurrentLanguage(),
"cont");
314 $style = $this->content_style_domain->styleForRefId($this->
object->getRefId());
315 $page_gui->
setStyleId($style->getEffectiveStyleId());
317 $page_gui->setPresentationTitle(
"");
318 $page_gui->setTemplateOutput(
false);
319 $page_gui->setHeader(
"");
320 $ret = $page_gui->showPage();
331 $this->tpl->setTitle($this->
object->getTitle(),
true);
333 parent::setTitleAndDescription();
351 if ($this->
object->filteredSubtree()) {
354 switch ($view_mode) {
388 return $container_view;
404 if (!$this->item_presentation->canManageItems()) {
405 $this->
ctrl->redirect($this,
"disableAdministrationPanel");
407 $ilTabs->activateSubTab(
"manage");
409 $ilTabs->activateSubTab(
"view_content");
412 $container_view->setOutput();
416 $is_container_cmd = strtolower($this->std_request->getCmdClass()) === strtolower(get_class($this))
417 || ($this->std_request->getCmdClass() ===
"");
421 if ($is_container_cmd) {
424 if (!$this->edit_order) {
431 if (is_object($this->
object) &&
433 $this->rbacsystem->checkAccess(
"write", $this->
object->getRefId())
435 if (
$ilSetting->get(
"enable_cat_page_edit")) {
441 $lng->
txt(
"cntr_text_media_editor"),
442 $ilCtrl->getLinkTarget($this,
"editPageFrame")
447 if (!$this->edit_order) {
459 if ($this->requested_ref_id > 1 &&
$ilSetting->get(
"rep_tree_synchronize")) {
460 $ilCtrl->setParameter($this,
"active_node", $this->requested_ref_id);
475 echo $container_view->getSingleTypeBlockAsynch(
476 $this->std_request->getType()
493 $main_tpl = $DIC->ui()->mainTemplate();
499 $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
503 $this->
ctrl->setParameter($this,
"type",
"");
504 $this->
ctrl->setParameter($this,
"item_ref_id",
"");
507 $this->
ui->factory()->button()->standard(
508 $this->
lng->txt(
'paste_clipboard_items'),
509 $this->
ctrl->getLinkTargetByClass([ilRepositoryGUI::class, static::class],
'paste')
514 $this->
ui->factory()->button()->standard(
515 $this->
lng->txt(
'clear_clipboard'),
516 $this->
ctrl->getLinkTargetByClass([ilRepositoryGUI::class, static::class],
'clear')
520 $main_tpl->addAdminPanelToolbar(
$toolbar,
true,
false);
523 $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
526 $this->
ctrl->setParameter($this,
"type",
"");
527 $this->
ctrl->setParameter($this,
"item_ref_id",
"");
535 $this->
lng->txt(
'delete_selected_items'),
539 $this->
lng->txt(
'move_selected_items'),
543 $this->
lng->txt(
'copy_selected_items'),
547 $this->
lng->txt(
'link_selected_items'),
554 if ((
bool) $folder_set->get(
'enable_multi_download') ===
true) {
557 $this->
lng->txt(
'download_selected_items'),
562 $main_tpl->addAdminPanelToolbar(
564 $this->
gotItems() && !$this->clipboard->hasEntries(),
565 $this->
gotItems() && !$this->clipboard->hasEntries()
570 $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
572 } elseif ($this->edit_order) {
573 if ($this->
getItemPresentation()->hasItems() && $ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
576 $main_tpl->setPageFormAction($this->
ctrl->getFormAction($this));
579 $this->
ctrl->setParameter($this,
"type",
"");
580 $this->
ctrl->setParameter($this,
"item_ref_id",
"");
583 $this->
lng->txt(
'sorting_save'),
587 $main_tpl->addAdminPanelToolbar(
$toolbar,
true,
false);
597 $num_files = $this->tree->getChildsByType(
$ref_id,
"file");
598 $num_folders = $this->tree->getChildsByType(
$ref_id,
"fold");
599 if (count($num_files) > 0 || count($num_folders) > 0) {
601 $GLOBALS[
'tpl']->setPageFormAction($this->
ctrl->getFormAction($this));
604 $this->
ctrl->setParameter($this,
"type",
"");
605 $this->
ctrl->setParameter($this,
"item_ref_id",
"");
608 $this->
lng->txt(
'download_selected_items'),
612 $GLOBALS[
'tpl']->addAdminPanelToolbar(
618 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_no_downloadable_objects'),
true);
632 $tpl = $DIC->ui()->mainTemplate();
636 $this->
object->getRefId(),
644 $this->
ctrl->redirectByClass([static::class,
"ilcontainerpagegui"],
"edit");
649 $this->
ctrl->redirect($this,
"");
660 "tpl.container_link_help.html",
663 "components/ILIAS/Container" 686 foreach ($childs as $child) {
687 if (in_array($child[
"type"], [
"lm",
"sahs",
"htlm"])) {
690 $cnt[$child[
"type"]]++;
696 foreach ($type_ordering as
$type) {
698 if ($type !==
"lres") {
702 " (" . ((
int) $cnt[$type]) .
")" 708 " (" . ((
int) $cnt[
"lres"]) .
")" 721 bool $a_show_image =
true 724 $title = $this->
lng->txt(
"objs_" . $a_type);
734 $a_tpl->
setVariable(
"BLOCK_HEADER_CONTENT", $title);
739 public function addStandardRow(
742 int $a_item_ref_id = null,
743 int $a_item_obj_id = null,
744 string $a_image_type =
"" 749 if (
$ilSetting->get(
"icon_position_in_lists") ===
"item_rows") {
751 $alt = $this->
lng->txt(
"obj_" . $a_image_type);
756 $customIconFactory = $DIC[
'object.customicons.factory'];
757 $customIcon = $customIconFactory->getPresenterByObjId($a_item_obj_id, $a_image_type);
759 if ($customIcon->exists()) {
760 $icon = $customIcon->getFullPath();
782 $a_tpl->
setVariable(
'POSITION', sprintf(
'%.1f', $this->current_position++));
799 $type = $this->
lng->txt(
"obj_" . $a_type);
800 $a_message = str_replace(
"[type]",
$type, $a_message);
818 || strtolower($this->
ctrl->getCmdClass()) !==
"ilcontainerpagegui") {
827 $this->tabs_gui->setBackTarget(
828 $this->
lng->txt(
"obj_cat"),
829 $this->
ctrl->getLinkTarget($this,
"")
832 $this->tabs_gui->addTarget(
834 $this->
ctrl->getLinkTargetByClass(
"ilcontainerpagegui",
"view"),
846 bool $a_include_view =
true 853 if (!is_object($this->
object)) {
857 if ($a_include_view && $this->rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
859 $ilTabs->addSubTab(
"view_content",
$lng->
txt(
"view"), $ilCtrl->getLinkTargetByClass(static::class,
"view"));
864 $ilCtrl->getLinkTarget($this,
"disableAdministrationPanel")
870 if ($item_presentation->canManageItems()) {
872 $ilTabs->addSubTab(
"manage",
$lng->
txt(
"cntr_manage"), $ilCtrl->getLinkTarget($this,
""));
877 $ilCtrl->getLinkTarget($this,
"enableAdministrationPanel")
881 if ($item_presentation->canOrderItems()) {
882 $ilTabs->addSubTab(
"ordering",
$lng->
txt(
"cntr_ordering"), $ilCtrl->getLinkTarget($this,
"editOrder"));
892 if ($rbacsystem->
checkAccess(
'edit_permission', $this->ref_id)) {
893 $this->tabs_gui->addTarget(
895 $this->
ctrl->getLinkTargetByClass([get_class($this),
'ilpermissiongui'],
"perm"),
896 [
"perm",
"info",
"owner"],
899 if ($ilCtrl->getNextClass() ===
"ilpermissiongui") {
900 $this->tabs_gui->activateTab(
"perm_settings");
905 if (strtolower($this->std_request->getBaseClass()) ===
"ilrepositorygui" &&
906 $this->clipboard->hasEntries()) {
907 $this->tabs_gui->addTarget(
909 $this->
ctrl->getLinkTarget($this,
"clipboard"),
924 $this->
ctrl->redirect($this,
"render");
930 $this->
ctrl->redirect($this,
"render");
936 $this->edit_order =
true;
940 $ilTabs->activateSubTab(
"ordering");
963 $this->multi_download_enabled =
true;
982 $ids = $this->std_request->getSelectedIds();
985 if (count($ids) === 0) {
986 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"),
true);
987 $this->
ctrl->redirect($this,
"");
993 $node_data = $this->tree->getNodeData($ref_id);
994 $subtree_nodes = $this->tree->getSubTree($node_data);
996 $all_node_data[] = $node_data;
997 $all_subtree_nodes[] = $subtree_nodes;
1000 foreach ($subtree_nodes as $node) {
1001 if ($node[
'type'] ===
'rolf') {
1005 if (!$rbacsystem->
checkAccess(
'delete', $node[
"ref_id"])) {
1006 $no_cut[] = $node[
"ref_id"];
1011 if (count($no_cut)) {
1013 foreach ($no_cut as $cut_id) {
1017 $this->
lng->txt(
"msg_no_perm_cut") .
" " . implode(
',', $titles),
1021 $this->clipboard->setParent($this->requested_ref_id);
1022 $this->clipboard->setCmd($ilCtrl->getCmd());
1023 $this->clipboard->setRefIds($this->std_request->getSelectedIds());
1025 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"msg_cut_clipboard"),
true);
1043 $ids = $this->std_request->getSelectedIds();
1045 if (count($ids) === 0) {
1046 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"),
true);
1047 $this->
ctrl->redirect($this,
"");
1054 $node_data = $this->tree->getNodeData($ref_id);
1057 if ($objDefinition->isContainer($node_data[
"type"])) {
1061 $subtree_nodes = $this->tree->getSubTree($node_data);
1063 $all_node_data[] = $node_data;
1064 $all_subtree_nodes[] = $subtree_nodes;
1067 foreach ($subtree_nodes as $node) {
1068 if ($node[
'type'] ===
'rolf') {
1072 if (!$rbacsystem->
checkAccess(
'visible,read', $node[
"ref_id"])) {
1073 $no_copy[] = $node[
"ref_id"];
1078 if ($containers > 0 && count($this->std_request->getSelectedIds()) > 1) {
1079 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"cntr_container_only_on_their_own"),
true);
1080 $this->
ctrl->redirect($this,
"");
1084 if (is_array($no_copy) && count($no_copy)) {
1086 foreach ($no_copy as $copy_id) {
1089 $this->tpl->setOnScreenMessage(
1091 $this->
lng->txt(
"msg_no_perm_copy") .
" " . implode(
',', $titles),
1094 $this->
ctrl->redirect($this,
"");
1098 $ids = $this->std_request->getSelectedIds();
1099 if (count($ids) === 1) {
1100 $ilCtrl->setParameterByClass(
"ilobjectcopygui",
"source_id", $ids[0]);
1102 $ilCtrl->setParameterByClass(
"ilobjectcopygui",
"source_ids", implode(
"_", $ids));
1104 $ilCtrl->redirectByClass(
"ilobjectcopygui",
"initTargetSelection");
1106 $this->clipboard->setParent($this->requested_ref_id);
1107 $this->clipboard->setCmd($ilCtrl->getCmd());
1108 $this->clipboard->setRefIds($ids);
1110 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"msg_copy_clipboard"),
true);
1124 $initiated_by_folder_action =
false;
1126 $ids = $this->std_request->getSelectedIds();
1128 if (count($ids) === 0) {
1131 if ($object_type ===
"fold") {
1133 $initiated_by_folder_action =
true;
1135 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"),
true);
1136 $this->
ctrl->redirect($this,
"");
1143 $initiated_by_folder_action
1147 if ($download_job->run()) {
1148 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_bt_download_started'),
true);
1150 $GLOBALS[
'DIC']->ctrl()->redirect($this);
1171 $ids = $this->std_request->getSelectedIds();
1173 if (count($ids) === 0) {
1174 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"),
true);
1175 $this->
ctrl->redirect($this,
"");
1180 if (!$rbacsystem->
checkAccess(
'delete', $ref_id)) {
1192 if ($no_cut !== []) {
1193 $this->tpl->setOnScreenMessage(
1195 $this->
lng->txt(
"msg_no_perm_link") .
" " . implode(
',', $no_cut),
1198 $this->
ctrl->redirect($this,
"");
1201 if ($no_link !== []) {
1203 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_obj_no_link'),
true);
1204 $this->
ctrl->redirect($this,
"");
1207 $this->clipboard->setParent($this->requested_ref_id);
1208 $this->clipboard->setCmd($ilCtrl->getCmd());
1209 $this->clipboard->setRefIds($ids);
1212 if (count($this->clipboard->getRefIds()) === 1) {
1215 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"msg_link_clipboard_" . $suffix),
true);
1225 $this->clipboard->clear();
1230 if ($this->
ctrl->getCmd() ===
"clear") {
1231 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_clear_clipboard"),
true);
1233 $this->
ctrl->redirect($this,
'render');
1252 $not_allowed_subobject = [];
1255 $command = $this->clipboard->getCmd();
1256 if (!in_array($command, [
'cut',
'link',
'copy'])) {
1257 $message = __METHOD__ .
": cmd was neither 'cut', 'link' nor 'copy'; may be a hack attempt!";
1261 $nodes = $this->std_request->getNodes();
1263 if (count($nodes) === 0) {
1264 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_at_least_one_object'));
1276 $folder_objects_cache = [];
1277 foreach ($this->clipboard->getRefIds() as
$ref_id) {
1281 foreach ($nodes as $folder_ref_id) {
1282 if (!array_key_exists($folder_ref_id, $folder_objects_cache)) {
1287 if (!$rbacsystem->
checkAccess(
'create', $folder_ref_id, $obj_data->getType())) {
1288 $no_paste[] = sprintf(
1289 $this->
lng->txt(
'msg_no_perm_paste_object_in_folder'),
1290 $obj_data->getTitle() .
' [' . $obj_data->getRefId() .
']',
1291 $folder_objects_cache[$folder_ref_id]->getTitle(
1292 ) .
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() .
']' 1297 if ($folder_ref_id == $current_parent_id) {
1298 $exists[] = sprintf(
1299 $this->
lng->txt(
'msg_obj_exists_in_folder'),
1300 $obj_data->getTitle() .
' [' . $obj_data->getRefId() .
']',
1301 $folder_objects_cache[$folder_ref_id]->getTitle(
1302 ) .
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() .
']' 1308 $is_child[] = sprintf(
1309 $this->
lng->txt(
'msg_paste_object_not_in_itself'),
1310 $obj_data->getTitle() .
' [' . $obj_data->getRefId() .
']' 1315 if (!array_key_exists(
1316 $obj_data->getType(),
1317 $folder_objects_cache[$folder_ref_id]->getPossibleSubObjects()
1319 $not_allowed_subobject[] = sprintf(
1320 $this->
lng->txt(
'msg_obj_may_not_contain_objects_of_type'),
1321 $folder_objects_cache[$folder_ref_id]->getTitle(
1322 ) .
' [' . $folder_objects_cache[$folder_ref_id]->getRefId() .
']',
1323 $lng->
txt(
'obj_' . $obj_data->getType())
1332 if ($command !==
"copy" && count($exists)) {
1333 $error .= implode(
'<br />', $exists);
1336 if (count($is_child)) {
1337 $error .= $error !==
'' ?
'<br />' :
'';
1338 $error .= implode(
'<br />', $is_child);
1341 if (count($not_allowed_subobject)) {
1342 $error .= $error !==
'' ?
'<br />' :
'';
1343 $error .= implode(
'<br />', $not_allowed_subobject);
1346 if (count($no_paste)) {
1347 $error .= $error !==
'' ?
'<br />' :
'';
1348 $error .= implode(
'<br />', $no_paste);
1351 if ($error !==
'') {
1352 $this->tpl->setOnScreenMessage(
'failure', $error);
1364 $ilLog->write(__METHOD__ .
", cmd: " . $command);
1370 $ref_ids = $this->clipboard->getRefIds();
1371 $this->clipboard->clear();
1375 if ($command ===
'copy') {
1376 foreach ($nodes as $folder_ref_id) {
1377 foreach ($ref_ids as
$ref_id) {
1381 if ($oldNode_data[
'parent'] == $folder_ref_id) {
1383 $newRef = $this->
cloneNodes($ref_id, $folder_ref_id, $refIdMapping, $newTitle);
1385 $newRef = $this->
cloneNodes($ref_id, $folder_ref_id, $refIdMapping, null);
1392 $oldNode_data[
'type'],
1394 $oldNode_data[
'obj_id'],
1398 $newNode_data[
'obj_id'],
1401 $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
1408 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_cloned'),
true);
1412 if ($command ===
'cut') {
1413 foreach ($nodes as $folder_ref_id) {
1414 foreach ($ref_ids as
$ref_id) {
1426 $node_data[
'obj_id'],
1429 $old_parent_data[
'obj_id']
1432 $node_data[
'obj_id'],
1435 $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
1445 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_cut_copied'),
true);
1449 if ($command ===
'link') {
1451 $linked_to_folders = [];
1455 foreach ($nodes as $folder_ref_id) {
1456 $linked_to_folders[$folder_ref_id] = $ilObjDataCache->lookupTitle(
1457 $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
1460 foreach ($ref_ids as
$ref_id) {
1469 foreach ($subnodes as $key => $subnode) {
1472 $new_ref_id = $obj_data->createReference();
1473 $obj_data->putInTree($folder_ref_id);
1474 $obj_data->setPermissions($folder_ref_id);
1477 if ($rbac_log_active) {
1486 $node_data[
'obj_id'],
1489 $ilObjDataCache->lookupObjId((
int) $folder_ref_id)
1495 $ilLog->write(__METHOD__ .
', link finished');
1499 if (count($linked_to_folders)) {
1500 foreach ($linked_to_folders as
$ref_id => $title) {
1501 $links[] = $ui->
factory()->link()->standard($title, ilLink::_getLink(
$ref_id));
1506 if (count($ref_ids) === 1) {
1510 $mbox = $ui->
factory()->messageBox()->success(
1511 $this->
lng->txt(
'mgs_objects_linked_to_the_following_folders_' . $suffix)
1513 ->withLinks($links);
1515 $this->tpl->setOnScreenMessage(
'success', $ui->
renderer()->render($mbox),
true);
1521 $this->
ctrl->returnToParent($this);
1534 $ilTabs->setTabActive(
'view_content');
1536 if (!in_array($this->clipboard->getCmd(), [
'link',
'copy',
'cut'])) {
1537 $message = __METHOD__ .
": Unknown action.";
1540 $cmd = $this->clipboard->getCmd();
1544 if ($exp->handleCommand()) {
1547 $output = $exp->getHTML();
1549 $txt_var = ($cmd ===
"copy")
1555 $t->setFormAction($this->
ctrl->getFormAction($this,
"performPasteIntoMultipleObjects"));
1558 $this->
lng->txt($txt_var),
1559 "performPasteIntoMultipleObjects" 1560 )->submit()->toToolbar(
true, $t);
1563 $this->
lng->loadLanguageModule(
'obj');
1564 $t->addFormButton($this->
lng->txt(
"obj_insert_into_clipboard"),
"keepObjectsInClipboard");
1566 $t->addFormButton($this->
lng->txt(
"cancel"),
"cancelMoveLink");
1567 $t->setCloseFormTag(
false);
1569 $output = $t->getHTML() . $output;
1571 $t->setCloseFormTag(
true);
1572 $t->setOpenFormTag(
false);
1573 $output .=
"<br />" . $t->getHTML();
1575 $this->tpl->setContent($output);
1586 $this->clipboard->clear();
1594 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"obj_inserted_clipboard"),
true);
1625 $not_allowed_subobject = [];
1628 if (!in_array($this->clipboard->getCmd(), [
"cut",
"link",
"copy"])) {
1629 $message = get_class(
1631 ) .
"::pasteObject(): cmd was neither 'cut','link' or 'copy'; may be a hack attempt!";
1636 foreach ($this->clipboard->getRefIds() as
$ref_id) {
1640 if (!$rbacsystem->
checkAccess(
'create', $this->object->getRefId(), $obj_data->getType())) {
1642 $no_paste_titles[] = $obj_data->getTitle();
1646 if ($this->
object->getRefId() === $this->tree->getParentId($obj_data->getRefId())) {
1652 if ($this->tree->isGrandChild(
$ref_id, $this->object->getRefId())) {
1661 $obj_type = $obj_data->getType();
1663 if (!array_key_exists($obj_type, $this->
object->getPossibleSubObjects())) {
1664 $not_allowed_subobject[] = $obj_data->getType();
1671 if (count($exists) > 0 && $this->clipboard->getCmd() !==
"copy") {
1673 $ilErr->raiseError($this->
lng->txt(
"msg_obj_exists"),
$ilErr->MESSAGE);
1676 if (count($is_child) > 0) {
1678 $this->
lng->txt(
"msg_not_in_itself") .
" " . implode(
',', $is_child),
1683 if (count($not_allowed_subobject) > 0) {
1685 $this->
lng->txt(
"msg_may_not_contain") .
" " . implode(
',', $not_allowed_subobject),
1690 if (count($no_paste) > 0) {
1692 $this->
lng->txt(
"msg_no_perm_paste") .
" " .
1693 implode(
',', $no_paste),
1699 $ilLog->write(
"ilObjectGUI::pasteObject(), cmd: " . $this->clipboard->getCmd());
1705 $ref_ids = $this->clipboard->getRefIds();
1708 $last_cmd = $this->clipboard->getCmd();
1712 if ($this->clipboard->getCmd() ===
"copy") {
1713 $this->clipboard->clear();
1716 $ilCtrl->setParameterByClass(
"ilobjectcopygui",
"target", $this->
object->getRefId());
1717 if (count($ref_ids) === 1) {
1718 $ilCtrl->setParameterByClass(
"ilobjectcopygui",
"source_id", $ref_ids[0]);
1720 $ilCtrl->setParameterByClass(
"ilobjectcopygui",
"source_ids", implode(
"_", $ref_ids));
1722 $ilCtrl->redirectByClass(
"ilobjectcopygui",
"saveTarget");
1724 $ilLog->write(
"ilObjectGUI::pasteObject(), copy finished");
1729 if ($this->clipboard->getCmd() ===
"cut") {
1730 foreach ($ref_ids as
$ref_id) {
1733 $this->tree->moveTree($ref_id, $this->
object->getRefId());
1742 $node_data[
'obj_id'],
1745 $old_parent_data[
'obj_id']
1748 $node_data[
'obj_id'],
1751 $this->
object->getId()
1761 if ($this->clipboard->getCmd() ===
"link") {
1762 foreach ($ref_ids as $ref_id) {
1764 $top_node = $this->tree->getNodeData($ref_id);
1767 $subnodes[
$ref_id] = $this->tree->getSubTree($top_node);
1770 foreach ($subnodes as $key => $subnode) {
1773 $new_ref_id = $obj_data->createReference();
1774 $obj_data->putInTree($this->requested_ref_id);
1775 $obj_data->setPermissions($this->requested_ref_id);
1780 $node_data[
'obj_id'],
1783 $this->
object->getId()
1789 $ilLog->write(
"ilObjectGUI::pasteObject(), link finished");
1796 if ($last_cmd ===
"cut") {
1797 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_cut_copied"),
true);
1799 elseif ($last_cmd ===
"copy") {
1800 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_cloned"),
true);
1801 } elseif ($last_cmd ===
'link') {
1803 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_linked"),
true);
1806 $this->
ctrl->returnToParent($this);
1820 $ilTabs->activateTab(
"clipboard");
1823 if (!$this->clipboard->hasEntries()) {
1824 $message = sprintf(
'%s::clipboardObject(): Illegal access. Clipboard variable is empty!', get_class($this));
1825 $ilLog->write($message, $ilLog->FATAL);
1826 $ilErr->raiseError($this->
lng->txt(
"permission_denied"),
$ilErr->WARNING);
1830 foreach ($this->clipboard->getRefIds() as
$ref_id) {
1836 "type" => $tmp_obj->getType(),
1837 "type_txt" => $this->
lng->txt(
"obj_" . $tmp_obj->getType()),
1838 "title" => $tmp_obj->getTitle(),
1839 "cmd" => ($this->clipboard->getCmd() ===
"cut") ? $this->
lng->txt(
"move") : $this->
lng->txt(
1840 $this->clipboard->getCmd()
1843 "obj_id" => $tmp_obj->getId()
1850 $tab->setData(
$data);
1853 if (count(
$data) > 0) {
1854 $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
1855 $ilToolbar->addFormButton(
1856 $lng->
txt(
"insert_object_here"),
1859 $ilToolbar->addFormButton(
1869 if ($this->
object->getRefId() &&
1870 !$this->rbacsystem->checkAccess(
"visible,read", $this->
object->getRefId())) {
1880 parent::setColumnSettings($column_gui);
1883 $this->item_presentation
1888 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
1929 $new_type = $this->std_request->getNewType();
1931 $clone_source = $this->std_request->getCloneSource();
1934 $ilErr->raiseError($this->
lng->txt(
'permission_denied'));
1936 if (!$clone_source) {
1937 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
1941 if (!$ilAccess->checkAccess(
'write',
'', $clone_source, $new_type)) {
1942 $ilErr->raiseError($this->
lng->txt(
'permission_denied'));
1945 $options = $this->std_request->getCopyOptions();
1947 $result = $orig->cloneAllObject(
1957 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"object_duplicated"),
true);
1958 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $result[
'ref_id']);
1960 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"object_copy_in_progress"),
true);
1961 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id",
$ref_id);
1963 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
1971 $positions = $this->std_request->getPositions();
1972 $sorting->savePost($positions);
1973 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'cntr_saved_sorting'),
true);
1974 $this->
ctrl->redirect($this,
"editOrder");
1986 string $newName = null
1992 $newRef = $srcObj->cloneObject($dstRef)->getRefId();
1997 if (!is_null($newName)) {
1999 $newObj->setTitle($newName);
2004 $mapping[$newRef] = $srcRef;
2011 if ($child[
"type"] !==
'rolf') {
2012 $this->
cloneNodes($child[
"ref_id"], $newRef, $mapping);
2014 $mapping[$rolf[0][
"ref_id"]] = $child[
"ref_id"];
2045 int $a_course_ref_id
2049 $tree = $DIC->repositoryTree();
2054 foreach ($path_arr as
$data) {
2058 $path .= $data[
'title'];
2067 $this->content_style_gui
2068 ->redirectToObjectSettings();
2088 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'webdav_pwd_instruction'));
2096 $this->
lng->txt(
"mount_webfolder"),
2098 )->onClick(
"triggerWebDAVModal('$href'); return false;")->toToolbar();
2109 $this->
form->setFormAction($this->
ctrl->getFormAction($this));
2115 $this->
form->addItem($ipass);
2116 $this->
form->addCommandButton(
"savePassword", $this->
lng->txt(
"save"));
2117 $this->
form->addCommandButton(
'cancel', $this->
lng->txt(
'cancel'));
2119 $this->
form->setTitle($this->
lng->txt(
"chg_ilias_and_webfolder_password"));
2120 $this->
form->setFormAction($this->
ctrl->getFormAction($this));
2131 $ilUser->resetPassword($this->
form->getInput(
'new_password'), $this->
form->getInput(
'new_password'));
2132 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'webdav_pwd_instruction_success'),
true);
2149 $child_ref_id = $this->std_request->getChildRefId();
2150 $parent_ref_id = $this->std_request->getParentRefId();
2152 $item_data = $this->
object->getSubItems(
false,
false, $child_ref_id);
2157 if (isset($this->
object->items[
"sess"])) {
2158 $sess_data = $this->
object->items[
"sess"];
2167 if (in_array($child_ref_id, $event_items)) {
2168 foreach (($sess_data) as
$id) {
2170 foreach ($items as $event_item) {
2171 if ($event_item[
"child"] == $child_ref_id) {
2173 if ($parent_ref_id > 0) {
2174 $event_item[
"parent"] = $parent_ref_id;
2176 $html = $container_view->renderItem($event_item);
2184 foreach (($this->
object->items[
"_all"] ?? []) as
$id) {
2185 if ($id[
"child"] == $child_ref_id) {
2186 $html = $container_view->renderItem($id);
2208 $form->
setTitle($this->
lng->txt($this->object->getType() .
"_edit"));
2210 $this->initFormTitleDescription($form);
2227 $trans = $this->
object->getObjectTranslation();
2230 $title->setRequired(
true);
2235 if ($this->
getCreationMode() ===
false && count($trans->getLanguages()) > 1) {
2236 $languages = $this->domain->metadata()->getLOMLanguagesForSelectInputs();
2238 $this->
lng->txt(
"language") .
": " . $languages[$trans->getDefaultLanguage()] .
2239 ' <a href="' . $this->
ctrl->getLinkTargetByClass(
"ilobjecttranslationgui",
"") .
2240 '">» ' . $this->
lng->txt(
"obj_more_translations") .
'</a>' 2252 $title->setValue($trans->getDefaultTitle());
2253 $desc->setValue($trans->getDefaultDescription());
2262 array $a_sorting_settings
2269 $sort_inherit->setTitle(
2270 $this->
lng->txt(
'sort_inherit_prefix') .
2278 $sort_inherit->setInfo($this->
lng->txt(
'sorting_info_inherit'));
2279 $sort->addOption($sort_inherit);
2283 $this->
lng->txt(
'sorting_title_header'),
2286 $sort_title->setInfo($this->
lng->txt(
'sorting_info_title'));
2289 $sort->addOption($sort_title);
2293 $this->
lng->txt(
'sorting_creation_header'),
2296 $sort_activation->setInfo($this->
lng->txt(
'sorting_creation_info'));
2298 $sort->addOption($sort_activation);
2302 $sort_activation->setInfo($this->
lng->txt(
'crs_sort_timing_info'));
2304 $sort->addOption($sort_activation);
2308 $this->
lng->txt(
'sorting_manual_header'),
2311 $sort_manual->setInfo($this->
lng->txt(
'sorting_info_manual'));
2313 $sort->addOption($sort_manual);
2317 if (in_array(
$settings->getSortMode(), $a_sorting_settings)) {
2318 $sort->setValue((
string)
$settings->getSortMode());
2335 $item_list->
setInfo($this->
lng->txt(
'cont_item_list_info'));
2336 $lpres->addOption($item_list);
2339 $tile_view->
setInfo($this->
lng->txt(
'cont_tile_view_info'));
2340 $lpres->addOption($tile_view);
2345 foreach ($this->
object->getTileSizes() as $key =>
$txt) {
2347 $si->addOption($op);
2349 $tile_view->addSubItem($si);
2365 $val = ($form->
getInput(
'list_presentation') ===
"tile")
2372 (string) ((
int) $form->
getInput(
'tile_size'))
2384 if ($a_prefix ===
'manual') {
2385 $txt = $this->
lng->txt(
'sorting_new_items_direction');
2387 $txt = $this->
lng->txt(
'sorting_direction');
2392 $direction->setRequired(
true);
2396 $this->
lng->txt(
'sorting_asc'),
2399 $direction->addOption($asc);
2403 $this->
lng->txt(
'sorting_desc'),
2406 $direction->addOption($desc);
2420 array $a_sorting_settings
2423 $this->
lng->txt(
'sorting_new_items_position'),
2424 $a_prefix .
'_new_items_position' 2427 $position->setRequired(
true);
2431 $this->
lng->txt(
'sorting_new_items_at_top'),
2435 $position->addOption($new_top);
2439 $this->
lng->txt(
'sorting_new_items_at_bottom'),
2443 $position->addOption($new_bottom);
2447 $order =
new ilRadioGroupInputGUI($this->
lng->txt(
'sorting_new_items_order'), $a_prefix .
'_new_items_order');
2449 $order->setRequired(
true);
2454 $this->
lng->txt(
'sorting_title_header'),
2458 $order->addOption($new_title);
2464 $this->
lng->txt(
'sorting_creation_header'),
2468 $order->addOption($new_creation);
2474 $this->
lng->txt(
'crs_sort_activation'),
2478 $order->addOption($new_activation);
2493 switch ($form->
getInput(
'sorting')) {
2498 $settings->setSortDirection((
int) $form->
getInput(
'activation_sorting_direction'));
2501 $settings->setSortDirection((
int) $form->
getInput(
'creation_sorting_direction'));
2504 $settings->setSortNewItemsPosition($form->
getInput(
'manual_new_items_position'));
2521 $this->tabs_gui->activateTab(
'trash');
2523 $this->
lng->loadLanguageModule(
'cont');
2527 $trash_table->
init();
2528 $trash_table->parse();
2530 $trash_table->setFilterCommand(
'trashApplyFilter');
2531 $trash_table->setResetCommand(
'trashResetFilter');
2549 $trash_table->
init();
2550 $trash_table->resetOffset();
2551 if ($action_reset) {
2552 $trash_table->resetFilter();
2554 if ($action_apply) {
2555 $trash_table->writeFilterToSession();
2564 $ru->removeObjectsFromSystem($this->std_request->getTrashIds());
2565 $this->
ctrl->redirect($this,
"trash");
2570 $this->tabs_gui->activateTab(
'trash');
2573 $ru->restoreToNewLocation();
2582 $ru->restoreObjects(
2583 $this->requested_ref_id,
2584 $this->std_request->getTrashIds()
2586 $this->
ctrl->redirect($this,
"trash");
2593 if (count($this->std_request->getTrashIds()) == 0) {
2594 $this->tpl->setOnScreenMessage(
'failure',
$lng->
txt(
"no_checkbox"),
true);
2595 $this->
ctrl->redirect($this,
"trash");
2599 $ru->confirmRemoveFromSystemObject($this->std_request->getTrashIds());
2609 $exp->setTypeWhiteList([
"root",
"cat",
"grp",
"crs",
"fold"]);
2613 if (in_array($this->clipboard->getCmd(), [
"link",
"cut"])) {
2614 $lso_types = array_keys($this->obj_definition->getSubObjects(
'lso'));
2615 $refs = $this->clipboard->getRefIds();
2617 foreach ($refs as $item_ref_id) {
2619 if (!in_array(
$type, $lso_types)) {
2624 $whitelist = $exp->getTypeWhiteList();
2625 $whitelist[] =
'lso';
2626 $exp->setTypeWhiteList($whitelist);
2630 if ($cmd ===
"link") {
2631 $exp->setSelectMode(
"nodes",
true);
2633 $exp->setSelectMode(
"nodes[]",
false);
2640 $this->
ctrl->setReturn($this,
"");
2656 $request = $DIC->http()->request();
2658 $filter = $filter_service->util()->getFilterForRefId(
2660 $DIC->ctrl()->getLinkTarget($this,
"render",
"",
true),
2664 $filter_data = $DIC->uiService()->filter()->getData($filter);
2666 $this->container_user_filter = $filter_service->userFilter($filter_data);
2667 $this->ui_filter = $filter;
2673 if (!is_null($this->ui_filter)) {
2677 $main_tpl->setFilter(
$renderer->render($this->ui_filter));
2680 "filter_show_empty",
2691 $this->tabs_gui->addTab(
2693 $this->
lng->txt(
'view'),
2694 $this->
ctrl->getLinkTarget($this,
'view')
2699 $this->tabs_gui->addTab(
2701 $this->
lng->txt(
'trash'),
2702 $this->
ctrl->getLinkTarget($this,
'trash')
2706 $this->tabs_gui->addTab(
2708 $this->
lng->txt(
'perm_settings'),
2709 $this->
ctrl->getLinkTargetByClass(
ilContainerUserFilter $container_user_filter
printToStdout(string $part=self::DEFAULT_BLOCK, bool $has_tabs=true, bool $skip_main_menu=false)
parseCurrentBlock(string $part=ilGlobalTemplateInterface::DEFAULT_BLOCK)
moveTree(int $a_source_id, int $a_target_id, int $a_location=self::POS_LAST_NODE)
Move Tree Implementation public.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilObjectDefinition $obj_definition
static getStyleSheetLocation(string $mode="output", string $a_css_name="")
get full style sheet file name (path inclusive) of current user
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ILIAS Container Content ItemPresentationManager $item_presentation
redrawListItemObject()
Redraw a list item (ajax)
initAndDisplayMoveIntoObjectObject()
ilObjectDataCache $obj_data_cache
adjustMovedObjectPermissions(int $ref_id, int $old_parent)
Adjust permissions of moved objects.
enableAdministrationPanelObject()
cloneNodes(int $srcRef, int $dstRef, array &$mapping, string $newName=null)
Recursively clones all nodes of the RBAC tree.
clearObject()
clear clipboard and go back to last object
getNodeData(int $a_node_id, ?int $a_tree_pk=null)
get all information of a node.
redirectByClass( $a_class, string $a_cmd=null, string $a_anchor=null, bool $is_async=false)
const SORT_NEW_ITEMS_POSITION_TOP
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
saveSortingSettings(ilPropertyFormGUI $form)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
renderBlockAsynchObject()
render the object
special template class to simplify handling of ITX/PEAR
StandardGUIRequest $std_request
static getItemsByEvent(int $event_id)
Get session material / event items.
string $requested_redirectSource
Class ilDownloadContainerFilesBackgroundTask.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setOnScreenMessage(string $type, string $a_txt, bool $a_keep=false)
Set a message to be displayed to the user.
getCmd(string $fallback_command=null)
initSortingDirectionForm(ilContainerSortingSettings $sorting_settings, ilRadioOption $element, string $a_prefix)
Add sorting direction.
prepareOutput(bool $show_sub_objects=true)
initAndDisplayCopyIntoMultipleObjectsObject()
Interface Observer Contains several chained tasks and infos about them.
getTreeSelectorGUI(string $cmd)
addMessageRow(ilTemplate $a_tpl, string $a_message, string $a_type)
getChilds(int $a_node_id, string $a_order="", string $a_direction="ASC")
get child nodes of given node
cloneAllObject()
Clone all object Overwritten method for copying container objects.
allowBlocksMoving()
Standard is to allow blocks moving.
trashObject()
Show trash content of object.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getDidacticTemplateVar(string $type)
Get didactic template setting from creation screen.
trashHandleFilter(bool $action_apply, bool $action_reset)
setAdminCommands(bool $a_admincommands)
confirmRemoveFromSystemObject()
loadLanguageModule(string $a_module)
Load language module.
createObject()
create new object form
enableMultiDownloadObject()
setVariable(string $variable, $value='')
Sets the given variable to the given value.
ilContainerFilterService $container_filter_service
returnToParent(object $a_gui_obj, string $a_anchor=null)
static _getItemsOfContainer(int $a_ref_id)
setStyleId(int $a_styleid)
initAndDisplayLinkIntoMultipleObjectsObject()
getPathFull(int $a_endnode_id, int $a_startnode_id=0)
get path from a given startnode to a given endnode if startnode is not given the rootnode is startnod...
isActiveAdministrationPanel()
ClipboardManager $clipboard
static _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
static _appendNumberOfCopyToFilename($a_file_name, $nth_copy=null)
Appends the text " - Copy" to a filename in the language of the current user.
static _lookupObjId(int $ref_id)
ModeManager $mode_manager
Parent class of all container content GUIs.
isGrandChild(int $a_startnode_id, int $a_querynode_id)
checks if a node is in the path of an other node
static getASCIIFilename(string $a_filename)
initFormPasswordInstruction()
Init password form.
getItemPresentation( $include_empty_blocks=true, ?string $lang=null)
static gatherFaPa(int $ref_id, array $role_ids, bool $add_action=false)
checkAccess(string $a_operations, int $a_ref_id, string $a_type="")
checkAccess represents the main method of the RBAC-system in ILIAS3 developers want to use With this ...
static _lookupSortMode(int $a_obj_id)
touchBlock(string $block)
pasteObject()
paste object from clipboard to current place Depending on the chosen command the object(s) are linked...
getChildsByType(int $a_node_id, string $a_type)
get child nodes of given node by object type
Provides fluid interface to RBAC services.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
editStylePropertiesObject()
static lookupTemplateId(int $a_ref_id)
static _existsAndNotEmpty(string $a_parent_type, int $a_id, string $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages) ...
ilComponentFactory $component_factory
const SORT_NEW_ITEMS_POSITION_BOTTOM
setVariable($variable, $value='')
Sets a variable value.
ilGlobalTemplateInterface $tpl
static _lookupTitle(int $obj_id)
setContent(string $a_html)
Sets content for standard template.
undeleteObject()
Get objects back from trash.
getParentNodeData(int $a_node_id)
get data of parent node from tree and object_data
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
showPasswordInstructionObject(bool $a_init=true)
addStandardContainerSubTabs(bool $a_include_view=true)
Add standard container subtabs for view, manage, oderdering and text/media editor link...
static _exists(string $a_parent_type, int $a_id, string $a_lang="", bool $a_no_cache=false)
Checks whether page exists.
linkObject()
create an new reference of an object in tree it's like a hard link of unix
Column user interface class.
ILIAS Style Content GUIService $content_style_gui
setColumnSettings(ilColumnGUI $column_gui)
const SORT_NEW_ITEMS_ORDER_CREATION
ServerRequestInterface $request
renderer()
Get a renderer for UI components.
allowBlocksConfigure()
Standard is to allow blocks configuration.
Class ilObjectGUI Basic methods of all Output classes.
static _recordReadEvent(string $a_type, int $a_ref_id, int $obj_id, int $usr_id, bool $isCatchupWriteEvents=true, $a_ext_rc=null, $a_ext_time=null)
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
getParentRoleIds(int $a_endnode_id, bool $a_templates=false)
Get an array of parent role ids of all parent roles, if last parameter is set true you get also all p...
static getInstance(int $obj_id)
static _isFinished(int $a_copy_id)
setBackTarget(string $a_title, string $a_target, string $a_frame="")
Repository GUI Utilities.
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
static _lookupObjectId(int $ref_id)
static _recordWriteEvent(int $obj_id, int $usr_id, string $action, ?int $parent_obj_id=null)
Records a write event.
static _adjustMovedObjectConditions(int $a_ref_id)
In the moment it is not allowed to create preconditions on objects that are located outside of a cour...
setItemPresentationManager(ItemPresentationManager $item_presentation)
cancelMoveLinkObject()
Cancel move|link empty clipboard and return to parent.
Manages items in repository clipboard.
getParentId(int $a_node_id)
get parent id of given node
clearTargets()
clear all targets
setBlockProperty(string $a_block_type, string $a_property, string $a_value)
This function is supposed to be used for block type specific properties, that should be passed to ilB...
static getSyntaxStylePath()
initManualSortingOptionForm(ilContainerSortingSettings $settings, ilRadioOption $element, string $a_prefix, array $a_sorting_settings)
Add manual sorting options.
copyObject()
Copy object(s) out from a container and write the information to clipboard It is not possible to copy...
disableAdministrationPanelObject()
saveListPresentation(ilPropertyFormGUI $form)
static showMemberViewSwitch(int $a_ref_id)
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
static _writeContainerSetting(int $a_id, string $a_keyword, string $a_value)
const SORT_NEW_ITEMS_ORDER_ACTIVATION
setCurrentBlock(string $part=self::DEFAULT_BLOCK)
Sets the template to the given block.
setCurrentBlock(string $part=ilGlobalTemplateInterface::DEFAULT_BLOCK)
buildAddNewItemElements(array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)
static add(int $action, int $ref_id, array $diff, bool $source_ref_id=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setPermanentLink(string $a_type, ?int $a_id, string $a_append="", string $a_target="", string $a_title="")
Generates and sets a permanent ilias link.
form( $class_path, string $cmd, string $submit_caption="")
Render add new item selector.
initListPresentationForm(ilPropertyFormGUI $form)
Add list presentation settings to form.
getSortNewItemsPosition()
addAvailabilityPeriodButtonToToolbar(ilToolbarGUI $toolbar)
performPasteIntoMultipleObjectsObject()
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
addImportButtonToToolbar()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Explorer class that works on tree objects (Services/Tree)
__construct(Container $dic, ilPlugin $plugin)
const SORT_DIRECTION_DESC
static lookupSortModeFromParentContainer(int $a_obj_id)
This class represents a text area property in a property form.
static _getInstance(int $a_obj_id)
static sortModeToString(int $a_sort_mode)
Get string representation of sort mode.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
bool $multi_download_enabled
restoreToNewLocationObject(ilPropertyFormGUI $form=null)
cutObject()
cut object(s) out from a container and write the information to clipboard public ...
ilAppEventHandler $app_event_handler
ILIAS Container InternalGUIService $gui
Class ilContainerGUI This is a base GUI class for all container objects in ILIAS: root folder...
getCreatableObjectTypes()
getOnLoadCodeForAsynch()
Get js onload code for ajax calls.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
factory()
Get the factory that crafts UI components.
Class ilRbacAdmin Core functions for role based access control.
showAdministrationPanel()
getUriToMountInstructionModalByRef(int $a_ref_id)
static _buildPath(int $a_ref_id, int $a_course_ref_id)
build path
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getSubTree(array $a_node, bool $a_with_data=true, array $a_type=[])
get all nodes in the subtree under specified node
parseCurrentBlock(string $block_name=self::DEFAULT_BLOCK)
Parses the given block.
static _lookupType(int $id, bool $reference=false)
addHeaderRow(ilTemplate $a_tpl, string $a_type, bool $a_show_image=true)
static _catchupWriteEvents(int $obj_id, int $usr_id, ?string $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
const SORT_NEW_ITEMS_ORDER_TITLE
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
ILIAS Container InternalDomainService $domain
keepObjectsInClipboardObject()
initEditCustomForm(ilPropertyFormGUI $a_form)
Add custom fields to update form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
modifyItemGUI(ilObjectListGUI $a_item_list_gui, array $a_item_data)
cancelPageContentObject()
ILIAS Style Content DomainService $content_style_domain