23use Psr\Http\Message\ServerRequestInterface;
70 public const CMD_EDIT = Capabilities::EDIT_SETTINGS->value;
92 protected \ILIAS\UI\Component\Input\Factory
$inputs;
102 public function __construct(
int $a_id = 0,
int $a_id_type = self::REPOSITORY_NODE_ID,
int $a_parent_node_id = 0)
106 $this->file_service_settings =
$DIC->fileServiceSettings();
107 $this->
user = $DIC->user();
108 $this->
lng = $DIC->language();
110 $this->
ui = $DIC->ui();
111 $this->storage =
$DIC->resourceStorage();
114 $this->general_settings =
new General();
116 $this->obj_service =
$DIC->object();
119 $this->inputs =
$DIC->ui()->factory()->input();
120 $this->
renderer = $DIC->ui()->renderer();
121 $this->request =
$DIC->http()->request();
122 $this->data_factory =
new Factory();
124 $this->lom_services =
$DIC->learningObjectMetadata();
132 $DIC[
'static_url.uri_builder']
135 $capability_context =
new Context(
138 ($a_id_type === self::WORKSPACE_NODE_ID) ? Context::CONTEXT_WORKSPACE : Context::CONTEXT_REPO
141 $this->capabilities = $capability_builder->get($capability_context);
149 $this->user->getId(),
171 $ilNavigationHistory =
$DIC[
'ilNavigationHistory'];
172 $ilUser =
$DIC[
'ilUser'];
173 $ilTabs =
$DIC[
'ilTabs'];
176 $next_class = $this->
ctrl->getNextClass($this);
177 $cmd = $this->
ctrl->getCmd();
182 $this->id_type === self::REPOSITORY_NODE_ID
183 && $this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()
186 $ilNavigationHistory->addItem(
188 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri(),
197 $suffix =
$info->getSuffix();
198 $path_file_icon = $this->icon_repo->getIconFilePathBySuffix($suffix);
199 $this->tpl->setTitleIcon($path_file_icon);
201 switch ($next_class) {
202 case strtolower(ilInfoScreenGUI::class):
206 case 'ilobjectmetadatagui':
207 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
208 $ilErr->raiseError($this->
lng->txt(
'permission_denied'),
$ilErr->WARNING);
211 $ilTabs->activateTab(
"id_meta");
218 $this->
ctrl->forwardCommand($md_gui);
222 case 'ilpermissiongui':
223 $ilTabs->activateTab(
"id_permissions");
225 $this->
ctrl->forwardCommand($perm_gui);
229 $ilTabs->activateTab(
"export");
231 $exp_gui->addFormat();
232 $this->
ctrl->forwardCommand($exp_gui);
235 case 'ilobjectcopygui':
238 $this->
ctrl->forwardCommand($cp);
242 case "ilworkspaceaccessgui":
243 $ilTabs->activateTab(
"id_permissions");
245 $this->
ctrl->forwardCommand($wspacc);
248 case "ilcommonactiondispatchergui":
250 $this->
ctrl->forwardCommand($gui);
253 case "illearningprogressgui":
254 $ilTabs->activateTab(
'learning_progress');
255 $user_id = $this->request_wrapper->has(
'user_id')
256 ? $this->request_wrapper->retrieve(
'user_id', $this->
refinery->kindlyTo()->int())
260 $this->
object->getRefId(),
263 $this->
ctrl->forwardCommand($new_gui);
264 $this->tabs_gui->setTabActive(
'learning_progress');
266 case strtolower(ilFileVersionsGUI::class):
267 $this->tabs_gui->activateTab(
"id_versions");
269 if (!$this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
270 $this->
error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
276 case strtolower(ilObjFileUploadHandlerGUI::class):
279 case strtolower(ilWOPIEmbeddedApplicationGUI::class):
280 $capability = match($cmd) {
287 if ($capability ===
null || !$capability->isUnlocked()) {
288 $this->
error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
291 $action = match ($capability->getCapability()) {
292 Capabilities::VIEW_EXTERNAL => $this->action_repo->getViewActionForSuffix($suffix),
293 Capabilities::EDIT_EXTERNAL => $this->action_repo->getEditActionForSuffix($suffix),
297 $this->tabs_gui->activateTab(
'content');
300 if ($this->id_type === Context::CONTEXT_WORKSPACE) {
306 $goto_link = ilLink::_getLink($this->
object->getRefId());
310 $this->storage->manage()->find($this->object->getResourceId()),
314 $capability->getCapability() === Capabilities::VIEW_EXTERNAL,
315 $this->lng->getLangKey()
318 $this->
ctrl->forwardCommand(
325 case strtolower(ilFileCommonSettingsGUI::class):
327 $this->tabs_gui->activateSubTab(
"service_settings");
328 $this->
ctrl->forwardCommand(
334 $this->object_service
341 if ($this->id_type === self::WORKSPACE_NODE_ID) {
343 $ilTabs->clearTargets();
345 if (empty($cmd) || $cmd ===
'render') {
346 $cmd = Capabilities::INFO_PAGE->value;
349 parent::executeCommand();
354 if (empty($cmd) || $cmd ===
'render') {
355 $cmd = Capabilities::INFO_PAGE->value;
381 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
382 $tpl->
setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
384 $accordion->addItem(
$tpl->
get(), $this->ui->renderer()->render($form));
393 if (!in_array($form_type, [self::CFORM_NEW, self::CFORM_CLONE, self::CFORM_IMPORT],
true)) {
396 $title = $form->getTitle();
399 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
400 $tpl->setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
402 $accordion->addItem($tpl->get(), $form->getHTML());
411 return $this->initUploadForm();
417 return $this->
lng->txt(
'upload_files');
425 $this->
ctrl->setParameterByClass(self::class,
'new_type', $this->getType());
426 $this->
ctrl->setParameterByClass(
428 self::PARAM_UPLOAD_ORIGIN,
429 self::UPLOAD_ORIGIN_STANDARD
433 $inputs[self::PARAM_FILES] = $this->
ui->factory()->input()->field()->file(
434 $this->upload_handler,
435 $this->
lng->txt(
'upload_files'),
437 $this->ui->factory()->input()->field()->group([
438 self::PARAM_TITLE => $this->ui->factory()->input()->field()->text(
439 $this->lng->txt(
'title')
440 )->withAdditionalTransformation(
441 $this->getEmptyStringToNullTransformation()
443 self::PARAM_DESCRIPTION => $this->ui->factory()->input()->field()->textarea(
444 $this->lng->txt(
'description')
445 )->withAdditionalTransformation(
446 $this->getEmptyStringToNullTransformation()
450 self::UPLOAD_MAX_FILES
451 )->withRequired(
true);
453 if ($this->lom_services->copyrightHelper()->isCopyrightSelectionActive()) {
454 $inputs[self::PARAM_COPYRIGHT_ID] = $this->getCopyrightSelectionInput(
'set_license_for_all_files');
457 return $this->
ui->factory()->input()->container()->form()->standard(
458 $this->
ctrl->getFormActionByClass(self::class, self::CMD_UPLOAD_FILES),
460 )->withSubmitLabel($this->
lng->txt(
'upload_files'));
468 $origin = ($this->request_wrapper->has(self::PARAM_UPLOAD_ORIGIN)) ?
469 $this->request_wrapper->retrieve(
470 self::PARAM_UPLOAD_ORIGIN,
471 $this->refinery->kindlyTo()->string()
472 ) : self::UPLOAD_ORIGIN_STANDARD;
474 if (self::UPLOAD_ORIGIN_DROPZONE === $origin) {
476 $dropzone = $dropzone->getDropzone()->withRequest($this->request);
477 $data = $dropzone->getData();
479 $form = $this->initUploadForm()->withRequest($this->request);
480 $data = $form->getData();
482 $files =
$data[self::PARAM_FILES] ??
$data[0] ??
null;
485 $form = $this->initUploadForm()->withRequest($this->request);
486 $this->tpl->setContent($this->getCreationFormsHTML($form));
494 $this->file_service_settings
498 foreach ($files as $file_data) {
499 $rid = $this->storage->manage()->find($file_data[0]);
504 $file_data[1][self::PARAM_TITLE] ??
null,
505 $file_data[1][self::PARAM_DESCRIPTION] ??
null,
506 $data[self::PARAM_COPYRIGHT_ID] ??
null
508 }
catch (Throwable $t) {
510 if (
null !== $this->log) {
511 $this->log->error($t->getMessage() .
": " . $t->getTraceAsString());
518 $this->
ui->mainTemplate()->setOnScreenMessage(
520 $this->
lng->txt(
'could_not_create_file_objs'),
525 if ($processor->getInvalidFileNames() !== []) {
526 $this->
ui->mainTemplate()->setOnScreenMessage(
529 $this->
lng->txt(
'file_upload_info_file_with_critical_extension'),
530 implode(
', ', $processor->getInvalidFileNames())
536 $link = match ($this->id_type) {
537 self::WORKSPACE_NODE_ID => $this->
ctrl->getLinkTargetByClass(ilObjWorkspaceRootFolderGUI::class),
538 default => ilLink::_getLink($this->requested_ref_id),
541 $this->
ctrl->redirectToURL($link);
548 $backup_node_id = $this->node_id;
549 parent::putObjectInTree($obj, $parent_node_id);
550 $this->node_id = $backup_node_id;
557 public function update(): void
560 $form = $this->initPropertiesForm();
561 $form = $form->withRequest($this->request);
567 $title_and_description =
$inputs[
'file_info'][
'title_and_description'];
569 $title = $title_and_description->getTitle();
571 $filename = $this->
object->getFileName();
572 if (trim((
string) $title) ===
'') {
575 $title = $this->
object->appendSuffixToTitle($title,
$filename);
577 $this->
object->handleChangedObjectTitle($title);
579 $description = $title_and_description->getLongDescription();
580 $this->
object->setDescription($description);
583 $this->
object->getObjectProperties()->storePropertyTitleAndDescription($updated_title_and_description);
585 $this->
object->setImportantInfo($inputs[
'file_info'][
'important_info']);
586 $this->
object->setRating($inputs[
'obj_features'][
'rating'] ??
false);
587 $this->
object->setOnclickMode((
int) $inputs[
'file_info'][
'on_click_action']);
588 $this->
object->update();
590 $this->
object->getObjectProperties()->storePropertyIsOnline($inputs[
'availability'][
'online_status']);
592 if ((
$inputs[
'presentation'][
'tile_image'] ??
null) !==
null) {
593 $this->
object->getObjectProperties()->storePropertyTileImage($inputs[
'presentation'][
'tile_image']);
597 if (!empty(
$data[
"name"])) {
599 $ilUser =
$DIC[
'ilUser'];
608 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_obj_modified"),
true);
609 $this->
ctrl->redirectByClass(self::class, self::CMD_EDIT);
618 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
619 $ilErr->raiseError($this->
lng->txt(
"msg_no_perm_write"));
622 $this->initSettingsTab();
624 $form = $this->initPropertiesForm();
629 $this->tpl->setContent($this->
renderer->render($form));
634 $title_and_description = $this->
object->getObjectProperties()->getPropertyTitleAndDescription()->toForm(
636 $this->
ui->factory()->input()->field(),
640 $important_info = $this->inputs->field()->markdown(
642 $this->
lng->txt(
'important_info'),
643 $this->lng->txt(
'important_info_byline')
645 $this->
object->getImportantInfo() ??
""
648 $on_click_action = $this->inputs->field()->radio(
649 $this->
lng->txt(
'on_click_action')
652 $this->
lng->txt(
'file_action_download'),
653 $this->lng->txt(
'file_action_download_info'),
656 $this->
lng->txt(
'file_action_show'),
657 $this->lng->txt(
'file_action_show_info'),
659 (
string) $this->
object->getOnClickMode()
662 $input_groups = array_filter([
663 "title_and_description" => $title_and_description,
664 "important_info" => $important_info,
665 "on_click_action" => $on_click_action
666 ],
static fn(
FormInput $input):
bool =>
null !== $input);
668 $file_info_section = $this->inputs->field()->section(
670 $this->
lng->txt(
'file_info')
673 $online_status = $this->
object->getObjectProperties()->getPropertyIsOnline()->toForm(
675 $this->
ui->factory()->input()->field(),
678 $availability_section = $this->inputs->field()->section(
679 [
"online_status" => $online_status],
680 $this->
lng->txt(
'rep_activation_availability')
683 $presentation_section =
null;
684 if ($this->id_type === self::REPOSITORY_NODE_ID) {
685 $tile_image = $this->
object->getObjectProperties()->getPropertyTileImage()->toForm(
687 $this->
ui->factory()->input()->field(),
690 $presentation_section = $this->inputs->field()->section(
691 [
"tile_image" => $tile_image],
692 $this->
lng->txt(
'settings_presentation_header')
696 $additional_features_section =
null;
697 if ($this->id_type === self::REPOSITORY_NODE_ID) {
698 $this->
lng->loadLanguageModule(
'rating');
700 $enable_rating = $this->inputs->field()->checkbox(
701 $this->
lng->txt(
'rating_activate_rating'),
702 $this->lng->txt(
'rating_activate_rating_info')
704 $this->
object->hasRating()
706 $additional_features_section = $this->inputs->field()->section(
707 [
"rating" => $enable_rating],
708 $this->
lng->txt(
'obj_features')
712 $inputs = array_filter([
713 "file_info" => $file_info_section,
714 "availability" => $availability_section,
715 "presentation" => $presentation_section,
716 "obj_features" => $additional_features_section
717 ],
static fn(?
Section $input):
bool =>
null !== $input);
719 return $this->inputs->container()->form()->standard(
720 $this->
ctrl->getLinkTargetByClass(self::class,
'update'),
727 $hist_entry_id = $this->request_wrapper->has(
'hist_id')
728 ? $this->request_wrapper->retrieve(
'hist_id', $this->
refinery->kindlyTo()->int())
732 $this->
object->sendFile($hist_entry_id);
735 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
739 $this->object->getRefId(),
740 $this->object->getId(),
743 $this->updateLearningProgress();
745 $this->
object->sendFile($hist_entry_id);
747 $this->
error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
750 $this->
error->raiseError($e->getMessage(), $this->error->MESSAGE);
761 $this->
ctrl->redirectToURL(
762 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri()
767 $this->
ctrl->redirectToURL(
768 (
string) $this->capabilities->get(Capabilities::FORCED_INFO_PAGE)->getUri()
774 $this->
ctrl->redirectToURL(
775 (
string) $this->capabilities->get(Capabilities::MANAGE_VERSIONS)->getUri()
781 $this->
ctrl->redirectToURL(
782 (
string) $this->capabilities->get(Capabilities::UNZIP)->getUri()
788 $this->
ctrl->redirectToURL(
789 (
string) $this->capabilities->get(Capabilities::EDIT_EXTERNAL)->getUri()
794 $this->
ctrl->redirectToURL(
795 (
string) $this->capabilities->get(Capabilities::VIEW_EXTERNAL)->getUri()
804 $this->tabs_gui->activateTab(
"id_info");
806 if (!$this->capabilities->get(Capabilities::INFO_PAGE)->isUnlocked()) {
807 $GLOBALS[
'DIC'][
'ilErr']->raiseError(
808 $this->
lng->txt(
"msg_no_perm_read"),
816 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_completed');
818 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_not_completed');
821 $this->
ui->factory()->button()->standard(
823 $this->ctrl->getLinkTarget($this,
'toggleLearningProgress')
829 if ($this->capabilities->get(Capabilities::EDIT_EXTERNAL)->isUnlocked()) {
830 $external_editor = $this->
ui->factory()
833 $this->
lng->txt(
'open_external_editor'),
834 $this->ctrl->getLinkTargetByClass(
835 \ilWOPIEmbeddedApplicationGUI::class,
839 $this->
toolbar->addComponent($external_editor);
842 $info = $this->buildInfoScreen(
false);
849 $this->
user->getId(),
855 $lp_marks =
new ilLPMarks($this->obj_id, $this->
user->getId());
861 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_obj_modified'),
true);
862 $this->
ctrl->redirect($this, Capabilities::INFO_PAGE->value);
870 $info->enablePrivateNotes();
872 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
877 $info->enableNewsEditing(
false);
878 if ($this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
880 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
882 if ($enable_internal_rss) {
883 $info->setBlockProperty(
"news",
"settings",
true);
884 $info->setBlockProperty(
"news",
"public_notifications_option",
true);
888 $obj_id = $this->
object->getId();
895 $this->call_by_reference
897 $record_gui->setInfoObject(
$info);
898 $record_gui->parse();
903 $important_info = $this->
object->getImportantInfo();
904 if (!empty($important_info)) {
906 $markdown_to_html = $group->markdown()->toHTML();
908 $info->addSection($this->
lng->txt(
"important_info"));
909 $info->addProperty(
"", $markdown_to_html->transform($important_info));
913 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
915 if ($this->id_type === self::REPOSITORY_NODE_ID) {
918 $download_target = rtrim(ILIAS_HTTP_PATH,
'/') .
'/' . $this->
ctrl->getLinkTarget(
923 $url = $this->data_factory->uri($download_target);
924 $link = $this->data_factory->link($this->
lng->txt(
'file_download'),
$url);
925 $download_launcher = $this->
ui->factory()->launcher()->inline($link);
927 if (empty($important_info)) {
928 $info->addSection(
"");
931 $info->addProperty(
"", $this->
renderer->render($download_launcher));
935 $info->addMetaDataSections($this->
object->getId(), 0, $this->object->getType());
939 if (!$kiosk_mode && ($this->
access->checkAccess(
"write",
"", $this->ref_id) ||
940 $this->access->checkAccess(
"edit_permissions",
"", $this->ref_id))) {
943 foreach ($rs as $r) {
944 if ($this->tree->isInTree($r)) {
948 if (count($refs) > 1) {
950 foreach ($refs as $r) {
952 $cont_loc->addContextItems($r,
true);
953 $links .= $sep . $cont_loc->getHTML();
958 $this->
lng->txt(
"res_links"),
959 '<div class="small">' . $links .
'</div>'
965 $info->addSection($this->
lng->txt(
"file_info"));
967 $file_info_for_users = $this->getFileInfoForUsers();
968 foreach ($file_info_for_users as $file_info_entry_key => $file_info_entry_value) {
969 if ($file_info_entry_value !==
null) {
970 $info->addProperty($file_info_entry_key, $file_info_entry_value);
974 $file_info = $this->getAllFileInfoForCurrentUser();
975 foreach ($file_info as $file_info_block) {
976 foreach ($file_info_block as $file_info_entry_key => $file_info_entry_value) {
977 if ($file_info_entry_value !==
null) {
978 $info->addProperty($file_info_entry_key, $file_info_entry_value);
984 $info->hideFurtherSections(
false);
994 $ilHelp =
$DIC[
'ilHelp'];
997 $this->
ctrl->setParameter($this,
"ref_id", $this->node_id);
999 if ((
$c = $this->capabilities->get(Capabilities::VIEW_EXTERNAL)) &&
$c->isUnlocked()) {
1000 $this->tabs_gui->addTab(
1002 $this->
lng->txt(
"content"),
1007 if ((
$c = $this->capabilities->get(Capabilities::MANAGE_VERSIONS)) &&
$c->isUnlocked()) {
1008 $this->tabs_gui->addTab(
1010 $this->
lng->txt(self::CMD_VERSIONS),
1015 if ((
$c = $this->capabilities->get(Capabilities::INFO_PAGE)) &&
$c->isUnlocked()) {
1016 $this->tabs_gui->addTab(
1018 $this->
lng->txt(
"info_short"),
1019 $this->ctrl->getLinkTargetByClass([
"ilobjfilegui",
"ilinfoscreengui"],
"showSummary")
1023 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1024 $this->tabs_gui->addTab(
1026 $this->
lng->txt(
"settings"),
1027 $this->ctrl->getLinkTarget($this, self::CMD_EDIT)
1032 $this->tabs_gui->addTab(
1033 'learning_progress',
1034 $this->
lng->txt(
'learning_progress'),
1035 $this->ctrl->getLinkTargetByClass([self::class,
'illearningprogressgui'],
'')
1040 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1042 $mdtab = $mdgui->getTab();
1044 $this->tabs_gui->addTab(
1046 $this->
lng->txt(
"meta_data"),
1053 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1054 $this->tabs_gui->addTab(
1056 $this->
lng->txt(
"export"),
1057 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
1067 $this->tabs_gui->activateTab(
"settings");
1069 $this->tabs_gui->addSubTab(
1071 $this->
lng->txt(
'settings'),
1072 $this->ctrl->getLinkTargetByClass(self::class, self::CMD_EDIT)
1075 $this->tabs_gui->addSubTab(
1077 $this->
lng->txt(
'service_settings'),
1082 $this->tabs_gui->activateSubTab(
"file_settings");
1085 public static function _goto($a_target, $a_additional =
null): void
1088 $main_tpl =
$DIC->ui()->mainTemplate();
1091 $ilAccess =
$DIC[
'ilAccess'];
1093 if ($a_additional && str_ends_with((
string) $a_additional,
"wsp")) {
1098 if ($a_additional && str_ends_with((
string) $a_additional,
"download")) {
1104 if ($ilAccess->checkAccess(
"visible",
"", $a_target)
1105 || $ilAccess->checkAccess(
"read",
"", $a_target)) {
1108 $main_tpl->setOnScreenMessage(
1111 $lng->txt(
"msg_no_perm_read_item"),
1128 $ilLocator =
$DIC[
'ilLocator'];
1130 if (is_object($this->
object)) {
1131 $ilLocator->addItem($this->
object->getTitle(), $this->ctrl->getLinkTarget($this,
""),
"", $this->node_id);
1138 $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
1144 [ilCommonActionDispatcherGUI::class, ilRatingGUI::class]
1161 if (!$this->
object instanceof
ilObjFile) {
1162 throw new ilFileException(
"Error: object is not of type ilObjFile or doesn't exist");
1165 return $this->object;
1170 return $this->stakeholder;
1175 return $this->general_settings;
1185 return $this->node_id;
1195 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