67 public const CMD_EDIT = Capabilities::EDIT_SETTINGS->value;
90 protected \ILIAS\UI\Component\Input\Factory
$inputs;
100 public function __construct(
int $a_id = 0,
int $a_id_type = self::REPOSITORY_NODE_ID,
int $a_parent_node_id = 0)
103 $this->
http = $DIC->http()->wrapper();
104 $this->request = $DIC->http()->request();
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 $ilCtrl = $DIC[
'ilCtrl'];
173 $ilUser = $DIC[
'ilUser'];
174 $ilTabs = $DIC[
'ilTabs'];
177 $next_class = $this->
ctrl->getNextClass($this);
178 $cmd = $this->
ctrl->getCmd();
183 $this->id_type == self::REPOSITORY_NODE_ID
184 && $this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()
187 $ilNavigationHistory->addItem(
189 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri(),
198 $suffix = $info->getSuffix();
199 $path_file_icon = $this->icon_repo->getIconFilePathBySuffix($suffix);
200 $this->tpl->setTitleIcon($path_file_icon);
202 switch ($next_class) {
203 case strtolower(ilInfoScreenGUI::class):
207 case 'ilobjectmetadatagui':
208 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
209 $ilErr->raiseError($this->
lng->txt(
'permission_denied'),
$ilErr->WARNING);
212 $ilTabs->activateTab(
"id_meta");
219 $this->
ctrl->forwardCommand($md_gui);
223 case 'ilpermissiongui':
224 $ilTabs->activateTab(
"id_permissions");
226 $this->
ctrl->forwardCommand($perm_gui);
230 $ilTabs->activateTab(
"export");
232 $exp_gui->addFormat();
233 $this->
ctrl->forwardCommand($exp_gui);
236 case 'ilobjectcopygui':
239 $this->
ctrl->forwardCommand($cp);
243 case "ilworkspaceaccessgui":
244 $ilTabs->activateTab(
"id_permissions");
246 $this->
ctrl->forwardCommand($wspacc);
249 case "ilcommonactiondispatchergui":
251 $this->
ctrl->forwardCommand($gui);
254 case "illearningprogressgui":
255 $ilTabs->activateTab(
'learning_progress');
257 ? $this->
http->query()->retrieve(
'user_id', $this->
refinery->kindlyTo()->int())
261 $this->
object->getRefId(),
264 $this->
ctrl->forwardCommand($new_gui);
265 $this->tabs_gui->setTabActive(
'learning_progress');
267 case strtolower(ilFileVersionsGUI::class):
268 $this->tabs_gui->activateTab(
"id_versions");
270 if (!$this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
271 $this->error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
277 case strtolower(ilObjFileUploadHandlerGUI::class):
280 case strtolower(ilWOPIEmbeddedApplicationGUI::class):
281 $capability = match($cmd) {
288 if ($capability ===
null || !$capability->isUnlocked()) {
289 $this->error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
292 $action = match ($capability->getCapability()) {
293 Capabilities::VIEW_EXTERNAL => $this->action_repo->getViewActionForSuffix($suffix),
294 Capabilities::EDIT_EXTERNAL => $this->action_repo->getEditActionForSuffix($suffix),
298 $this->tabs_gui->activateTab(
'content');
302 $this->storage->manage()->find($this->
object->getResourceId()),
305 new URI(ilLink::_getLink($this->
object->getRefId())),
306 $capability->getCapability() === Capabilities::VIEW_EXTERNAL
309 $this->
ctrl->forwardCommand(
316 case strtolower(ilFileCommonSettingsGUI::class):
318 $this->tabs_gui->activateSubTab(
"service_settings");
319 $this->
ctrl->forwardCommand(
325 $this->object_service
332 if ($this->id_type === self::WORKSPACE_NODE_ID) {
334 $ilTabs->clearTargets();
336 if (empty($cmd) || $cmd ===
'render') {
337 $cmd = Capabilities::INFO_PAGE->value;
340 parent::executeCommand();
345 if (empty($cmd) || $cmd ===
'render') {
346 $cmd = Capabilities::INFO_PAGE->value;
363 if (!in_array($form_type, [self::CFORM_NEW, self::CFORM_CLONE, self::CFORM_IMPORT],
true)) {
369 $title = ($inputs === []) ?
370 '' : $inputs[array_key_first($inputs)]->getLabel();
372 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
373 $tpl->
setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
384 if (!in_array($form_type, [self::CFORM_NEW, self::CFORM_CLONE, self::CFORM_IMPORT],
true)) {
390 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
391 $tpl->
setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
408 return $this->
lng->txt(
'upload_files');
416 $this->
ctrl->setParameterByClass(self::class,
'new_type', $this->
getType());
417 $this->
ctrl->setParameterByClass(
419 self::PARAM_UPLOAD_ORIGIN,
420 self::UPLOAD_ORIGIN_STANDARD
424 $inputs[self::PARAM_FILES] = $this->
ui->factory()->input()->field()->file(
425 $this->upload_handler,
426 $this->
lng->txt(
'upload_files'),
427 $this->
ui->factory()->input()->field()->group([
428 self::PARAM_TITLE => $this->
ui->factory()->input()->field()->text(
429 $this->
lng->txt(
'title')
431 $this->getEmptyStringToNullTransformation()
433 self::PARAM_DESCRIPTION => $this->
ui->factory()->input()->field()->textarea(
434 $this->
lng->txt(
'description')
436 $this->getEmptyStringToNullTransformation()
440 self::UPLOAD_MAX_FILES
441 )->withRequired(
true);
443 if ($this->lom_services->copyrightHelper()->isCopyrightSelectionActive()) {
444 $inputs[self::PARAM_COPYRIGHT_ID] = $this->getCopyrightSelectionInput(
'set_license_for_all_files');
447 return $this->
ui->factory()->input()->container()->form()->standard(
448 $this->
ctrl->getFormActionByClass(self::class, self::CMD_UPLOAD_FILES),
450 )->withSubmitLabel($this->
lng->txt(
'upload_files'));
458 $origin = ($this->
http->query()->has(self::PARAM_UPLOAD_ORIGIN)) ?
459 $this->
http->query()->retrieve(
460 self::PARAM_UPLOAD_ORIGIN,
461 $this->
refinery->kindlyTo()->string()
462 ) : self::UPLOAD_ORIGIN_STANDARD;
464 if (self::UPLOAD_ORIGIN_DROPZONE === $origin) {
466 $dropzone = $dropzone->getDropzone()->withRequest($this->request);
467 $data = $dropzone->getData();
470 $data = $form->getData();
484 $this->file_service_settings
488 foreach ($files as $file_data) {
489 $rid = $this->storage->manage()->find($file_data[$this->upload_handler->getFileIdentifierParameterName()]);
494 $file_data[self::PARAM_TITLE] ?? null,
495 $file_data[self::PARAM_DESCRIPTION] ?? null,
496 $data[self::PARAM_COPYRIGHT_ID] ??
$data[1] ?? null
500 if (null !== $this->log) {
501 $this->log->error($t->getMessage() .
": " . $t->getTraceAsString());
508 $this->
ui->mainTemplate()->setOnScreenMessage(
510 $this->
lng->txt(
'could_not_create_file_objs'),
515 if ($processor->getInvalidFileNames() !== []) {
516 $this->
ui->mainTemplate()->setOnScreenMessage(
519 $this->
lng->txt(
'file_upload_info_file_with_critical_extension'),
520 implode(
', ', $processor->getInvalidFileNames())
526 $link = match ($this->id_type) {
527 self::WORKSPACE_NODE_ID => $this->
ctrl->getLinkTargetByClass(ilObjWorkspaceRootFolderGUI::class),
528 default => ilLink::_getLink($this->requested_ref_id),
531 $this->
ctrl->redirectToURL($link);
539 parent::putObjectInTree($obj, $parent_node_id);
540 $this->node_id = $backup_node_id;
547 public function update():
void 551 $form = $form->withRequest($this->request);
552 $inputs = $form->getData();
557 $title_and_description = $inputs[
'file_info'][
'title_and_description'];
559 $title = $title_and_description->getTitle();
561 $filename = $this->
object->getFileName();
562 if (trim((
string) $title) ===
'') {
565 $title = $this->
object->appendSuffixToTitle($title,
$filename);
567 $this->
object->handleChangedObjectTitle($title);
569 $description = $title_and_description->getLongDescription();
570 $this->
object->setDescription($description);
573 $this->
object->getObjectProperties()->storePropertyTitleAndDescription($updated_title_and_description);
575 $this->
object->setImportantInfo($inputs[
'file_info'][
'important_info']);
576 $this->
object->setRating($inputs[
'obj_features'][
'rating'] ??
false);
577 $this->
object->setOnclickMode((
int) $inputs[
'file_info'][
'on_click_action']);
578 $this->
object->update();
580 $this->
object->getObjectProperties()->storePropertyIsOnline($inputs[
'availability'][
'online_status']);
582 if (($inputs[
'presentation'][
'tile_image'] ??
null) !== null) {
583 $this->
object->getObjectProperties()->storePropertyTileImage($inputs[
'presentation'][
'tile_image']);
587 if (!empty(
$data[
"name"])) {
589 $ilUser = $DIC[
'ilUser'];
599 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_obj_modified"),
true);
600 $this->
ctrl->redirectByClass(self::class, self::CMD_EDIT);
609 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
610 $ilErr->raiseError($this->
lng->txt(
"msg_no_perm_write"));
620 $this->tpl->setContent($this->
renderer->render($form));
625 $title_and_description = $this->
object->getObjectProperties()->getPropertyTitleAndDescription()->toForm(
627 $this->
ui->factory()->input()->field(),
631 $important_info = $this->inputs->field()->markdown(
633 $this->
lng->txt(
'important_info'),
634 $this->
lng->txt(
'important_info_byline')
636 $this->
object->getImportantInfo() ??
"" 639 $on_click_action = $this->inputs->field()->radio(
640 $this->
lng->txt(
'on_click_action')
643 $this->
lng->txt(
'file_action_download'),
644 $this->
lng->txt(
'file_action_download_info'),
647 $this->
lng->txt(
'file_action_show'),
648 $this->
lng->txt(
'file_action_show_info'),
650 (
string) $this->
object->getOnClickMode()
653 $input_groups = array_filter([
654 "title_and_description" => $title_and_description,
655 "important_info" => $important_info,
656 "on_click_action" => $on_click_action
657 ],
static fn($input):
bool =>
null !== $input);
659 $file_info_section = $this->inputs->field()->section(
661 $this->
lng->txt(
'file_info')
664 $online_status = $this->
object->getObjectProperties()->getPropertyIsOnline()->toForm(
666 $this->
ui->factory()->input()->field(),
669 $availability_section = $this->inputs->field()->section(
670 [
"online_status" => $online_status],
671 $this->
lng->txt(
'rep_activation_availability')
674 $presentation_section =
null;
675 if ($this->id_type === self::REPOSITORY_NODE_ID) {
676 $tile_image = $this->
object->getObjectProperties()->getPropertyTileImage()->toForm(
678 $this->
ui->factory()->input()->field(),
681 $presentation_section = $this->inputs->field()->section(
682 [
"tile_image" => $tile_image],
683 $this->
lng->txt(
'settings_presentation_header')
687 $additional_features_section =
null;
688 if ($this->id_type === self::REPOSITORY_NODE_ID) {
689 $this->
lng->loadLanguageModule(
'rating');
691 $enable_rating = $this->inputs->field()->checkbox(
692 $this->
lng->txt(
'rating_activate_rating'),
693 $this->
lng->txt(
'rating_activate_rating_info')
695 $this->
object->hasRating()
697 $additional_features_section = $this->inputs->field()->section(
698 [
"rating" => $enable_rating],
699 $this->
lng->txt(
'obj_features')
703 $inputs = array_filter([
704 "file_info" => $file_info_section,
705 "availability" => $availability_section,
706 "presentation" => $presentation_section,
707 "obj_features" => $additional_features_section
708 ],
static fn($input):
bool =>
null !== $input);
710 return $this->inputs->container()->form()->standard(
711 $this->
ctrl->getLinkTargetByClass(self::class,
'update'),
718 $hist_entry_id = $this->
http->query()->has(
'hist_id')
719 ? $this->
http->query()->retrieve(
'hist_id', $this->
refinery->kindlyTo()->int())
723 $this->
object->sendFile($hist_entry_id);
726 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
730 $this->
object->getRefId(),
731 $this->
object->getId(),
736 $this->
object->sendFile($hist_entry_id);
738 $this->error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
741 $this->error->raiseError($e->getMessage(), $this->error->MESSAGE);
752 $this->
ctrl->redirectToURL(
753 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri()
758 $this->
ctrl->redirectToURL(
759 (
string) $this->capabilities->get(Capabilities::FORCED_INFO_PAGE)->getUri()
765 $this->
ctrl->redirectToURL(
766 (
string) $this->capabilities->get(Capabilities::MANAGE_VERSIONS)->getUri()
772 $this->
ctrl->redirectToURL(
773 (
string) $this->capabilities->get(Capabilities::UNZIP)->getUri()
779 $this->
ctrl->redirectToURL(
780 (
string) $this->capabilities->get(Capabilities::EDIT_EXTERNAL)->getUri()
785 $this->
ctrl->redirectToURL(
786 (
string) $this->capabilities->get(Capabilities::VIEW_EXTERNAL)->getUri()
795 $this->tabs_gui->activateTab(
"id_info");
797 if (!$this->capabilities->get(Capabilities::INFO_PAGE)->isUnlocked()) {
798 $GLOBALS[
'DIC'][
'ilErr']->raiseError(
799 $this->
lng->txt(
"msg_no_perm_read"),
807 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_completed');
809 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_not_completed');
812 $this->
ui->factory()->button()->standard(
814 $this->
ctrl->getLinkTarget($this,
'toggleLearningProgress')
820 if ($this->capabilities->get(Capabilities::EDIT_EXTERNAL)->isUnlocked()) {
821 $external_editor = $this->
ui->factory()
824 $this->
lng->txt(
'open_external_editor'),
825 $this->
ctrl->getLinkTargetByClass(
826 \ilWOPIEmbeddedApplicationGUI::class,
830 $this->
toolbar->addComponent($external_editor);
834 $this->
ctrl->forwardCommand($info);
840 $this->
user->getId(),
846 $lp_marks =
new ilLPMarks($this->obj_id, $this->
user->getId());
852 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_obj_modified'),
true);
853 $this->
ctrl->redirect($this, Capabilities::INFO_PAGE->value);
861 $info->enablePrivateNotes();
863 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
868 $info->enableNewsEditing(
false);
869 if ($this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
871 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
873 if ($enable_internal_rss) {
874 $info->setBlockProperty(
"news",
"settings",
true);
875 $info->setBlockProperty(
"news",
"public_notifications_option",
true);
879 $obj_id = $this->
object->getId();
886 $this->call_by_reference
888 $record_gui->setInfoObject($info);
889 $record_gui->parse();
894 $important_info = $this->
object->getImportantInfo();
895 if (!empty($important_info)) {
897 $markdown_to_html = $group->markdown()->toHTML();
899 $info->addSection($this->
lng->txt(
"important_info"));
900 $info->addProperty(
"", $markdown_to_html->transform($important_info));
904 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
906 if ($this->id_type === self::REPOSITORY_NODE_ID) {
909 $download_target = rtrim(ILIAS_HTTP_PATH,
'/') .
'/' . $this->
ctrl->getLinkTarget(
914 $url = $this->data_factory->uri($download_target);
915 $link = $this->data_factory->link($this->
lng->txt(
'file_download'),
$url);
916 $download_launcher = $this->
ui->factory()->launcher()->inline($link);
918 if (empty($important_info)) {
919 $info->addSection(
"");
922 $info->addProperty(
"", $this->
renderer->render($download_launcher));
926 $info->addMetaDataSections($this->
object->getId(), 0, $this->
object->getType());
930 if (!$kiosk_mode && ($this->
access->checkAccess(
"write",
"", $this->ref_id) ||
931 $this->
access->checkAccess(
"edit_permissions",
"", $this->ref_id))) {
934 foreach ($rs as
$r) {
935 if ($this->tree->isInTree($r)) {
939 if (count($refs) > 1) {
941 foreach ($refs as $r) {
943 $cont_loc->addContextItems($r,
true);
944 $links .= $sep . $cont_loc->getHTML();
949 $this->
lng->txt(
"res_links"),
950 '<div class="small">' . $links .
'</div>' 956 $info->addSection($this->
lng->txt(
"file_info"));
958 $file_info_for_users = $this->getFileInfoForUsers();
959 foreach ($file_info_for_users as $file_info_entry_key => $file_info_entry_value) {
960 if ($file_info_entry_value !==
null) {
961 $info->addProperty($file_info_entry_key, $file_info_entry_value);
965 $file_info = $this->getAllFileInfoForCurrentUser();
966 foreach ($file_info as $file_info_block) {
967 foreach ($file_info_block as $file_info_entry_key => $file_info_entry_value) {
968 if ($file_info_entry_value !==
null) {
969 $info->addProperty($file_info_entry_key, $file_info_entry_value);
975 $info->hideFurtherSections(
false);
985 $ilHelp = $DIC[
'ilHelp'];
988 $this->
ctrl->setParameter($this,
"ref_id", $this->node_id);
990 if ((
$c = $this->capabilities->get(Capabilities::VIEW_EXTERNAL)) &&
$c->isUnlocked()) {
991 $this->tabs_gui->addTab(
993 $this->
lng->txt(
"content"),
998 if ((
$c = $this->capabilities->get(Capabilities::MANAGE_VERSIONS)) &&
$c->isUnlocked()) {
999 $this->tabs_gui->addTab(
1001 $this->
lng->txt(self::CMD_VERSIONS),
1006 if ((
$c = $this->capabilities->get(Capabilities::INFO_PAGE)) &&
$c->isUnlocked()) {
1007 $this->tabs_gui->addTab(
1009 $this->
lng->txt(
"info_short"),
1010 $this->
ctrl->getLinkTargetByClass([
"ilobjfilegui",
"ilinfoscreengui"],
"showSummary")
1014 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1015 $this->tabs_gui->addTab(
1017 $this->
lng->txt(
"settings"),
1018 $this->
ctrl->getLinkTarget($this, self::CMD_EDIT)
1023 $this->tabs_gui->addTab(
1024 'learning_progress',
1025 $this->
lng->txt(
'learning_progress'),
1026 $this->
ctrl->getLinkTargetByClass([self::class,
'illearningprogressgui'],
'')
1031 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1033 $mdtab = $mdgui->getTab();
1035 $this->tabs_gui->addTab(
1037 $this->
lng->txt(
"meta_data"),
1044 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1045 $this->tabs_gui->addTab(
1047 $this->
lng->txt(
"export"),
1048 $this->
ctrl->getLinkTargetByClass(
"ilexportgui",
"")
1058 $this->tabs_gui->activateTab(
"settings");
1060 $this->tabs_gui->addSubTab(
1062 $this->
lng->txt(
'settings'),
1063 $this->
ctrl->getLinkTargetByClass(self::class, self::CMD_EDIT)
1066 $this->tabs_gui->addSubTab(
1068 $this->
lng->txt(
'service_settings'),
1073 $this->tabs_gui->activateSubTab(
"file_settings");
1076 public static function _goto($a_target, $a_additional =
null): void
1079 $main_tpl = $DIC->ui()->mainTemplate();
1082 $ilAccess = $DIC[
'ilAccess'];
1084 if ($a_additional && str_ends_with((
string) $a_additional,
"wsp")) {
1089 if ($a_additional && str_ends_with((
string) $a_additional,
"download")) {
1095 if ($ilAccess->checkAccess(
"visible",
"", $a_target)
1096 || $ilAccess->checkAccess(
"read",
"", $a_target)) {
1099 $main_tpl->setOnScreenMessage(
1102 $lng->
txt(
"msg_no_perm_read_item"),
1119 $ilLocator = $DIC[
'ilLocator'];
1121 if (is_object($this->
object)) {
1129 $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
1135 [ilCommonActionDispatcherGUI::class, ilRatingGUI::class]
1152 if (!$this->
object instanceof
ilObjFile) {
1153 throw new ilFileException(
"Error: object is not of type ilObjFile or doesn't exist");
1186 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.
static _getAllReferences(int $id)
get all reference ids for object ID
static _gotoRepositoryNode(int $ref_id, string $cmd="")
Class ilObjFileProcessorInterface.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
prepareOutput(bool $show_sub_objects=true)
addUIFormToAccordion(ilAccordionGUI $accordion, Standard $form, int $form_type)
__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
setVariable(string $variable, $value='')
Sets the given variable to the given value.
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='')
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
ResourceStakeholder $stakeholder
ilObjectService $obj_service
Provides fluid interface to RBAC services.
putObjectInTree(ilObject $obj, ?int $parent_node_id=null)
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
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.
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)
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
ILIAS UI Component Input Factory $inputs
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
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
Class ilObjUserTrackingGUI.
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