22use Psr\Http\Message\ServerRequestInterface;
69 public const CMD_EDIT = Capabilities::EDIT_SETTINGS->value;
91 protected \ILIAS\UI\Component\Input\Factory
$inputs;
101 public function __construct(
int $a_id = 0,
int $a_id_type = self::REPOSITORY_NODE_ID,
int $a_parent_node_id = 0)
105 $this->file_service_settings =
$DIC->fileServiceSettings();
106 $this->
user = $DIC->user();
107 $this->
lng = $DIC->language();
109 $this->
ui = $DIC->ui();
110 $this->storage =
$DIC->resourceStorage();
113 $this->general_settings =
new General();
115 $this->obj_service =
$DIC->object();
118 $this->inputs =
$DIC->ui()->factory()->input();
119 $this->
renderer = $DIC->ui()->renderer();
120 $this->request =
$DIC->http()->request();
121 $this->data_factory =
new Factory();
123 $this->lom_services =
$DIC->learningObjectMetadata();
131 $DIC[
'static_url.uri_builder']
134 $capability_context =
new Context(
137 ($a_id_type === self::WORKSPACE_NODE_ID) ? Context::CONTEXT_WORKSPACE : Context::CONTEXT_REPO
140 $this->capabilities = $capability_builder->get($capability_context);
148 $this->object->getRefId(),
149 $this->object->getId(),
160 $this->user->getId(),
182 $ilNavigationHistory =
$DIC[
'ilNavigationHistory'];
183 $ilUser =
$DIC[
'ilUser'];
184 $ilTabs =
$DIC[
'ilTabs'];
187 $next_class = $this->
ctrl->getNextClass($this);
188 $cmd = $this->
ctrl->getCmd();
193 $this->id_type === self::REPOSITORY_NODE_ID
194 && $this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()
197 $ilNavigationHistory->addItem(
199 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri(),
208 $suffix =
$info->getSuffix();
209 $path_file_icon = $this->icon_repo->getIconFilePathBySuffix($suffix);
210 $this->tpl->setTitleIcon($path_file_icon);
212 switch ($next_class) {
213 case strtolower(ilInfoScreenGUI::class):
217 case 'ilobjectmetadatagui':
218 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
219 $ilErr->raiseError($this->
lng->txt(
'permission_denied'),
$ilErr->WARNING);
222 $ilTabs->activateTab(
"id_meta");
229 $this->
ctrl->forwardCommand($md_gui);
233 case 'ilpermissiongui':
234 $this->tabs_gui->activateTab(
'perm_settings');
236 $this->
ctrl->forwardCommand($perm_gui);
240 $ilTabs->activateTab(
"export");
242 $exp_gui->addFormat();
243 $this->
ctrl->forwardCommand($exp_gui);
246 case 'ilobjectcopygui':
249 $this->
ctrl->forwardCommand($cp);
253 case "ilworkspaceaccessgui":
254 $ilTabs->activateTab(
"id_permissions");
256 $this->
ctrl->forwardCommand($wspacc);
259 case "ilcommonactiondispatchergui":
261 $this->
ctrl->forwardCommand($gui);
264 case "illearningprogressgui":
265 $ilTabs->activateTab(
'learning_progress');
266 $user_id = $this->request_wrapper->has(
'user_id')
267 ? $this->request_wrapper->retrieve(
'user_id', $this->
refinery->kindlyTo()->int())
271 $this->
object->getRefId(),
274 $this->
ctrl->forwardCommand($new_gui);
275 $this->tabs_gui->setTabActive(
'learning_progress');
277 case strtolower(ilFileVersionsGUI::class):
278 $this->tabs_gui->activateTab(
"id_versions");
280 if (!$this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
281 $this->
error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
285 $this->
ctrl->forwardCommand(
292 case strtolower(ilObjFileUploadHandlerGUI::class):
295 case strtolower(ilWOPIEmbeddedApplicationGUI::class):
296 $capability = match($cmd) {
303 if ($capability ===
null || !$capability->isUnlocked()) {
304 $this->
error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
307 $action = match ($capability->getCapability()) {
308 Capabilities::VIEW_EXTERNAL => $this->action_repo->getViewActionForSuffix($suffix),
309 Capabilities::EDIT_EXTERNAL => $this->action_repo->getEditActionForSuffix($suffix),
313 $this->tabs_gui->activateTab(
'content');
316 if ($this->id_type === Context::CONTEXT_WORKSPACE) {
323 $cap = $this->capabilities->getBestOf(
324 Capabilities::MANAGE_VERSIONS,
325 Capabilities::VIEW_EXTERNAL,
326 Capabilities::INFO_PAGE
328 $goto_link = (string) $cap->getUri();
332 $this->storage->manage()->find($this->object->getResourceId()),
336 $capability->getCapability() === Capabilities::VIEW_EXTERNAL,
337 $this->lng->getLangKey()
340 $this->
ctrl->forwardCommand(
347 case strtolower(ilFileCommonSettingsGUI::class):
349 $this->tabs_gui->activateSubTab(
"service_settings");
350 $this->
ctrl->forwardCommand(
356 $this->object_service
363 if ($this->id_type === self::WORKSPACE_NODE_ID) {
365 $ilTabs->clearTargets();
367 if (empty($cmd) || $cmd ===
'render') {
368 $cmd = Capabilities::INFO_PAGE->value;
371 parent::executeCommand();
376 if (empty($cmd) || $cmd ===
'render') {
377 $cmd = Capabilities::INFO_PAGE->value;
403 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
404 $tpl->
setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
406 $accordion->addItem(
$tpl->
get(), $this->ui->renderer()->render($form));
415 if (!in_array($form_type, [self::CFORM_NEW, self::CFORM_CLONE, self::CFORM_IMPORT],
true)) {
418 $title = $form->getTitle();
421 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
422 $tpl->setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
424 $accordion->addItem($tpl->get(), $form->getHTML());
433 return $this->initUploadForm();
439 return $this->
lng->txt(
'upload_files');
447 $this->
ctrl->setParameterByClass(self::class,
'new_type', $this->getType());
448 $this->
ctrl->setParameterByClass(
450 self::PARAM_UPLOAD_ORIGIN,
451 self::UPLOAD_ORIGIN_STANDARD
455 $inputs[self::PARAM_FILES] = $this->
ui->factory()->input()->field()->file(
456 $this->upload_handler,
457 $this->
lng->txt(
'upload_files'),
459 $this->ui->factory()->input()->field()->group([
460 self::PARAM_TITLE => $this->ui->factory()->input()->field()->text(
461 $this->lng->txt(
'title')
462 )->withAdditionalTransformation(
463 $this->getEmptyStringToNullTransformation()
465 self::PARAM_DESCRIPTION => $this->ui->factory()->input()->field()->textarea(
466 $this->lng->txt(
'description')
467 )->withAdditionalTransformation(
468 $this->getEmptyStringToNullTransformation()
472 self::UPLOAD_MAX_FILES
473 )->withRequired(
true);
475 if ($this->lom_services->copyrightHelper()->isCopyrightSelectionActive()) {
476 $inputs[self::PARAM_COPYRIGHT_ID] = $this->getCopyrightSelectionInput(
'set_license_for_all_files');
479 return $this->
ui->factory()->input()->container()->form()->standard(
480 $this->
ctrl->getFormActionByClass(self::class, self::CMD_UPLOAD_FILES),
482 )->withSubmitLabel($this->
lng->txt(
'upload_files'));
490 $origin = ($this->request_wrapper->has(self::PARAM_UPLOAD_ORIGIN)) ?
491 $this->request_wrapper->retrieve(
492 self::PARAM_UPLOAD_ORIGIN,
493 $this->refinery->kindlyTo()->string()
494 ) : self::UPLOAD_ORIGIN_STANDARD;
496 if (self::UPLOAD_ORIGIN_DROPZONE === $origin) {
498 $dropzone = $dropzone->getDropzone()->withRequest($this->request);
499 $data = $dropzone->getData();
501 $form = $this->initUploadForm()->withRequest($this->request);
502 $data = $form->getData();
504 $files =
$data[self::PARAM_FILES] ??
$data[0] ??
null;
507 $form = $this->initUploadForm()->withRequest($this->request);
508 $this->tpl->setContent($this->getCreationFormsHTML($form));
516 $this->file_service_settings
520 foreach ($files as $file_data) {
521 $rid = $this->storage->manage()->find($file_data[0]);
526 $file_data[1][self::PARAM_TITLE] ??
null,
527 $file_data[1][self::PARAM_DESCRIPTION] ??
null,
528 $data[self::PARAM_COPYRIGHT_ID] ??
null
530 }
catch (Throwable $t) {
532 if (
null !== $this->log) {
533 $this->log->error($t->getMessage() .
": " . $t->getTraceAsString());
540 $this->
ui->mainTemplate()->setOnScreenMessage(
542 $this->
lng->txt(
'could_not_create_file_objs'),
547 if ($processor->getInvalidFileNames() !== []) {
548 $this->
ui->mainTemplate()->setOnScreenMessage(
551 $this->
lng->txt(
'file_upload_info_file_with_critical_extension'),
552 implode(
', ', $processor->getInvalidFileNames())
558 $link = match ($this->id_type) {
559 self::WORKSPACE_NODE_ID => $this->
ctrl->getLinkTargetByClass(ilObjWorkspaceRootFolderGUI::class),
560 default => ilLink::_getLink($this->requested_ref_id),
563 $this->
ctrl->redirectToURL($link);
570 $backup_node_id = $this->node_id;
571 parent::putObjectInTree($obj, $parent_node_id);
572 $this->node_id = $backup_node_id;
579 public function update(): void
582 $form = $this->initPropertiesForm();
583 $form = $form->withRequest($this->request);
589 $title_and_description =
$inputs[
'file_info'][
'title_and_description'];
591 $title = $title_and_description->getTitle();
593 $filename = $this->
object->getFileName();
594 if (trim((
string) $title) ===
'') {
597 $title = $this->
object->appendSuffixToTitle($title,
$filename);
599 $this->
object->handleChangedObjectTitle($title);
601 $description = $title_and_description->getLongDescription();
602 $this->
object->setDescription($description);
605 $this->
object->getObjectProperties()->storePropertyTitleAndDescription($updated_title_and_description);
607 $this->
object->setImportantInfo($inputs[
'file_info'][
'important_info']);
608 $this->
object->setRating($inputs[
'obj_features'][
'rating'] ??
false);
609 $this->
object->setOnclickMode((
int) $inputs[
'file_info'][
'on_click_action']);
610 $this->
object->update();
612 $this->
object->getObjectProperties()->storePropertyIsOnline($inputs[
'availability'][
'online_status']);
614 if ((
$inputs[
'presentation'][
'tile_image'] ??
null) !==
null) {
615 $this->
object->getObjectProperties()->storePropertyTileImage($inputs[
'presentation'][
'tile_image']);
619 if (!empty(
$data[
"name"])) {
621 $ilUser =
$DIC[
'ilUser'];
630 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_obj_modified"),
true);
631 $this->
ctrl->redirectByClass(self::class, self::CMD_EDIT);
640 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
641 $ilErr->raiseError($this->
lng->txt(
"msg_no_perm_write"));
644 $this->initSettingsTab();
646 $form = $this->initPropertiesForm();
651 $this->tpl->setContent($this->
renderer->render($form));
656 $title_and_description = $this->
object->getObjectProperties()->getPropertyTitleAndDescription()->toForm(
658 $this->
ui->factory()->input()->field(),
662 $important_info = $this->inputs->field()->markdown(
664 $this->
lng->txt(
'important_info'),
665 $this->lng->txt(
'important_info_byline')
667 $this->
object->getImportantInfo() ??
""
670 $on_click_action = $this->inputs->field()->radio(
671 $this->
lng->txt(
'on_click_action')
674 $this->
lng->txt(
'file_action_download'),
675 $this->lng->txt(
'file_action_download_info'),
678 $this->
lng->txt(
'file_action_show'),
679 $this->lng->txt(
'file_action_show_info'),
681 (
string) $this->
object->getOnClickMode()
684 $input_groups = array_filter([
685 "title_and_description" => $title_and_description,
686 "important_info" => $important_info,
687 "on_click_action" => $on_click_action
688 ],
static fn(
FormInput $input):
bool =>
null !== $input);
690 $file_info_section = $this->inputs->field()->section(
692 $this->
lng->txt(
'file_info')
695 $online_status = $this->
object->getObjectProperties()->getPropertyIsOnline()->toForm(
697 $this->
ui->factory()->input()->field(),
700 $availability_section = $this->inputs->field()->section(
701 [
"online_status" => $online_status],
702 $this->
lng->txt(
'rep_activation_availability')
705 $presentation_section =
null;
706 if ($this->id_type === self::REPOSITORY_NODE_ID) {
707 $tile_image = $this->
object->getObjectProperties()->getPropertyTileImage()->toForm(
709 $this->
ui->factory()->input()->field(),
712 $presentation_section = $this->inputs->field()->section(
713 [
"tile_image" => $tile_image],
714 $this->
lng->txt(
'settings_presentation_header')
718 $additional_features_section =
null;
719 if ($this->id_type === self::REPOSITORY_NODE_ID) {
720 $this->
lng->loadLanguageModule(
'rating');
722 $enable_rating = $this->inputs->field()->checkbox(
723 $this->
lng->txt(
'rating_activate_rating'),
724 $this->lng->txt(
'rating_activate_rating_info')
726 $this->
object->hasRating()
728 $additional_features_section = $this->inputs->field()->section(
729 [
"rating" => $enable_rating],
730 $this->
lng->txt(
'obj_features')
734 $inputs = array_filter([
735 "file_info" => $file_info_section,
736 "availability" => $availability_section,
737 "presentation" => $presentation_section,
738 "obj_features" => $additional_features_section
739 ],
static fn(?
Section $input):
bool =>
null !== $input);
741 return $this->inputs->container()->form()->standard(
742 $this->
ctrl->getLinkTargetByClass(self::class,
'update'),
749 $hist_entry_id = $this->request_wrapper->has(
'hist_id')
750 ? $this->request_wrapper->retrieve(
'hist_id', $this->
refinery->kindlyTo()->int())
754 $this->
object->sendFile($hist_entry_id);
757 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
759 $this->recordReadEvent();
761 $this->
object->sendFile($hist_entry_id);
763 $this->
error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
766 $this->
error->raiseError($e->getMessage(), $this->error->MESSAGE);
777 $this->
ctrl->redirectToURL(
778 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri()
783 $this->
ctrl->redirectToURL(
784 (
string) $this->capabilities->get(Capabilities::FORCED_INFO_PAGE)->getUri()
790 $this->
ctrl->redirectToURL(
791 (
string) $this->capabilities->get(Capabilities::MANAGE_VERSIONS)->getUri()
797 $this->
ctrl->redirectToURL(
798 (
string) $this->capabilities->get(Capabilities::UNZIP)->getUri()
804 $this->
ctrl->redirectToURL(
805 (
string) $this->capabilities->get(Capabilities::EDIT_EXTERNAL)->getUri()
810 $this->
ctrl->redirectToURL(
811 (
string) $this->capabilities->get(Capabilities::VIEW_EXTERNAL)->getUri()
820 $this->tabs_gui->activateTab(
"id_info");
822 if (!$this->capabilities->get(Capabilities::INFO_PAGE)->isUnlocked()) {
823 $GLOBALS[
'DIC'][
'ilErr']->raiseError(
824 $this->
lng->txt(
"msg_no_perm_read"),
832 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_completed');
834 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_not_completed');
837 $this->
ui->factory()->button()->standard(
839 $this->ctrl->getLinkTarget($this,
'toggleLearningProgress')
845 if ($this->capabilities->get(Capabilities::EDIT_EXTERNAL)->isUnlocked()) {
846 $external_editor = $this->
ui->factory()
849 $this->
lng->txt(
'open_external_editor'),
850 $this->ctrl->getLinkTargetByClass(
851 \ilWOPIEmbeddedApplicationGUI::class,
855 $this->
toolbar->addComponent($external_editor);
858 $info = $this->buildInfoScreen(
false);
865 $this->
user->getId(),
871 $lp_marks =
new ilLPMarks($this->obj_id, $this->
user->getId());
877 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_obj_modified'),
true);
878 $this->
ctrl->redirect($this, Capabilities::INFO_PAGE->value);
886 $info->enablePrivateNotes();
888 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
893 $info->enableNewsEditing(
false);
894 if ($this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
896 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
898 if ($enable_internal_rss) {
899 $info->setBlockProperty(
"news",
"settings",
true);
900 $info->setBlockProperty(
"news",
"public_notifications_option",
true);
904 $obj_id = $this->
object->getId();
911 $this->call_by_reference
913 $record_gui->setInfoObject(
$info);
914 $record_gui->parse();
919 $important_info = $this->
object->getImportantInfo();
920 if (!empty($important_info)) {
922 $markdown_to_html = $group->markdown()->toHTML();
924 $info->addSection($this->
lng->txt(
"important_info"));
925 $info->addProperty(
"", $markdown_to_html->transform($important_info));
929 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
931 if ($this->id_type === self::REPOSITORY_NODE_ID) {
934 $download_target = rtrim(ILIAS_HTTP_PATH,
'/') .
'/' . $this->
ctrl->getLinkTarget(
939 $url = $this->data_factory->uri($download_target);
940 $link = $this->data_factory->link($this->
lng->txt(
'file_download'),
$url);
941 $download_launcher = $this->
ui->factory()->launcher()->inline($link);
943 if (empty($important_info)) {
944 $info->addSection(
"");
947 $info->addProperty(
"", $this->
renderer->render($download_launcher));
951 $info->addMetaDataSections($this->
object->getId(), 0, $this->object->getType());
955 if (!$kiosk_mode && ($this->
access->checkAccess(
"write",
"", $this->ref_id) ||
956 $this->access->checkAccess(
"edit_permissions",
"", $this->ref_id))) {
959 foreach ($rs as $r) {
960 if ($this->tree->isInTree($r)) {
964 if (count($refs) > 1) {
966 foreach ($refs as $r) {
968 $cont_loc->addContextItems($r,
true);
969 $links .= $sep . $cont_loc->getHTML();
974 $this->
lng->txt(
"res_links"),
975 '<div class="small">' . $links .
'</div>'
981 $info->addSection($this->
lng->txt(
"file_info"));
983 $file_info_for_users = $this->getFileInfoForUsers();
984 foreach ($file_info_for_users as $file_info_entry_key => $file_info_entry_value) {
985 if ($file_info_entry_value !==
null) {
986 $info->addProperty($file_info_entry_key, $file_info_entry_value);
990 $file_info = $this->getAllFileInfoForCurrentUser();
991 foreach ($file_info as $file_info_block) {
992 foreach ($file_info_block as $file_info_entry_key => $file_info_entry_value) {
993 if ($file_info_entry_value !==
null) {
994 $info->addProperty($file_info_entry_key, $file_info_entry_value);
1000 $info->hideFurtherSections(
false);
1010 $ilHelp =
$DIC[
'ilHelp'];
1013 $this->
ctrl->setParameter($this,
"ref_id", $this->node_id);
1015 if ((
$c = $this->capabilities->get(Capabilities::VIEW_EXTERNAL)) &&
$c->isUnlocked()) {
1016 $this->tabs_gui->addTab(
1018 $this->
lng->txt(
"content"),
1023 if ((
$c = $this->capabilities->get(Capabilities::MANAGE_VERSIONS)) &&
$c->isUnlocked()) {
1024 $this->tabs_gui->addTab(
1026 $this->
lng->txt(self::CMD_VERSIONS),
1031 if ((
$c = $this->capabilities->get(Capabilities::INFO_PAGE)) &&
$c->isUnlocked()) {
1032 $this->tabs_gui->addTab(
1034 $this->
lng->txt(
"info_short"),
1035 $this->ctrl->getLinkTargetByClass([
"ilobjfilegui",
"ilinfoscreengui"],
"showSummary")
1039 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1040 $this->tabs_gui->addTab(
1042 $this->
lng->txt(
"settings"),
1043 $this->ctrl->getLinkTarget($this, self::CMD_EDIT)
1048 $this->tabs_gui->addTab(
1049 'learning_progress',
1050 $this->
lng->txt(
'learning_progress'),
1051 $this->ctrl->getLinkTargetByClass([self::class,
'illearningprogressgui'],
'')
1056 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1058 $mdtab = $mdgui->getTab();
1060 $this->tabs_gui->addTab(
1062 $this->
lng->txt(
"meta_data"),
1069 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1070 $this->tabs_gui->addTab(
1072 $this->
lng->txt(
"export"),
1073 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
1078 if ($this->
access->checkAccess(
'edit_permission',
'', $this->ref_id)) {
1079 $this->tabs_gui->addTarget(
1081 $this->
ctrl->getLinkTargetByClass([self::class, ilPermissionGUI::class],
"perm"),
1082 [
"perm",
"info",
"owner"],
1083 ilPermissionGUI::class
1090 $this->tabs_gui->activateTab(
"settings");
1092 $this->tabs_gui->addSubTab(
1094 $this->
lng->txt(
'settings'),
1095 $this->ctrl->getLinkTargetByClass(self::class, self::CMD_EDIT)
1098 $this->tabs_gui->addSubTab(
1100 $this->
lng->txt(
'service_settings'),
1105 $this->tabs_gui->activateSubTab(
"file_settings");
1108 public static function _goto($a_target, $a_additional =
null): void
1111 $main_tpl =
$DIC->ui()->mainTemplate();
1114 $ilAccess =
$DIC[
'ilAccess'];
1116 if ($a_additional && str_ends_with((
string) $a_additional,
"wsp")) {
1121 if ($a_additional && str_ends_with((
string) $a_additional,
"download")) {
1127 if ($ilAccess->checkAccess(
"visible",
"", $a_target)
1128 || $ilAccess->checkAccess(
"read",
"", $a_target)) {
1131 $main_tpl->setOnScreenMessage(
1134 $lng->txt(
"msg_no_perm_read_item"),
1151 $ilLocator =
$DIC[
'ilLocator'];
1153 if (is_object($this->
object)) {
1154 $ilLocator->addItem($this->
object->getTitle(), $this->ctrl->getLinkTarget($this,
""),
"", $this->node_id);
1161 $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
1167 [ilCommonActionDispatcherGUI::class, ilRatingGUI::class]
1184 if (!$this->
object instanceof
ilObjFile) {
1185 throw new ilFileException(
"Error: object is not of type ilObjFile or doesn't exist");
1188 return $this->object;
1193 return $this->stakeholder;
1198 return $this->general_settings;
1208 return $this->node_id;
1218 return $this->
ui->factory();
Provides fluid interface to RBAC services.
The scope of this class is split ilias-conform URI's into components.
Indicates that a file is missing or not found.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _getActivatedObjTypes()
get activated obj types
static _recordReadEvent(string $a_type, int $a_ref_id, int $obj_id, int $usr_id, $a_ext_rc=null, $a_ext_time=null)
static _recordWriteEvent(int $obj_id, int $usr_id, string $action, ?int $parent_obj_id=null)
Records a write event.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Class ilCtrl provides processing control methods.
Export User Interface Class.
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...
const LP_MODE_CONTENT_VISITED
static _updateStatus(int $a_obj_id, int $a_usr_id, ?object $a_obj=null, bool $a_percentage=false, bool $a_force_raise=false)
static _hasUserCompleted(int $a_obj_id, int $a_user_id)
Lookup user object completion.
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
static _tracProgress(int $a_user_id, int $a_obj_id, int $a_ref_id, string $a_obj_type='')
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getLogger(string $a_component_id)
Get component logger.
Component logger with individual log levels by component id.
static _getPermanentDownloadLink(int $ref_id)
Gets the permanent download link for the file.
GUI class for file objects.
LOMServices $lom_services
ServerRequestInterface $request
uploadFiles()
MUST be protected, since this is Called from ilObject2GUI when used in Personal Workspace.
ActionDBRepository $action_repo
const UPLOAD_ORIGIN_DROPZONE
initHeaderAction(?string $a_sub_type=null, ?int $a_sub_id=null)
Add header action menu.
addUIFormToAccordion(ilAccordionGUI $accordion, Standard $form, int $form_type)
const PARAM_UPLOAD_ORIGIN
getType()
Functions that must be overwritten.
putObjectInTree(ilObject $obj, ?int $parent_node_id=null)
Add object to tree at given position.
initCreateForm(string $new_type)
ILIAS UI Component Input Factory $inputs
const UPLOAD_ORIGIN_STANDARD
CapabilityCollection $capabilities
static _goto($a_target, $a_additional=null)
IconDatabaseRepository $icon_repo
ILIAS Refinery Factory $refinery
buildInfoScreen(bool $kiosk_mode)
infoScreenForward()
show information screen
General $general_settings
__construct(int $a_id=0, int $a_id_type=self::REPOSITORY_NODE_ID, int $a_parent_node_id=0)
Constructor.
ilObjectService $obj_service
ilFileServicesSettings $file_service_settings
ResourceStakeholder $stakeholder
addLegacyFormToAccordion(ilAccordionGUI $accordion, ilPropertyFormGUI $form, int $form_type)
addLocatorItems()
Functions to be overwritten.
UploadHandler $upload_handler
setTabs()
create tabs (repository/workspace switch)
Class ilObjFileProcessorInterface.
Class ilObjFileStakeholder.
const CLICK_MODE_DOWNLOAD
const CLICK_MODE_INFOPAGE
New implementation of ilObjectGUI.
executeCommand()
execute command
ilGlobalTemplateInterface $tpl
prepareOutput(bool $show_sub_objects=true)
GUI class for the workflow of copying objects.
static _gotoSharedWorkspaceNode(int $wsp_id)
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
addHeaderAction()
Add header action menu.
static _gotoRepositoryNode(int $ref_id, string $cmd="")
Class ilObject Basic functions for all objects.
static _getAllReferences(int $id)
get all reference ids for object ID
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
special template class to simplify handling of ITX/PEAR
static getGotoLink(int $a_node_id, int $a_obj_id, string $a_additional="")
Interface ResourceStakeholder.
setVariable(string $variable, $value='')
Sets the given variable to the given value.
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
An entity that renders components to a string output.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.
if(!file_exists('../ilias.ini.php'))
trait ilObjFileInfoProvider