70 public const CMD_EDIT = Capabilities::EDIT_SETTINGS->value;
94 protected \ILIAS\UI\Component\Input\Factory
$inputs;
104 public function __construct(
int $a_id = 0,
int $a_id_type = self::REPOSITORY_NODE_ID,
int $a_parent_node_id = 0)
107 $this->
http = $DIC->http()->wrapper();
108 $this->request = $DIC->http()->request();
110 $this->file_service_settings = $DIC->fileServiceSettings();
111 $this->
user = $DIC->user();
112 $this->
lng = $DIC->language();
114 $this->
ui = $DIC->ui();
115 $this->storage = $DIC->resourceStorage();
118 $this->general_settings =
new General();
120 $this->obj_service = $DIC->object();
123 $this->upload_limit = $DIC[
'ui.upload_limit_resolver'];
124 $this->inputs = $DIC->ui()->factory()->input();
125 $this->renderer = $DIC->ui()->renderer();
126 $this->request = $DIC->http()->request();
127 $this->data_factory =
new Factory();
129 $this->lom_services = $DIC->learningObjectMetadata();
137 $DIC[
'static_url.uri_builder']
140 $capability_context =
new Context(
143 ($a_id_type === self::WORKSPACE_NODE_ID) ? Context::CONTEXT_WORKSPACE : Context::CONTEXT_REPO
146 $this->capabilities = $capability_builder->get($capability_context);
154 $this->
user->getId(),
175 $ilNavigationHistory = $DIC[
'ilNavigationHistory'];
176 $ilCtrl = $DIC[
'ilCtrl'];
177 $ilUser = $DIC[
'ilUser'];
178 $ilTabs = $DIC[
'ilTabs'];
181 $next_class = $this->
ctrl->getNextClass($this);
182 $cmd = $this->
ctrl->getCmd();
187 $this->id_type == self::REPOSITORY_NODE_ID
188 && $this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()
191 $ilNavigationHistory->addItem(
193 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri(),
202 $suffix = $info->getSuffix();
203 $path_file_icon = $this->icon_repo->getIconFilePathBySuffix($suffix);
204 $this->tpl->setTitleIcon($path_file_icon);
206 switch ($next_class) {
207 case strtolower(ilInfoScreenGUI::class):
211 case 'ilobjectmetadatagui':
212 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
213 $ilErr->raiseError($this->
lng->txt(
'permission_denied'),
$ilErr->WARNING);
216 $ilTabs->activateTab(
"id_meta");
223 $this->
ctrl->forwardCommand($md_gui);
227 case 'ilpermissiongui':
228 $ilTabs->activateTab(
"id_permissions");
230 $this->
ctrl->forwardCommand($perm_gui);
234 $ilTabs->activateTab(
"export");
236 $exp_gui->addFormat(
'xml');
237 $this->
ctrl->forwardCommand($exp_gui);
240 case 'ilobjectcopygui':
243 $this->
ctrl->forwardCommand($cp);
247 case "ilworkspaceaccessgui":
248 $ilTabs->activateTab(
"id_permissions");
250 $this->
ctrl->forwardCommand($wspacc);
253 case "ilcommonactiondispatchergui":
255 $this->
ctrl->forwardCommand($gui);
258 case "illearningprogressgui":
259 $ilTabs->activateTab(
'learning_progress');
261 ? $this->
http->query()->retrieve(
'user_id', $this->
refinery->kindlyTo()->int())
265 $this->
object->getRefId(),
268 $this->
ctrl->forwardCommand($new_gui);
269 $this->tabs_gui->setTabActive(
'learning_progress');
271 case strtolower(ilFileVersionsGUI::class):
272 $this->tabs_gui->activateTab(
"id_versions");
274 if (!$this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
275 $this->error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
281 case strtolower(ilObjFileUploadHandlerGUI::class):
284 case strtolower(ilWOPIEmbeddedApplicationGUI::class):
285 $capability = match($cmd) {
292 if ($capability === null || !$capability->isUnlocked()) {
293 $this->error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
296 $action = match ($capability->getCapability()) {
297 Capabilities::VIEW_EXTERNAL => $this->action_repo->getViewActionForSuffix($suffix),
298 Capabilities::EDIT_EXTERNAL => $this->action_repo->getEditActionForSuffix($suffix),
302 $this->tabs_gui->activateTab(
'content');
305 if ($this->id_type === Context::CONTEXT_WORKSPACE) {
311 $goto_link = ilLink::_getLink($this->
object->getRefId());
315 $this->storage->manage()->find($this->
object->getResourceId()),
319 $capability->getCapability() === Capabilities::VIEW_EXTERNAL
322 $this->
ctrl->forwardCommand(
329 case strtolower(ilFileCommonSettingsGUI::class):
331 $this->tabs_gui->activateSubTab(
"service_settings");
332 $this->
ctrl->forwardCommand(
338 $this->object_service
345 if ($this->id_type === self::WORKSPACE_NODE_ID) {
347 $ilTabs->clearTargets();
349 if (empty($cmd) || $cmd ===
'render') {
350 $cmd = Capabilities::INFO_PAGE->value;
353 parent::executeCommand();
358 if (empty($cmd) || $cmd ===
'render') {
359 $cmd = Capabilities::INFO_PAGE->value;
376 if (!in_array($form_type, [self::CFORM_NEW, self::CFORM_CLONE, self::CFORM_IMPORT],
true)) {
382 $title = ($inputs === []) ?
383 '' : $inputs[array_key_first($inputs)]->getLabel();
385 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
386 $tpl->
setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
397 if (!in_array($form_type, [self::CFORM_NEW, self::CFORM_CLONE, self::CFORM_IMPORT],
true)) {
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);
419 return $this->
lng->txt(
'upload_files');
427 $this->
ctrl->setParameterByClass(self::class,
'new_type', $this->
getType());
428 $this->
ctrl->setParameterByClass(
430 self::PARAM_UPLOAD_ORIGIN,
431 self::UPLOAD_ORIGIN_STANDARD
436 $this->upload_limit->getBestPossibleUploadLimitInBytes($this->upload_handler),
440 $inputs[self::PARAM_FILES] = $this->
ui->factory()->input()->field()->file(
441 $this->upload_handler,
442 $this->
lng->txt(
'upload_files'),
444 $this->
lng->txt(
'upload_files_limit'),
447 $this->
ui->factory()->input()->field()->group([
448 self::PARAM_TITLE => $this->
ui->factory()->input()->field()->text(
449 $this->
lng->txt(
'title')
451 $this->getEmptyStringToNullTransformation()
453 self::PARAM_DESCRIPTION => $this->
ui->factory()->input()->field()->textarea(
454 $this->
lng->txt(
'description')
456 $this->getEmptyStringToNullTransformation()
460 self::UPLOAD_MAX_FILES
461 )->withRequired(
true);
463 if ($this->lom_services->copyrightHelper()->isCopyrightSelectionActive()) {
464 $inputs[self::PARAM_COPYRIGHT_ID] = $this->getCopyrightSelectionInput(
'set_license_for_all_files');
467 return $this->
ui->factory()->input()->container()->form()->standard(
468 $this->
ctrl->getFormActionByClass(self::class, self::CMD_UPLOAD_FILES),
470 )->withSubmitLabel($this->
lng->txt(
'upload_files'));
478 $origin = ($this->
http->query()->has(self::PARAM_UPLOAD_ORIGIN)) ?
479 $this->
http->query()->retrieve(
480 self::PARAM_UPLOAD_ORIGIN,
481 $this->
refinery->kindlyTo()->string()
482 ) : self::UPLOAD_ORIGIN_STANDARD;
484 if (self::UPLOAD_ORIGIN_DROPZONE === $origin) {
486 $dropzone = $dropzone->getDropzone()->withRequest($this->request);
487 $data = $dropzone->getData();
490 $data = $form->getData();
492 $files =
$data[self::PARAM_FILES] ??
$data[0] ?? null;
504 $this->file_service_settings
508 foreach ($files as $file_data) {
509 $rid = $this->storage->manage()->find($file_data[$this->upload_handler->getFileIdentifierParameterName()]);
514 $file_data[self::PARAM_TITLE] ?? null,
515 $file_data[self::PARAM_DESCRIPTION] ?? null,
516 $data[self::PARAM_COPYRIGHT_ID] ??
$data[1] ?? null
520 if (null !== $this->log) {
521 $this->log->error($t->getMessage() .
": " . $t->getTraceAsString());
528 $this->
ui->mainTemplate()->setOnScreenMessage(
530 $this->
lng->txt(
'could_not_create_file_objs'),
535 if ($processor->getInvalidFileNames() !== []) {
536 $this->
ui->mainTemplate()->setOnScreenMessage(
539 $this->
lng->txt(
'file_upload_info_file_with_critical_extension'),
540 implode(
', ', $processor->getInvalidFileNames())
546 $link = match ($this->id_type) {
547 self::WORKSPACE_NODE_ID => $this->
ctrl->getLinkTargetByClass(ilObjWorkspaceRootFolderGUI::class),
548 default => ilLink::_getLink($this->requested_ref_id),
551 $this->
ctrl->redirectToURL($link);
558 parent::putObjectInTree($obj, $parent_node_id);
559 $this->node_id = $backup_node_id;
565 public function update():
void 569 $form = $form->withRequest($this->request);
570 $inputs = $form->getData();
575 $title_and_description = $inputs[
'file_info'][
'title_and_description'];
577 $title = $title_and_description->getTitle();
579 $filename = $this->
object->getFileName();
580 if (trim((
string) $title) ===
'') {
583 $title = $this->
object->appendSuffixToTitle($title,
$filename);
585 $this->
object->handleChangedObjectTitle($title);
587 $description = $title_and_description->getLongDescription();
588 $this->
object->setDescription($description);
591 $this->
object->getObjectProperties()->storePropertyTitleAndDescription($updated_title_and_description);
593 $this->
object->setImportantInfo($inputs[
'file_info'][
'important_info']);
594 $this->
object->setRating($inputs[
'obj_features'][
'rating'] ??
false);
595 $this->
object->setOnclickMode((
int) $inputs[
'file_info'][
'on_click_action']);
596 $this->
object->update();
598 $this->
object->getObjectProperties()->storePropertyIsOnline($inputs[
'availability'][
'online_status']);
600 if (($inputs[
'presentation'][
'tile_image'] ?? null) !== null) {
601 $this->
object->getObjectProperties()->storePropertyTileImage($inputs[
'presentation'][
'tile_image']);
605 if (!empty(
$data[
"name"])) {
607 $ilUser = $DIC[
'ilUser'];
617 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_obj_modified"),
true);
618 $this->
ctrl->redirectByClass(self::class, self::CMD_EDIT);
626 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
627 $ilErr->raiseError($this->
lng->txt(
"msg_no_perm_write"));
637 $this->tpl->setContent($this->renderer->render($form));
642 $title_and_description = $this->
object->getObjectProperties()->getPropertyTitleAndDescription()->toForm(
644 $this->
ui->factory()->input()->field(),
648 $important_info = $this->inputs->field()->markdown(
650 $this->
lng->txt(
'important_info'),
651 $this->
lng->txt(
'important_info_byline')
653 $this->
object->getImportantInfo() ??
"" 656 $on_click_action = $this->inputs->field()->radio(
657 $this->
lng->txt(
'on_click_action')
660 $this->
lng->txt(
'file_action_download'),
661 $this->
lng->txt(
'file_action_download_info'),
664 $this->
lng->txt(
'file_action_show'),
665 $this->
lng->txt(
'file_action_show_info'),
667 (
string) $this->
object->getOnClickMode()
670 $input_groups = array_filter([
671 "title_and_description" => $title_and_description,
672 "important_info" => $important_info,
673 "on_click_action" => $on_click_action
674 ],
static fn($input):
bool => null !== $input);
676 $file_info_section = $this->inputs->field()->section(
678 $this->
lng->txt(
'file_info')
681 $online_status = $this->
object->getObjectProperties()->getPropertyIsOnline()->toForm(
683 $this->
ui->factory()->input()->field(),
686 $availability_section = $this->inputs->field()->section(
687 [
"online_status" => $online_status],
688 $this->
lng->txt(
'rep_activation_availability')
691 $presentation_section = null;
692 if ($this->id_type === self::REPOSITORY_NODE_ID) {
693 $tile_image = $this->
object->getObjectProperties()->getPropertyTileImage()->toForm(
695 $this->
ui->factory()->input()->field(),
698 $presentation_section = $this->inputs->field()->section(
699 [
"tile_image" => $tile_image],
700 $this->
lng->txt(
'settings_presentation_header')
704 $additional_features_section = null;
705 if ($this->id_type === self::REPOSITORY_NODE_ID) {
706 $this->
lng->loadLanguageModule(
'rating');
708 $enable_rating = $this->inputs->field()->checkbox(
709 $this->
lng->txt(
'rating_activate_rating'),
710 $this->
lng->txt(
'rating_activate_rating_info')
712 $this->
object->hasRating()
714 $additional_features_section = $this->inputs->field()->section(
715 [
"rating" => $enable_rating],
716 $this->
lng->txt(
'obj_features')
720 $inputs = array_filter([
721 "file_info" => $file_info_section,
722 "availability" => $availability_section,
723 "presentation" => $presentation_section,
724 "obj_features" => $additional_features_section
725 ],
static fn($input):
bool => null !== $input);
727 return $this->inputs->container()->form()->standard(
728 $this->
ctrl->getLinkTargetByClass(self::class,
'update'),
735 $hist_entry_id = $this->
http->query()->has(
'hist_id')
736 ? $this->
http->query()->retrieve(
'hist_id', $this->
refinery->kindlyTo()->int())
740 $this->
object->sendFile($hist_entry_id);
743 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
747 $this->
object->getRefId(),
748 $this->
object->getId(),
753 $this->
object->sendFile($hist_entry_id);
755 $this->error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
758 $this->error->raiseError($e->getMessage(), $this->error->MESSAGE);
769 $this->
ctrl->redirectToURL(
770 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri()
775 $this->
ctrl->redirectToURL(
776 (
string) $this->capabilities->get(Capabilities::FORCED_INFO_PAGE)->getUri()
782 $this->
ctrl->redirectToURL(
783 (
string) $this->capabilities->get(Capabilities::MANAGE_VERSIONS)->getUri()
789 $this->
ctrl->redirectToURL(
790 (
string) $this->capabilities->get(Capabilities::UNZIP)->getUri()
796 $this->
ctrl->redirectToURL(
797 (
string) $this->capabilities->get(Capabilities::EDIT_EXTERNAL)->getUri()
802 $this->
ctrl->redirectToURL(
803 (
string) $this->capabilities->get(Capabilities::VIEW_EXTERNAL)->getUri()
812 $this->tabs_gui->activateTab(
"id_info");
814 if (!$this->capabilities->get(Capabilities::INFO_PAGE)->isUnlocked()) {
815 $GLOBALS[
'DIC'][
'ilErr']->raiseError(
816 $this->
lng->txt(
"msg_no_perm_read"),
824 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_completed');
826 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_not_completed');
829 $this->
ui->factory()->button()->standard(
831 $this->
ctrl->getLinkTarget($this,
'toggleLearningProgress')
837 if ($this->capabilities->get(Capabilities::EDIT_EXTERNAL)->isUnlocked()) {
838 $external_editor = $this->
ui->factory()
841 $this->
lng->txt(
'open_external_editor'),
842 $this->
ctrl->getLinkTargetByClass(
843 \ilWOPIEmbeddedApplicationGUI::class,
847 $this->
toolbar->addComponent($external_editor);
851 $this->
ctrl->forwardCommand($info);
857 $this->
user->getId(),
863 $lp_marks =
new ilLPMarks($this->obj_id, $this->
user->getId());
869 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_obj_modified'),
true);
870 $this->
ctrl->redirect($this, Capabilities::INFO_PAGE->value);
878 $info->enablePrivateNotes();
880 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
885 $info->enableNewsEditing(
false);
886 if ($this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
888 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
890 if ($enable_internal_rss) {
891 $info->setBlockProperty(
"news",
"settings",
true);
892 $info->setBlockProperty(
"news",
"public_notifications_option",
true);
896 $obj_id = $this->
object->getId();
903 $this->call_by_reference
905 $record_gui->setInfoObject($info);
906 $record_gui->parse();
911 $important_info = $this->
object->getImportantInfo();
912 if (!empty($important_info)) {
914 $markdown_to_html = $group->markdown()->toHTML();
916 $info->addSection($this->
lng->txt(
"important_info"));
917 $info->addProperty(
"", $markdown_to_html->transform($important_info));
921 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
923 if ($this->id_type === self::REPOSITORY_NODE_ID) {
926 $download_target = rtrim(ILIAS_HTTP_PATH,
'/') .
'/' . $this->
ctrl->getLinkTarget(
931 $url = $this->data_factory->uri($download_target);
932 $link = $this->data_factory->link($this->
lng->txt(
'file_download'),
$url);
933 $download_launcher = $this->
ui->factory()->launcher()->inline($link);
935 if (empty($important_info)) {
936 $info->addSection(
"");
939 $info->addProperty(
"", $this->renderer->render($download_launcher));
943 $info->addMetaDataSections($this->
object->getId(), 0, $this->
object->getType());
947 if (!$kiosk_mode && ($this->
access->checkAccess(
"write",
"", $this->ref_id) ||
948 $this->
access->checkAccess(
"edit_permissions",
"", $this->ref_id))) {
951 foreach ($rs as
$r) {
952 if ($this->tree->isInTree($r)) {
956 if (count($refs) > 1) {
958 foreach ($refs as $r) {
960 $cont_loc->addContextItems($r,
true);
961 $links .= $sep . $cont_loc->getHTML();
966 $this->
lng->txt(
"res_links"),
967 '<div class="small">' . $links .
'</div>' 973 $info->addSection($this->
lng->txt(
"file_info"));
975 $file_info_for_users = $this->getFileInfoForUsers();
976 foreach ($file_info_for_users 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);
982 $file_info = $this->getAllFileInfoForCurrentUser();
983 foreach ($file_info as $file_info_block) {
984 foreach ($file_info_block 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);
992 $info->hideFurtherSections(
false);
1001 $ilHelp = $DIC[
'ilHelp'];
1004 $this->
ctrl->setParameter($this,
"ref_id", $this->node_id);
1006 if ((
$c = $this->capabilities->get(Capabilities::VIEW_EXTERNAL)) &&
$c->isUnlocked()) {
1007 $this->tabs_gui->addTab(
1009 $this->
lng->txt(
"content"),
1014 if ((
$c = $this->capabilities->get(Capabilities::MANAGE_VERSIONS)) &&
$c->isUnlocked()) {
1015 $this->tabs_gui->addTab(
1017 $this->
lng->txt(self::CMD_VERSIONS),
1022 if ((
$c = $this->capabilities->get(Capabilities::INFO_PAGE)) &&
$c->isUnlocked()) {
1023 $this->tabs_gui->addTab(
1025 $this->
lng->txt(
"info_short"),
1026 $this->
ctrl->getLinkTargetByClass([
"ilobjfilegui",
"ilinfoscreengui"],
"showSummary")
1030 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1031 $this->tabs_gui->addTab(
1033 $this->
lng->txt(
"settings"),
1034 $this->
ctrl->getLinkTarget($this, self::CMD_EDIT)
1039 $this->tabs_gui->addTab(
1040 'learning_progress',
1041 $this->
lng->txt(
'learning_progress'),
1042 $this->
ctrl->getLinkTargetByClass([self::class,
'illearningprogressgui'],
'')
1047 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1049 $mdtab = $mdgui->getTab();
1051 $this->tabs_gui->addTab(
1053 $this->
lng->txt(
"meta_data"),
1060 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1061 $this->tabs_gui->addTab(
1063 $this->
lng->txt(
"export"),
1064 $this->
ctrl->getLinkTargetByClass(
"ilexportgui",
"")
1074 $this->tabs_gui->activateTab(
"settings");
1076 $this->tabs_gui->addSubTab(
1078 $this->
lng->txt(
'settings'),
1079 $this->
ctrl->getLinkTargetByClass(self::class, self::CMD_EDIT)
1082 $this->tabs_gui->addSubTab(
1084 $this->
lng->txt(
'service_settings'),
1089 $this->tabs_gui->activateSubTab(
"file_settings");
1092 public static function _goto($a_target, $a_additional = null): void
1095 $main_tpl = $DIC->ui()->mainTemplate();
1098 $ilAccess = $DIC[
'ilAccess'];
1100 if ($a_additional && str_ends_with((
string) $a_additional,
"wsp")) {
1105 if ($a_additional && str_ends_with((
string) $a_additional,
"download")) {
1111 if ($ilAccess->checkAccess(
"visible",
"", $a_target)
1112 || $ilAccess->checkAccess(
"read",
"", $a_target)) {
1115 $main_tpl->setOnScreenMessage(
1118 $lng->
txt(
"msg_no_perm_read_item"),
1135 $ilLocator = $DIC[
'ilLocator'];
1137 if (is_object($this->
object)) {
1144 $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
1150 [ilCommonActionDispatcherGUI::class, ilRatingGUI::class]
1167 if (!$this->
object instanceof
ilObjFile) {
1168 throw new ilFileException(
"Error: object is not of type ilObjFile or doesn't exist");
1201 return $this->
ui->factory();
static _hasUserCompleted(int $a_obj_id, int $a_user_id)
Lookup user object completion.
LOMServices $lom_services
infoScreenForward()
show information screen
Class ilObjFileStakeholder.
addItem(string $a_header, string $a_content, bool $a_force_open=false)
CapabilityCollection $capabilities
executeCommand()
execute command
static getLogger(string $a_component_id)
Get component logger.
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...
const UPLOAD_ORIGIN_STANDARD
trait ilObjFileInfoProvider
New implementation of ilObjectGUI.
IconDatabaseRepository $icon_repo
getCreationFormsHTML(StandardForm|ilPropertyFormGUI|array $form)
GUI class for the workflow of copying objects.
addLegacyFormToAccordion(ilAccordionGUI $accordion, ilPropertyFormGUI $form, int $form_type)
Interface Observer Contains several chained tasks and infos about them.
This class provides the data size with additional information to remove the work to calculate the siz...
static _getAllReferences(int $id)
get all reference ids for object ID
static getGotoLink(int $a_node_id, int $a_obj_id, string $a_additional="")
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
static _gotoRepositoryNode(int $ref_id, string $cmd="")
Class ilObjFileProcessorInterface.
prepareOutput(bool $show_sub_objects=true)
addUIFormToAccordion(ilAccordionGUI $accordion, Standard $form, int $form_type)
setVariable(string $variable, $value='')
Sets the given variable to the given value.
__construct(int $a_id=0, int $a_id_type=self::REPOSITORY_NODE_ID, int $a_parent_node_id=0)
Constructor.
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
static _goto($a_target, $a_additional=null)
static _lookupObjId(int $ref_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _tracProgress(int $a_user_id, int $a_obj_id, int $a_ref_id, string $a_obj_type='')
ResourceStakeholder $stakeholder
ilObjectService $obj_service
Provides fluid interface to RBAC services.
static http()
Fetches the global http state from ILIAS.
initHeaderAction(?string $a_sub_type=null, ?int $a_sub_id=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupTitle(int $obj_id)
const CLICK_MODE_DOWNLOAD
UploadLimitResolver $upload_limit
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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)
ilGlobalTemplateInterface $tpl
static _recordWriteEvent(int $obj_id, int $usr_id, string $action, ?int $parent_obj_id=null)
Records a write event.
The scope of this class is split ilias-conform URI's into components.
uploadFiles()
MUST be protected, since this is Called from ilObject2GUI when used in Personal Workspace.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
initCreateForm(string $new_type)
ILIAS UI Component Input Factory $inputs
putObjectInTree(ilObject $obj, int $parent_node_id=null)
General $general_settings
__construct(Container $dic, ilPlugin $plugin)
GUI class for file objects.
const LP_MODE_CONTENT_VISITED
static _gotoSharedWorkspaceNode(int $wsp_id)
const LP_CONTEXT_REPOSITORY
static _getPermanentDownloadLink(int $ref_id)
Gets the permanent download link for the file.
ActionDBRepository $action_repo
Indicates that a file is missing or not found.
static _getActivatedObjTypes()
get activated obj types
setCompleted(bool $a_status)
Interface ResourceStakeholder.
ILIAS Refinery Factory $refinery
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 UPLOAD_ORIGIN_DROPZONE
static _catchupWriteEvents(int $obj_id, int $usr_id, ?string $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
addHeaderAction()
Add header action menu.
const PARAM_UPLOAD_ORIGIN
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
buildInfoScreen(bool $kiosk_mode)
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
UploadHandler $upload_handler
const CLICK_MODE_INFOPAGE
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
static _updateStatus(int $a_obj_id, int $a_usr_id, ?object $a_obj=null, bool $a_percentage=false, bool $a_force_raise=false)
ilFileServicesSettings $file_service_settings
ServerRequestInterface $request