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 $ilTabs->activateTab(
"id_permissions");
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);
287 case strtolower(ilObjFileUploadHandlerGUI::class):
290 case strtolower(ilWOPIEmbeddedApplicationGUI::class):
291 $capability = match($cmd) {
298 if ($capability ===
null || !$capability->isUnlocked()) {
299 $this->
error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
302 $action = match ($capability->getCapability()) {
303 Capabilities::VIEW_EXTERNAL => $this->action_repo->getViewActionForSuffix($suffix),
304 Capabilities::EDIT_EXTERNAL => $this->action_repo->getEditActionForSuffix($suffix),
308 $this->tabs_gui->activateTab(
'content');
311 if ($this->id_type === Context::CONTEXT_WORKSPACE) {
317 $goto_link = ilLink::_getLink($this->
object->getRefId());
321 $this->storage->manage()->find($this->object->getResourceId()),
325 $capability->getCapability() === Capabilities::VIEW_EXTERNAL,
326 $this->lng->getLangKey()
329 $this->
ctrl->forwardCommand(
336 case strtolower(ilFileCommonSettingsGUI::class):
338 $this->tabs_gui->activateSubTab(
"service_settings");
339 $this->
ctrl->forwardCommand(
345 $this->object_service
352 if ($this->id_type === self::WORKSPACE_NODE_ID) {
354 $ilTabs->clearTargets();
356 if (empty($cmd) || $cmd ===
'render') {
357 $cmd = Capabilities::INFO_PAGE->value;
360 parent::executeCommand();
365 if (empty($cmd) || $cmd ===
'render') {
366 $cmd = Capabilities::INFO_PAGE->value;
392 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
393 $tpl->
setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
395 $accordion->addItem(
$tpl->
get(), $this->ui->renderer()->render($form));
404 if (!in_array($form_type, [self::CFORM_NEW, self::CFORM_CLONE, self::CFORM_IMPORT],
true)) {
407 $title = $form->getTitle();
410 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
411 $tpl->setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
413 $accordion->addItem($tpl->get(), $form->getHTML());
422 return $this->initUploadForm();
428 return $this->
lng->txt(
'upload_files');
436 $this->
ctrl->setParameterByClass(self::class,
'new_type', $this->getType());
437 $this->
ctrl->setParameterByClass(
439 self::PARAM_UPLOAD_ORIGIN,
440 self::UPLOAD_ORIGIN_STANDARD
444 $inputs[self::PARAM_FILES] = $this->
ui->factory()->input()->field()->file(
445 $this->upload_handler,
446 $this->
lng->txt(
'upload_files'),
448 $this->ui->factory()->input()->field()->group([
449 self::PARAM_TITLE => $this->ui->factory()->input()->field()->text(
450 $this->lng->txt(
'title')
451 )->withAdditionalTransformation(
452 $this->getEmptyStringToNullTransformation()
454 self::PARAM_DESCRIPTION => $this->ui->factory()->input()->field()->textarea(
455 $this->lng->txt(
'description')
456 )->withAdditionalTransformation(
457 $this->getEmptyStringToNullTransformation()
461 self::UPLOAD_MAX_FILES
462 )->withRequired(
true);
464 if ($this->lom_services->copyrightHelper()->isCopyrightSelectionActive()) {
465 $inputs[self::PARAM_COPYRIGHT_ID] = $this->getCopyrightSelectionInput(
'set_license_for_all_files');
468 return $this->
ui->factory()->input()->container()->form()->standard(
469 $this->
ctrl->getFormActionByClass(self::class, self::CMD_UPLOAD_FILES),
471 )->withSubmitLabel($this->
lng->txt(
'upload_files'));
479 $origin = ($this->request_wrapper->has(self::PARAM_UPLOAD_ORIGIN)) ?
480 $this->request_wrapper->retrieve(
481 self::PARAM_UPLOAD_ORIGIN,
482 $this->refinery->kindlyTo()->string()
483 ) : self::UPLOAD_ORIGIN_STANDARD;
485 if (self::UPLOAD_ORIGIN_DROPZONE === $origin) {
487 $dropzone = $dropzone->getDropzone()->withRequest($this->request);
488 $data = $dropzone->getData();
490 $form = $this->initUploadForm()->withRequest($this->request);
491 $data = $form->getData();
493 $files =
$data[self::PARAM_FILES] ??
$data[0] ??
null;
496 $form = $this->initUploadForm()->withRequest($this->request);
497 $this->tpl->setContent($this->getCreationFormsHTML($form));
505 $this->file_service_settings
509 foreach ($files as $file_data) {
510 $rid = $this->storage->manage()->find($file_data[0]);
515 $file_data[1][self::PARAM_TITLE] ??
null,
516 $file_data[1][self::PARAM_DESCRIPTION] ??
null,
517 $data[self::PARAM_COPYRIGHT_ID] ??
null
519 }
catch (Throwable $t) {
521 if (
null !== $this->log) {
522 $this->log->error($t->getMessage() .
": " . $t->getTraceAsString());
529 $this->
ui->mainTemplate()->setOnScreenMessage(
531 $this->
lng->txt(
'could_not_create_file_objs'),
536 if ($processor->getInvalidFileNames() !== []) {
537 $this->
ui->mainTemplate()->setOnScreenMessage(
540 $this->
lng->txt(
'file_upload_info_file_with_critical_extension'),
541 implode(
', ', $processor->getInvalidFileNames())
547 $link = match ($this->id_type) {
548 self::WORKSPACE_NODE_ID => $this->
ctrl->getLinkTargetByClass(ilObjWorkspaceRootFolderGUI::class),
549 default => ilLink::_getLink($this->requested_ref_id),
552 $this->
ctrl->redirectToURL($link);
559 $backup_node_id = $this->node_id;
560 parent::putObjectInTree($obj, $parent_node_id);
561 $this->node_id = $backup_node_id;
568 public function update(): void
571 $form = $this->initPropertiesForm();
572 $form = $form->withRequest($this->request);
578 $title_and_description =
$inputs[
'file_info'][
'title_and_description'];
580 $title = $title_and_description->getTitle();
582 $filename = $this->
object->getFileName();
583 if (trim((
string) $title) ===
'') {
586 $title = $this->
object->appendSuffixToTitle($title,
$filename);
588 $this->
object->handleChangedObjectTitle($title);
590 $description = $title_and_description->getLongDescription();
591 $this->
object->setDescription($description);
594 $this->
object->getObjectProperties()->storePropertyTitleAndDescription($updated_title_and_description);
596 $this->
object->setImportantInfo($inputs[
'file_info'][
'important_info']);
597 $this->
object->setRating($inputs[
'obj_features'][
'rating'] ??
false);
598 $this->
object->setOnclickMode((
int) $inputs[
'file_info'][
'on_click_action']);
599 $this->
object->update();
601 $this->
object->getObjectProperties()->storePropertyIsOnline($inputs[
'availability'][
'online_status']);
603 if ((
$inputs[
'presentation'][
'tile_image'] ??
null) !==
null) {
604 $this->
object->getObjectProperties()->storePropertyTileImage($inputs[
'presentation'][
'tile_image']);
608 if (!empty(
$data[
"name"])) {
610 $ilUser =
$DIC[
'ilUser'];
619 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_obj_modified"),
true);
620 $this->
ctrl->redirectByClass(self::class, self::CMD_EDIT);
629 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
630 $ilErr->raiseError($this->
lng->txt(
"msg_no_perm_write"));
633 $this->initSettingsTab();
635 $form = $this->initPropertiesForm();
640 $this->tpl->setContent($this->
renderer->render($form));
645 $title_and_description = $this->
object->getObjectProperties()->getPropertyTitleAndDescription()->toForm(
647 $this->
ui->factory()->input()->field(),
651 $important_info = $this->inputs->field()->markdown(
653 $this->
lng->txt(
'important_info'),
654 $this->lng->txt(
'important_info_byline')
656 $this->
object->getImportantInfo() ??
""
659 $on_click_action = $this->inputs->field()->radio(
660 $this->
lng->txt(
'on_click_action')
663 $this->
lng->txt(
'file_action_download'),
664 $this->lng->txt(
'file_action_download_info'),
667 $this->
lng->txt(
'file_action_show'),
668 $this->lng->txt(
'file_action_show_info'),
670 (
string) $this->
object->getOnClickMode()
673 $input_groups = array_filter([
674 "title_and_description" => $title_and_description,
675 "important_info" => $important_info,
676 "on_click_action" => $on_click_action
677 ],
static fn(
FormInput $input):
bool =>
null !== $input);
679 $file_info_section = $this->inputs->field()->section(
681 $this->
lng->txt(
'file_info')
684 $online_status = $this->
object->getObjectProperties()->getPropertyIsOnline()->toForm(
686 $this->
ui->factory()->input()->field(),
689 $availability_section = $this->inputs->field()->section(
690 [
"online_status" => $online_status],
691 $this->
lng->txt(
'rep_activation_availability')
694 $presentation_section =
null;
695 if ($this->id_type === self::REPOSITORY_NODE_ID) {
696 $tile_image = $this->
object->getObjectProperties()->getPropertyTileImage()->toForm(
698 $this->
ui->factory()->input()->field(),
701 $presentation_section = $this->inputs->field()->section(
702 [
"tile_image" => $tile_image],
703 $this->
lng->txt(
'settings_presentation_header')
707 $additional_features_section =
null;
708 if ($this->id_type === self::REPOSITORY_NODE_ID) {
709 $this->
lng->loadLanguageModule(
'rating');
711 $enable_rating = $this->inputs->field()->checkbox(
712 $this->
lng->txt(
'rating_activate_rating'),
713 $this->lng->txt(
'rating_activate_rating_info')
715 $this->
object->hasRating()
717 $additional_features_section = $this->inputs->field()->section(
718 [
"rating" => $enable_rating],
719 $this->
lng->txt(
'obj_features')
723 $inputs = array_filter([
724 "file_info" => $file_info_section,
725 "availability" => $availability_section,
726 "presentation" => $presentation_section,
727 "obj_features" => $additional_features_section
728 ],
static fn(?
Section $input):
bool =>
null !== $input);
730 return $this->inputs->container()->form()->standard(
731 $this->
ctrl->getLinkTargetByClass(self::class,
'update'),
738 $hist_entry_id = $this->request_wrapper->has(
'hist_id')
739 ? $this->request_wrapper->retrieve(
'hist_id', $this->
refinery->kindlyTo()->int())
743 $this->
object->sendFile($hist_entry_id);
746 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
748 $this->recordReadEvent();
750 $this->
object->sendFile($hist_entry_id);
752 $this->
error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
755 $this->
error->raiseError($e->getMessage(), $this->error->MESSAGE);
766 $this->
ctrl->redirectToURL(
767 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri()
772 $this->
ctrl->redirectToURL(
773 (
string) $this->capabilities->get(Capabilities::FORCED_INFO_PAGE)->getUri()
779 $this->
ctrl->redirectToURL(
780 (
string) $this->capabilities->get(Capabilities::MANAGE_VERSIONS)->getUri()
786 $this->
ctrl->redirectToURL(
787 (
string) $this->capabilities->get(Capabilities::UNZIP)->getUri()
793 $this->
ctrl->redirectToURL(
794 (
string) $this->capabilities->get(Capabilities::EDIT_EXTERNAL)->getUri()
799 $this->
ctrl->redirectToURL(
800 (
string) $this->capabilities->get(Capabilities::VIEW_EXTERNAL)->getUri()
809 $this->tabs_gui->activateTab(
"id_info");
811 if (!$this->capabilities->get(Capabilities::INFO_PAGE)->isUnlocked()) {
812 $GLOBALS[
'DIC'][
'ilErr']->raiseError(
813 $this->
lng->txt(
"msg_no_perm_read"),
821 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_completed');
823 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_not_completed');
826 $this->
ui->factory()->button()->standard(
828 $this->ctrl->getLinkTarget($this,
'toggleLearningProgress')
834 if ($this->capabilities->get(Capabilities::EDIT_EXTERNAL)->isUnlocked()) {
835 $external_editor = $this->
ui->factory()
838 $this->
lng->txt(
'open_external_editor'),
839 $this->ctrl->getLinkTargetByClass(
840 \ilWOPIEmbeddedApplicationGUI::class,
844 $this->
toolbar->addComponent($external_editor);
847 $info = $this->buildInfoScreen(
false);
854 $this->
user->getId(),
860 $lp_marks =
new ilLPMarks($this->obj_id, $this->
user->getId());
866 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_obj_modified'),
true);
867 $this->
ctrl->redirect($this, Capabilities::INFO_PAGE->value);
875 $info->enablePrivateNotes();
877 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
882 $info->enableNewsEditing(
false);
883 if ($this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
885 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
887 if ($enable_internal_rss) {
888 $info->setBlockProperty(
"news",
"settings",
true);
889 $info->setBlockProperty(
"news",
"public_notifications_option",
true);
893 $obj_id = $this->
object->getId();
900 $this->call_by_reference
902 $record_gui->setInfoObject(
$info);
903 $record_gui->parse();
908 $important_info = $this->
object->getImportantInfo();
909 if (!empty($important_info)) {
911 $markdown_to_html = $group->markdown()->toHTML();
913 $info->addSection($this->
lng->txt(
"important_info"));
914 $info->addProperty(
"", $markdown_to_html->transform($important_info));
918 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
920 if ($this->id_type === self::REPOSITORY_NODE_ID) {
923 $download_target = rtrim(ILIAS_HTTP_PATH,
'/') .
'/' . $this->
ctrl->getLinkTarget(
928 $url = $this->data_factory->uri($download_target);
929 $link = $this->data_factory->link($this->
lng->txt(
'file_download'),
$url);
930 $download_launcher = $this->
ui->factory()->launcher()->inline($link);
932 if (empty($important_info)) {
933 $info->addSection(
"");
936 $info->addProperty(
"", $this->
renderer->render($download_launcher));
940 $info->addMetaDataSections($this->
object->getId(), 0, $this->object->getType());
944 if (!$kiosk_mode && ($this->
access->checkAccess(
"write",
"", $this->ref_id) ||
945 $this->access->checkAccess(
"edit_permissions",
"", $this->ref_id))) {
948 foreach ($rs as $r) {
949 if ($this->tree->isInTree($r)) {
953 if (count($refs) > 1) {
955 foreach ($refs as $r) {
957 $cont_loc->addContextItems($r,
true);
958 $links .= $sep . $cont_loc->getHTML();
963 $this->
lng->txt(
"res_links"),
964 '<div class="small">' . $links .
'</div>'
970 $info->addSection($this->
lng->txt(
"file_info"));
972 $file_info_for_users = $this->getFileInfoForUsers();
973 foreach ($file_info_for_users as $file_info_entry_key => $file_info_entry_value) {
974 if ($file_info_entry_value !==
null) {
975 $info->addProperty($file_info_entry_key, $file_info_entry_value);
979 $file_info = $this->getAllFileInfoForCurrentUser();
980 foreach ($file_info as $file_info_block) {
981 foreach ($file_info_block as $file_info_entry_key => $file_info_entry_value) {
982 if ($file_info_entry_value !==
null) {
983 $info->addProperty($file_info_entry_key, $file_info_entry_value);
989 $info->hideFurtherSections(
false);
999 $ilHelp =
$DIC[
'ilHelp'];
1002 $this->
ctrl->setParameter($this,
"ref_id", $this->node_id);
1004 if ((
$c = $this->capabilities->get(Capabilities::VIEW_EXTERNAL)) &&
$c->isUnlocked()) {
1005 $this->tabs_gui->addTab(
1007 $this->
lng->txt(
"content"),
1012 if ((
$c = $this->capabilities->get(Capabilities::MANAGE_VERSIONS)) &&
$c->isUnlocked()) {
1013 $this->tabs_gui->addTab(
1015 $this->
lng->txt(self::CMD_VERSIONS),
1020 if ((
$c = $this->capabilities->get(Capabilities::INFO_PAGE)) &&
$c->isUnlocked()) {
1021 $this->tabs_gui->addTab(
1023 $this->
lng->txt(
"info_short"),
1024 $this->ctrl->getLinkTargetByClass([
"ilobjfilegui",
"ilinfoscreengui"],
"showSummary")
1028 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1029 $this->tabs_gui->addTab(
1031 $this->
lng->txt(
"settings"),
1032 $this->ctrl->getLinkTarget($this, self::CMD_EDIT)
1037 $this->tabs_gui->addTab(
1038 'learning_progress',
1039 $this->
lng->txt(
'learning_progress'),
1040 $this->ctrl->getLinkTargetByClass([self::class,
'illearningprogressgui'],
'')
1045 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1047 $mdtab = $mdgui->getTab();
1049 $this->tabs_gui->addTab(
1051 $this->
lng->txt(
"meta_data"),
1058 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1059 $this->tabs_gui->addTab(
1061 $this->
lng->txt(
"export"),
1062 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
1072 $this->tabs_gui->activateTab(
"settings");
1074 $this->tabs_gui->addSubTab(
1076 $this->
lng->txt(
'settings'),
1077 $this->ctrl->getLinkTargetByClass(self::class, self::CMD_EDIT)
1080 $this->tabs_gui->addSubTab(
1082 $this->
lng->txt(
'service_settings'),
1087 $this->tabs_gui->activateSubTab(
"file_settings");
1090 public static function _goto($a_target, $a_additional =
null): void
1093 $main_tpl =
$DIC->ui()->mainTemplate();
1096 $ilAccess =
$DIC[
'ilAccess'];
1098 if ($a_additional && str_ends_with((
string) $a_additional,
"wsp")) {
1103 if ($a_additional && str_ends_with((
string) $a_additional,
"download")) {
1109 if ($ilAccess->checkAccess(
"visible",
"", $a_target)
1110 || $ilAccess->checkAccess(
"read",
"", $a_target)) {
1113 $main_tpl->setOnScreenMessage(
1116 $lng->txt(
"msg_no_perm_read_item"),
1133 $ilLocator =
$DIC[
'ilLocator'];
1135 if (is_object($this->
object)) {
1136 $ilLocator->addItem($this->
object->getTitle(), $this->ctrl->getLinkTarget($this,
""),
"", $this->node_id);
1143 $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
1149 [ilCommonActionDispatcherGUI::class, ilRatingGUI::class]
1166 if (!$this->
object instanceof
ilObjFile) {
1167 throw new ilFileException(
"Error: object is not of type ilObjFile or doesn't exist");
1170 return $this->object;
1175 return $this->stakeholder;
1180 return $this->general_settings;
1190 return $this->node_id;
1200 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