68 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)
104 $this->file_service_settings = $DIC->fileServiceSettings();
105 $this->
user = $DIC->user();
106 $this->
lng = $DIC->language();
108 $this->
ui = $DIC->ui();
109 $this->storage = $DIC->resourceStorage();
112 $this->general_settings =
new General();
114 $this->obj_service = $DIC->object();
117 $this->inputs = $DIC->ui()->factory()->input();
118 $this->
renderer = $DIC->ui()->renderer();
119 $this->request = $DIC->http()->request();
120 $this->data_factory =
new Factory();
122 $this->lom_services = $DIC->learningObjectMetadata();
130 $DIC[
'static_url.uri_builder']
133 $capability_context =
new Context(
136 ($a_id_type === self::WORKSPACE_NODE_ID) ? Context::CONTEXT_WORKSPACE : Context::CONTEXT_REPO
139 $this->capabilities = $capability_builder->get($capability_context);
147 $this->
user->getId(),
169 $ilNavigationHistory = $DIC[
'ilNavigationHistory'];
170 $ilCtrl = $DIC[
'ilCtrl'];
171 $ilUser = $DIC[
'ilUser'];
172 $ilTabs = $DIC[
'ilTabs'];
175 $next_class = $this->
ctrl->getNextClass($this);
176 $cmd = $this->
ctrl->getCmd();
181 $this->id_type == self::REPOSITORY_NODE_ID
182 && $this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()
185 $ilNavigationHistory->addItem(
187 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri(),
196 $suffix =
$info->getSuffix();
197 $path_file_icon = $this->icon_repo->getIconFilePathBySuffix($suffix);
198 $this->tpl->setTitleIcon($path_file_icon);
200 switch ($next_class) {
201 case strtolower(ilInfoScreenGUI::class):
205 case 'ilobjectmetadatagui':
206 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
207 $ilErr->raiseError($this->
lng->txt(
'permission_denied'),
$ilErr->WARNING);
210 $ilTabs->activateTab(
"id_meta");
217 $this->
ctrl->forwardCommand($md_gui);
221 case 'ilpermissiongui':
222 $ilTabs->activateTab(
"id_permissions");
224 $this->
ctrl->forwardCommand($perm_gui);
228 $ilTabs->activateTab(
"export");
230 $exp_gui->addFormat();
231 $this->
ctrl->forwardCommand($exp_gui);
234 case 'ilobjectcopygui':
237 $this->
ctrl->forwardCommand($cp);
241 case "ilworkspaceaccessgui":
242 $ilTabs->activateTab(
"id_permissions");
244 $this->
ctrl->forwardCommand($wspacc);
247 case "ilcommonactiondispatchergui":
249 $this->
ctrl->forwardCommand($gui);
252 case "illearningprogressgui":
253 $ilTabs->activateTab(
'learning_progress');
254 $user_id = $this->request_wrapper->has(
'user_id')
255 ? $this->request_wrapper->retrieve(
'user_id', $this->
refinery->kindlyTo()->int())
259 $this->
object->getRefId(),
262 $this->
ctrl->forwardCommand($new_gui);
263 $this->tabs_gui->setTabActive(
'learning_progress');
265 case strtolower(ilFileVersionsGUI::class):
266 $this->tabs_gui->activateTab(
"id_versions");
268 if (!$this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
269 $this->error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
275 case strtolower(ilObjFileUploadHandlerGUI::class):
278 case strtolower(ilWOPIEmbeddedApplicationGUI::class):
279 $capability = match($cmd) {
286 if ($capability ===
null || !$capability->isUnlocked()) {
287 $this->error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
290 $action = match ($capability->getCapability()) {
291 Capabilities::VIEW_EXTERNAL => $this->action_repo->getViewActionForSuffix($suffix),
292 Capabilities::EDIT_EXTERNAL => $this->action_repo->getEditActionForSuffix($suffix),
296 $this->tabs_gui->activateTab(
'content');
299 if ($this->id_type === Context::CONTEXT_WORKSPACE) {
305 $goto_link = ilLink::_getLink($this->
object->getRefId());
309 $this->storage->manage()->find($this->
object->getResourceId()),
313 $capability->getCapability() === Capabilities::VIEW_EXTERNAL
316 $this->
ctrl->forwardCommand(
323 case strtolower(ilFileCommonSettingsGUI::class):
325 $this->tabs_gui->activateSubTab(
"service_settings");
326 $this->
ctrl->forwardCommand(
332 $this->object_service
339 if ($this->id_type === self::WORKSPACE_NODE_ID) {
341 $ilTabs->clearTargets();
343 if (empty($cmd) || $cmd ===
'render') {
344 $cmd = Capabilities::INFO_PAGE->value;
347 parent::executeCommand();
352 if (empty($cmd) || $cmd ===
'render') {
353 $cmd = Capabilities::INFO_PAGE->value;
370 if (!in_array($form_type, [self::CFORM_NEW, self::CFORM_CLONE, self::CFORM_IMPORT],
true)) {
376 $title = ($inputs === []) ?
377 '' : $inputs[array_key_first($inputs)]->getLabel();
379 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
380 $tpl->
setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
391 if (!in_array($form_type, [self::CFORM_NEW, self::CFORM_CLONE, self::CFORM_IMPORT],
true)) {
397 $tpl =
new ilTemplate(
"tpl.creation_acc_head.html",
true,
true,
"components/ILIAS/ILIASObject");
398 $tpl->
setVariable(
"TITLE", $this->
lng->txt(
"option") .
" " . $form_type .
": " . $title);
415 return $this->
lng->txt(
'upload_files');
423 $this->
ctrl->setParameterByClass(self::class,
'new_type', $this->
getType());
424 $this->
ctrl->setParameterByClass(
426 self::PARAM_UPLOAD_ORIGIN,
427 self::UPLOAD_ORIGIN_STANDARD
431 $inputs[self::PARAM_FILES] = $this->
ui->factory()->input()->field()->file(
432 $this->upload_handler,
433 $this->
lng->txt(
'upload_files'),
435 $this->
ui->factory()->input()->field()->group([
436 self::PARAM_TITLE => $this->
ui->factory()->input()->field()->text(
437 $this->
lng->txt(
'title')
439 $this->getEmptyStringToNullTransformation()
441 self::PARAM_DESCRIPTION => $this->
ui->factory()->input()->field()->textarea(
442 $this->
lng->txt(
'description')
444 $this->getEmptyStringToNullTransformation()
448 self::UPLOAD_MAX_FILES
449 )->withRequired(
true);
451 if ($this->lom_services->copyrightHelper()->isCopyrightSelectionActive()) {
452 $inputs[self::PARAM_COPYRIGHT_ID] = $this->getCopyrightSelectionInput(
'set_license_for_all_files');
455 return $this->
ui->factory()->input()->container()->form()->standard(
456 $this->
ctrl->getFormActionByClass(self::class, self::CMD_UPLOAD_FILES),
458 )->withSubmitLabel($this->
lng->txt(
'upload_files'));
466 $origin = ($this->request_wrapper->has(self::PARAM_UPLOAD_ORIGIN)) ?
467 $this->request_wrapper->retrieve(
468 self::PARAM_UPLOAD_ORIGIN,
469 $this->refinery->kindlyTo()->string()
470 ) : self::UPLOAD_ORIGIN_STANDARD;
472 if (self::UPLOAD_ORIGIN_DROPZONE === $origin) {
474 $dropzone = $dropzone->getDropzone()->withRequest($this->request);
475 $data = $dropzone->getData();
478 $data = $form->getData();
492 $this->file_service_settings
496 foreach ($files as $file_data) {
497 $rid = $this->storage->manage()->find($file_data[0]);
502 $file_data[1][self::PARAM_TITLE] ?? null,
503 $file_data[1][self::PARAM_DESCRIPTION] ?? null,
504 $data[self::PARAM_COPYRIGHT_ID] ?? null
508 if (null !== $this->log) {
509 $this->log->error($t->getMessage() .
": " . $t->getTraceAsString());
516 $this->
ui->mainTemplate()->setOnScreenMessage(
518 $this->
lng->txt(
'could_not_create_file_objs'),
523 if ($processor->getInvalidFileNames() !== []) {
524 $this->
ui->mainTemplate()->setOnScreenMessage(
527 $this->
lng->txt(
'file_upload_info_file_with_critical_extension'),
528 implode(
', ', $processor->getInvalidFileNames())
534 $link = match ($this->id_type) {
535 self::WORKSPACE_NODE_ID => $this->
ctrl->getLinkTargetByClass(ilObjWorkspaceRootFolderGUI::class),
536 default => ilLink::_getLink($this->requested_ref_id),
539 $this->
ctrl->redirectToURL($link);
547 parent::putObjectInTree($obj, $parent_node_id);
548 $this->node_id = $backup_node_id;
555 public function update():
void 559 $form = $form->withRequest($this->request);
560 $inputs = $form->getData();
565 $title_and_description = $inputs[
'file_info'][
'title_and_description'];
567 $title = $title_and_description->getTitle();
569 $filename = $this->
object->getFileName();
570 if (trim((
string) $title) ===
'') {
573 $title = $this->
object->appendSuffixToTitle($title,
$filename);
575 $this->
object->handleChangedObjectTitle($title);
577 $description = $title_and_description->getLongDescription();
578 $this->
object->setDescription($description);
581 $this->
object->getObjectProperties()->storePropertyTitleAndDescription($updated_title_and_description);
583 $this->
object->setImportantInfo($inputs[
'file_info'][
'important_info']);
584 $this->
object->setRating($inputs[
'obj_features'][
'rating'] ??
false);
585 $this->
object->setOnclickMode((
int) $inputs[
'file_info'][
'on_click_action']);
586 $this->
object->update();
588 $this->
object->getObjectProperties()->storePropertyIsOnline($inputs[
'availability'][
'online_status']);
590 if (($inputs[
'presentation'][
'tile_image'] ??
null) !== null) {
591 $this->
object->getObjectProperties()->storePropertyTileImage($inputs[
'presentation'][
'tile_image']);
595 if (!empty(
$data[
"name"])) {
597 $ilUser = $DIC[
'ilUser'];
607 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_obj_modified"),
true);
608 $this->
ctrl->redirectByClass(self::class, self::CMD_EDIT);
617 if (!$this->capabilities->get(Capabilities::EDIT_SETTINGS)->isUnlocked()) {
618 $ilErr->raiseError($this->
lng->txt(
"msg_no_perm_write"));
628 $this->tpl->setContent($this->
renderer->render($form));
633 $title_and_description = $this->
object->getObjectProperties()->getPropertyTitleAndDescription()->toForm(
635 $this->
ui->factory()->input()->field(),
639 $important_info = $this->inputs->field()->markdown(
641 $this->
lng->txt(
'important_info'),
642 $this->
lng->txt(
'important_info_byline')
644 $this->
object->getImportantInfo() ??
"" 647 $on_click_action = $this->inputs->field()->radio(
648 $this->
lng->txt(
'on_click_action')
651 $this->
lng->txt(
'file_action_download'),
652 $this->
lng->txt(
'file_action_download_info'),
655 $this->
lng->txt(
'file_action_show'),
656 $this->
lng->txt(
'file_action_show_info'),
658 (
string) $this->
object->getOnClickMode()
661 $input_groups = array_filter([
662 "title_and_description" => $title_and_description,
663 "important_info" => $important_info,
664 "on_click_action" => $on_click_action
665 ],
static fn($input):
bool =>
null !== $input);
667 $file_info_section = $this->inputs->field()->section(
669 $this->
lng->txt(
'file_info')
672 $online_status = $this->
object->getObjectProperties()->getPropertyIsOnline()->toForm(
674 $this->
ui->factory()->input()->field(),
677 $availability_section = $this->inputs->field()->section(
678 [
"online_status" => $online_status],
679 $this->
lng->txt(
'rep_activation_availability')
682 $presentation_section =
null;
683 if ($this->id_type === self::REPOSITORY_NODE_ID) {
684 $tile_image = $this->
object->getObjectProperties()->getPropertyTileImage()->toForm(
686 $this->
ui->factory()->input()->field(),
689 $presentation_section = $this->inputs->field()->section(
690 [
"tile_image" => $tile_image],
691 $this->
lng->txt(
'settings_presentation_header')
695 $additional_features_section =
null;
696 if ($this->id_type === self::REPOSITORY_NODE_ID) {
697 $this->
lng->loadLanguageModule(
'rating');
699 $enable_rating = $this->inputs->field()->checkbox(
700 $this->
lng->txt(
'rating_activate_rating'),
701 $this->
lng->txt(
'rating_activate_rating_info')
703 $this->
object->hasRating()
705 $additional_features_section = $this->inputs->field()->section(
706 [
"rating" => $enable_rating],
707 $this->
lng->txt(
'obj_features')
711 $inputs = array_filter([
712 "file_info" => $file_info_section,
713 "availability" => $availability_section,
714 "presentation" => $presentation_section,
715 "obj_features" => $additional_features_section
716 ],
static fn($input):
bool =>
null !== $input);
718 return $this->inputs->container()->form()->standard(
719 $this->
ctrl->getLinkTargetByClass(self::class,
'update'),
726 $hist_entry_id = $this->request_wrapper->has(
'hist_id')
727 ? $this->request_wrapper->retrieve(
'hist_id', $this->
refinery->kindlyTo()->int())
731 $this->
object->sendFile($hist_entry_id);
734 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
738 $this->
object->getRefId(),
739 $this->
object->getId(),
744 $this->
object->sendFile($hist_entry_id);
746 $this->error->raiseError($this->
lng->txt(
"permission_denied"), $this->error->MESSAGE);
749 $this->error->raiseError($e->getMessage(), $this->error->MESSAGE);
760 $this->
ctrl->redirectToURL(
761 (
string) $this->capabilities->get(Capabilities::INFO_PAGE)->getUri()
766 $this->
ctrl->redirectToURL(
767 (
string) $this->capabilities->get(Capabilities::FORCED_INFO_PAGE)->getUri()
773 $this->
ctrl->redirectToURL(
774 (
string) $this->capabilities->get(Capabilities::MANAGE_VERSIONS)->getUri()
780 $this->
ctrl->redirectToURL(
781 (
string) $this->capabilities->get(Capabilities::UNZIP)->getUri()
787 $this->
ctrl->redirectToURL(
788 (
string) $this->capabilities->get(Capabilities::EDIT_EXTERNAL)->getUri()
793 $this->
ctrl->redirectToURL(
794 (
string) $this->capabilities->get(Capabilities::VIEW_EXTERNAL)->getUri()
803 $this->tabs_gui->activateTab(
"id_info");
805 if (!$this->capabilities->get(Capabilities::INFO_PAGE)->isUnlocked()) {
806 $GLOBALS[
'DIC'][
'ilErr']->raiseError(
807 $this->
lng->txt(
"msg_no_perm_read"),
815 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_completed');
817 $label = $this->
lng->txt(
'file_btn_lp_toggle_state_not_completed');
820 $this->
ui->factory()->button()->standard(
822 $this->
ctrl->getLinkTarget($this,
'toggleLearningProgress')
828 if ($this->capabilities->get(Capabilities::EDIT_EXTERNAL)->isUnlocked()) {
829 $external_editor = $this->
ui->factory()
832 $this->
lng->txt(
'open_external_editor'),
833 $this->
ctrl->getLinkTargetByClass(
834 \ilWOPIEmbeddedApplicationGUI::class,
838 $this->
toolbar->addComponent($external_editor);
848 $this->
user->getId(),
854 $lp_marks =
new ilLPMarks($this->obj_id, $this->
user->getId());
860 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_obj_modified'),
true);
861 $this->
ctrl->redirect($this, Capabilities::INFO_PAGE->value);
869 $info->enablePrivateNotes();
871 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
876 $info->enableNewsEditing(
false);
877 if ($this->capabilities->get(Capabilities::MANAGE_VERSIONS)->isUnlocked()) {
879 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
881 if ($enable_internal_rss) {
882 $info->setBlockProperty(
"news",
"settings",
true);
883 $info->setBlockProperty(
"news",
"public_notifications_option",
true);
887 $obj_id = $this->
object->getId();
894 $this->call_by_reference
896 $record_gui->setInfoObject(
$info);
897 $record_gui->parse();
902 $important_info = $this->
object->getImportantInfo();
903 if (!empty($important_info)) {
905 $markdown_to_html = $group->markdown()->toHTML();
907 $info->addSection($this->
lng->txt(
"important_info"));
908 $info->addProperty(
"", $markdown_to_html->transform($important_info));
912 if ($this->capabilities->get(Capabilities::DOWNLOAD)->isUnlocked()) {
914 if ($this->id_type === self::REPOSITORY_NODE_ID) {
917 $download_target = rtrim(ILIAS_HTTP_PATH,
'/') .
'/' . $this->
ctrl->getLinkTarget(
922 $url = $this->data_factory->uri($download_target);
923 $link = $this->data_factory->link($this->
lng->txt(
'file_download'),
$url);
924 $download_launcher = $this->
ui->factory()->launcher()->inline($link);
926 if (empty($important_info)) {
927 $info->addSection(
"");
930 $info->addProperty(
"", $this->
renderer->render($download_launcher));
934 $info->addMetaDataSections($this->
object->getId(), 0, $this->
object->getType());
938 if (!$kiosk_mode && ($this->
access->checkAccess(
"write",
"", $this->ref_id) ||
939 $this->
access->checkAccess(
"edit_permissions",
"", $this->ref_id))) {
942 foreach ($rs as
$r) {
943 if ($this->tree->isInTree($r)) {
947 if (count($refs) > 1) {
949 foreach ($refs as $r) {
951 $cont_loc->addContextItems($r,
true);
952 $links .= $sep . $cont_loc->getHTML();
957 $this->
lng->txt(
"res_links"),
958 '<div class="small">' . $links .
'</div>' 964 $info->addSection($this->
lng->txt(
"file_info"));
966 $file_info_for_users = $this->getFileInfoForUsers();
967 foreach ($file_info_for_users 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);
973 $file_info = $this->getAllFileInfoForCurrentUser();
974 foreach ($file_info as $file_info_block) {
975 foreach ($file_info_block as $file_info_entry_key => $file_info_entry_value) {
976 if ($file_info_entry_value !==
null) {
977 $info->addProperty($file_info_entry_key, $file_info_entry_value);
983 $info->hideFurtherSections(
false);
993 $ilHelp = $DIC[
'ilHelp'];
996 $this->
ctrl->setParameter($this,
"ref_id", $this->node_id);
998 if ((
$c = $this->capabilities->get(Capabilities::VIEW_EXTERNAL)) &&
$c->isUnlocked()) {
999 $this->tabs_gui->addTab(
1001 $this->
lng->txt(
"content"),
1006 if ((
$c = $this->capabilities->get(Capabilities::MANAGE_VERSIONS)) &&
$c->isUnlocked()) {
1007 $this->tabs_gui->addTab(
1009 $this->
lng->txt(self::CMD_VERSIONS),
1014 if ((
$c = $this->capabilities->get(Capabilities::INFO_PAGE)) &&
$c->isUnlocked()) {
1015 $this->tabs_gui->addTab(
1017 $this->
lng->txt(
"info_short"),
1018 $this->
ctrl->getLinkTargetByClass([
"ilobjfilegui",
"ilinfoscreengui"],
"showSummary")
1022 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1023 $this->tabs_gui->addTab(
1025 $this->
lng->txt(
"settings"),
1026 $this->
ctrl->getLinkTarget($this, self::CMD_EDIT)
1031 $this->tabs_gui->addTab(
1032 'learning_progress',
1033 $this->
lng->txt(
'learning_progress'),
1034 $this->
ctrl->getLinkTargetByClass([self::class,
'illearningprogressgui'],
'')
1039 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1041 $mdtab = $mdgui->getTab();
1043 $this->tabs_gui->addTab(
1045 $this->
lng->txt(
"meta_data"),
1052 if ((
$c = $this->capabilities->get(Capabilities::EDIT_SETTINGS)) &&
$c->isUnlocked()) {
1053 $this->tabs_gui->addTab(
1055 $this->
lng->txt(
"export"),
1056 $this->
ctrl->getLinkTargetByClass(
"ilexportgui",
"")
1066 $this->tabs_gui->activateTab(
"settings");
1068 $this->tabs_gui->addSubTab(
1070 $this->
lng->txt(
'settings'),
1071 $this->
ctrl->getLinkTargetByClass(self::class, self::CMD_EDIT)
1074 $this->tabs_gui->addSubTab(
1076 $this->
lng->txt(
'service_settings'),
1081 $this->tabs_gui->activateSubTab(
"file_settings");
1084 public static function _goto($a_target, $a_additional =
null): void
1087 $main_tpl = $DIC->ui()->mainTemplate();
1090 $ilAccess = $DIC[
'ilAccess'];
1092 if ($a_additional && str_ends_with((
string) $a_additional,
"wsp")) {
1097 if ($a_additional && str_ends_with((
string) $a_additional,
"download")) {
1103 if ($ilAccess->checkAccess(
"visible",
"", $a_target)
1104 || $ilAccess->checkAccess(
"read",
"", $a_target)) {
1107 $main_tpl->setOnScreenMessage(
1110 $lng->
txt(
"msg_no_perm_read_item"),
1127 $ilLocator = $DIC[
'ilLocator'];
1129 if (is_object($this->
object)) {
1137 $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
1143 [ilCommonActionDispatcherGUI::class, ilRatingGUI::class]
1160 if (!$this->
object instanceof
ilObjFile) {
1161 throw new ilFileException(
"Error: object is not of type ilObjFile or doesn't exist");
1194 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 getGotoLink(int $a_node_id, int $a_obj_id, string $a_additional="")
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)
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