19 declare(strict_types=1);
64 public function __construct(
int $a_id = 0,
int $a_id_type = self::REPOSITORY_NODE_ID,
int $a_parent_node_id = 0)
70 $this->parent_node_id = $a_parent_node_id;
74 $this->lom_services = $DIC->learningObjectMetadata();
76 $DIC->language()->loadLanguageModule(
"lti");
77 $DIC->language()->loadLanguageModule(
"rep");
95 $forms[self::CFORM_DYNAMIC_REGISTRATION] = $this->
initDynRegForm($a_new_type);
104 if (!is_array($forms)) {
105 throw new Exception(
'We only deal with arrays here.');
120 return $acc->getHTML();
135 $userProviderList->setAvailabilityFilter((
string) ilLTIConsumeProvider::AVAILABILITY_CREATE);
137 $userProviderList->setCreatorFilter($DIC->user()->getId());
139 if ($form->getFilter(
'title')) {
140 $globalProviderList->setTitleFilter($form->getFilter(
'title'));
141 $userProviderList->setTitleFilter($form->getFilter(
'title'));
144 if ($form->getFilter(
'category')) {
145 $globalProviderList->setCategoryFilter($form->getFilter(
'category'));
146 $userProviderList->setCategoryFilter($form->getFilter(
'category'));
149 if ($form->getFilter(
'keyword')) {
150 $globalProviderList->setKeywordFilter($form->getFilter(
'keyword'));
151 $userProviderList->setKeywordFilter($form->getFilter(
'keyword'));
154 if ($form->getFilter(
'outcome')) {
155 $globalProviderList->setHasOutcomeFilter(
true);
156 $userProviderList->setHasOutcomeFilter(
true);
159 if ($form->getFilter(
'internal')) {
160 $globalProviderList->setIsExternalFilter(
false);
161 $userProviderList->setIsExternalFilter(
false);
164 if ($form->getFilter(
'with_key')) {
165 $globalProviderList->setIsProviderKeyCustomizableFilter(
false);
166 $userProviderList->setIsProviderKeyCustomizableFilter(
false);
169 $globalProviderList->load();
170 $userProviderList->load();
172 $form->setData([...$globalProviderList->getTableData(), ...$userProviderList->getTableData()]);
183 $form->initDynRegForm($this->
ctrl->getFormAction($this,
"cancelDynReg"));
184 $form->setTitle($DIC->language()->txt($a_new_type .
'_dynamic_registration'));
197 $form->initToolConfigForm($this->
ctrl->getFormAction($this,
"cancelDynReg"),
'',
'');
199 $form->clearCommandButtons();
200 $form->addCommandButton(
"saveDynReg", $this->
lng->txt(
'save'));
201 $form->addCommandButton(
"cancelDynReg", $this->
lng->txt(
"cancel"));
203 $form->setTitle($DIC->language()->txt($a_new_type .
'_custom_new'));
217 $form->initForm($this->
ctrl->getFormAction($this,
"save"),
'',
'');
219 $form->clearCommandButtons();
220 $form->addCommandButton(
"saveCustom", $this->
lng->txt($a_new_type .
"_add_own_provider"));
221 $form->addCommandButton(
"cancel", $this->
lng->txt(
"cancel"));
223 $form->setTitle($DIC->language()->txt($a_new_type .
'_custom_new'));
234 'applyProviderFilter',
235 'resetProviderFilter' 242 $form->applyFilter();
249 $form->resetFilter();
255 $classname =
"ilObj" . $this->obj_definition->getClassName($newType);
257 $newObj =
new $classname();
258 $newObj->setType($newType);
259 $newObj->setTitle($title);
260 $newObj->setDescription($description);
277 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
279 $DIC->language()->loadLanguageModule($new_type);
283 if ($form->checkInput()) {
284 $DIC->ctrl()->setParameter($this,
"new_type",
"");
289 $form->getInput(
'title'),
290 $form->getInput(
'desc')
296 $newObj->applyDidacticTemplate($dtpl);
304 $form->setValuesByPost();
306 $DIC->ui()->mainTemplate()->setContent($form->getHtml());
317 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
319 $DIC->language()->loadLanguageModule($new_type);
322 $form->setValuesByPost();
324 $DIC->ctrl()->setParameter($this,
"new_type",
"");
325 $DIC->ui()->mainTemplate()->setOnScreenMessage(
'failure', base64_decode(
$error));
326 $DIC->ui()->mainTemplate()->setContent($form->getDynRegError());
329 if ($form->checkInput()) {
330 $DIC->ctrl()->setParameter($this,
"new_type",
"");
331 $DIC->ui()->mainTemplate()->setContent($form->getDynRegRequest());
334 $DIC->ui()->mainTemplate()->setContent($form->getHTML());
357 $DIC->ctrl()->setParameterByClass(ilRepositoryGUI::class,
'new_type', $new_type);
358 $DIC->ctrl()->redirectByClass(ilRepositoryGUI::class,
'create');
368 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
370 $DIC->ctrl()->setParameter($this,
"provider_id", $provider_id);
371 $DIC->language()->loadLanguageModule($new_type);
373 $DIC->ui()->mainTemplate()->setContent($form->getHTML());
383 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
385 $DIC->ctrl()->setParameter($this,
"provider_id", $provider_id);
386 $DIC->language()->loadLanguageModule($new_type);
390 $form->setValuesByPost();
391 if ($form->checkInput()) {
398 $DIC->ctrl()->redirectByClass([ilRepositoryGUI::class, ilObjLTIConsumerGUI::class],
"save");
401 $DIC->ui()->mainTemplate()->setContent($form->getHTML());
410 $DIC->ctrl()->setParameter($this,
"new_type", $newType);
411 $DIC->ctrl()->setParameter($this,
"provider_id", $providerId);
412 $DIC->ctrl()->setParameter($this,
"ref_id", $refId);
415 $formaction = $this->
ctrl->getFormAction($this,
"cancelContentSelection");
416 $DIC->ui()->mainTemplate()->setContent($form->getContentSelectionFrame($formaction));
426 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
428 $DIC->ctrl()->setParameter($this,
"provider_id", $provider_id);
430 $DIC->ctrl()->setParameter($this,
"ref_id",
$ref_id);
431 $DIC->language()->loadLanguageModule($new_type);
433 $redirectUrl = $DIC->ctrl()->getLinkTarget($this,
'contentSelectionRequest');
439 $tplLogin =
new ilTemplate(
"tpl.lti_initial_login.html",
true,
true,
"components/ILIAS/LTIConsumer");
440 $tplLogin->setVariable(
"LTI_INITIAL_LOGIN_ACTION",
$provider->getInitiateLogin());
442 $tplLogin->setVariable(
"TARGET_LINK_URL",
$provider->getProviderUrl());
443 $tplLogin->setVariable(
"LOGIN_HINT", $userIdLTI);
444 $tplLogin->setVariable(
"LTI_MESSAGE_HINT", $ltiMessageHint);
445 $tplLogin->setVariable(
"CLIENT_ID",
$provider->getClientId());
446 $tplLogin->setVariable(
"LTI_DEPLOYMENT_ID", (
string)
$provider->getId());
447 echo $tplLogin->get();
453 $tplContentSelection =
new ilTemplate(
"tpl.lti_jwt_autosubmit.html",
true,
true,
"components/ILIAS/LTIConsumer");
454 $tplContentSelection->setVariable(
"LTI_JWT_FORM_ACTION",
$provider->getContentItemUrl());
455 $tplContentSelection->setVariable(
"LTI_JWT_ID_TOKEN",
$data[
'id_token']);
456 $tplContentSelection->setVariable(
"LTI_JWT_STATE", $loginData[
'state']);
458 echo $tplContentSelection->get();
470 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
472 $DIC->ctrl()->setParameter($this,
"provider_id", $provider_id);
474 $DIC->ctrl()->setParameter($this,
"ref_id",
$ref_id);
475 $DIC->language()->loadLanguageModule($new_type);
477 if ($DIC->http()->wrapper()->post()->has(
'JWT')) {
478 $token = $DIC->http()->wrapper()->post()->retrieve(
'JWT', $DIC->refinery()->kindlyTo()->string());
480 if ($DIC->http()->wrapper()->post()->has(
'jwt')) {
481 $token = $DIC->http()->wrapper()->post()->retrieve(
'jwt', $DIC->refinery()->kindlyTo()->string());
500 $DIC->ctrl()->setParameterByClass(ilRepositoryGUI::class,
'new_type', $new_type);
501 $DIC->ctrl()->redirectByClass(ilRepositoryGUI::class,
'create');
508 $keys =
new Firebase\JWT\Key($key,
"RS256");
512 $keyset = json_decode($jwks,
true);
513 $keys = Firebase\JWT\JWK::parseKeySet($keyset);
515 $data = Firebase\JWT\JWT::decode($token, $keys);
519 foreach (
$data->{
'https://purl.imsglobal.org/spec/lti-dl/claim/content_items'} as $item) {
522 if (isset($item->description)) {
523 $description = $item->description;
525 $newObj = $gui->createNewObject(
'lti', $item->title, $description);
526 $dtpl = $gui->getDidacticTemplateVar(
"dtpl");
528 $newObj->applyDidacticTemplate($dtpl);
531 $newObj->setProviderId(
$provider->getId());
535 foreach ($item->{
'custom'} as $key => $value) {
536 $customParams[] = $key .
"=" . $value;
538 if (count($customParams) > 0) {
539 $newObj->setCustomParams(implode(
";", $customParams));
545 $template =
new ilTemplate(
'tpl.lti_content_selection_finished.html',
true,
true,
'components/ILIAS/LTIConsumer');
547 $template->setVariable(
"CONTENT_SELECTION_REDIRECT", $redirect);
548 echo $template->get();
556 if ($DIC->http()->wrapper()->query()->has(
'provider_id')) {
557 $newObject->setProviderId((
int) $DIC->http()->wrapper()->query()->retrieve(
'provider_id', $DIC->refinery()->kindlyTo()->int()));
558 $newObject->initProvider();
562 $newObject->setMasteryScore($newObject->getProvider()->getMasteryScore());
567 $DIC->ctrl()->redirectByClass(ilLTIConsumerSettingsGUI::class);
576 if ($form->checkInput()) {
581 $provider->setCreator($DIC->user()->getId());
584 $newObject->setProviderId(
$provider->getId());
589 $newObject->setMasteryScore($newObject->getProvider()->getMasteryScore());
594 $DIC->ctrl()->redirectByClass(ilObjLTIConsumerGUI::class);
598 'form validation seems to not have worked in ilObjLTIConsumer::saveCustom()!' 605 $this->lom_services->derive()
606 ->fromBasicProperties($object->
getTitle())
611 foreach ($object->getProvider()->getKeywordsArray() as $keyword) {
612 if ($keyword !==
'') {
613 $keywords[] = $keyword;
616 $this->lom_services->manipulate($object->
getId(), $object->
getId(), $object->
getType())
617 ->prepareCreateOrUpdate(
618 $this->lom_services->paths()->keywords(),
632 $return = parent::initHeaderAction($a_sub_type, $a_sub_id);
634 if ($this->creation_mode) {
639 if ($validator->isCertificateDownloadable($DIC->user()->getId(), $this->
object->getId())) {
640 $certLink = $DIC->ctrl()->getLinkTargetByClass(
641 [ilObjLTIConsumerGUI::class, ilLTIConsumerSettingsGUI::class],
645 $DIC->language()->loadLanguageModule(
'certificate');
647 $return->addCustomCommand($certLink,
'download_certificate');
649 $return->addHeaderIcon(
652 $DIC->language()->txt(
'download_certificate'),
662 public static function _goto(
string $a_target): void
665 $main_tpl = $DIC->ui()->mainTemplate();
667 $err = $DIC[
'ilErr'];
669 $ctrl = $DIC->ctrl();
672 $lng = $DIC->language();
674 $targetParameters = explode(
'_', $a_target);
675 $id = (
int) $targetParameters[0];
678 $err->raiseError(
$lng->
txt(
'msg_no_perm_read'), $err->FATAL);
688 $main_tpl->setOnScreenMessage(
691 $DIC->language()->txt(
'msg_no_perm_read_item'),
700 $err->raiseError($DIC->language()->txt(
"msg_no_perm_read_lm"), $err->FATAL);
718 if (!$this->creation_mode) {
721 if ($this->
object->getProvider()->hasProviderIcon()) {
722 $DIC->ui()->mainTemplate()->setTitleIcon(
723 $this->
object->getProvider()->getProviderIcon()->getAbsoluteFilePath(),
724 'Icon ' . $this->
object->getProvider()->getTitle()
728 $link = ilLink::_getLink($this->
object->getRefId(), $this->
object->getType());
729 $navigationHistory = $DIC[
'ilNavigationHistory'];
731 $navigationHistory->addItem($this->
object->getRefId(), $link, $this->
object->getType());
737 switch ($DIC->ctrl()->getNextClass()) {
738 case strtolower(ilObjectCopyGUI::class):
741 $gui->setType($this->
getType());
742 $DIC->ctrl()->forwardCommand($gui);
745 case strtolower(ilCommonActionDispatcherGUI::class):
748 $DIC->ctrl()->forwardCommand($gui);
751 case strtolower(ilLearningProgressGUI::class):
753 $DIC->tabs()->activateTab(self::TAB_ID_LEARNING_PROGRESS);
760 $DIC->ctrl()->forwardCommand($gui);
764 case strtolower(ilObjectMetaDataGUI::class):
766 $DIC->tabs()->activateTab(self::TAB_ID_METADATA);
769 $DIC->ctrl()->forwardCommand($gui);
772 case strtolower(ilPermissionGUI::class):
774 $DIC->tabs()->activateTab(self::TAB_ID_PERMISSIONS);
777 $DIC->ctrl()->forwardCommand($gui);
780 case strtolower(ilLTIConsumerSettingsGUI::class):
782 $DIC->tabs()->activateTab(self::TAB_ID_SETTINGS);
785 $DIC->ctrl()->forwardCommand($gui);
788 case strtolower(ilLTIConsumerXapiStatementsGUI::class):
790 $DIC->tabs()->activateTab(self::TAB_ID_STATEMENTS);
793 $DIC->ctrl()->forwardCommand($gui);
797 case strtolower(ilLTIConsumerScoringGUI::class):
799 $DIC->tabs()->activateTab(self::TAB_ID_SCORING);
802 $DIC->ctrl()->forwardCommand($gui);
806 case strtolower(ilLTIConsumerGradeSynchronizationGUI::class):
808 $DIC->tabs()->activateTab(self::TAB_ID_GRADE_SYNCHRONIZATION);
811 $DIC->ctrl()->forwardCommand($gui);
815 case strtolower(ilLTIConsumerContentGUI::class):
817 $DIC->tabs()->activateTab(self::TAB_ID_CONTENT);
820 $DIC->ctrl()->forwardCommand($gui);
824 case strtolower(ilInfoScreenGUI::class):
826 $DIC->tabs()->activateTab(self::TAB_ID_INFO);
832 if ($DIC->ctrl()->getCmd() ===
'save') {
835 $command = $DIC->ctrl()->getCmd(self::DEFAULT_CMD);
850 if ($DIC->http()->wrapper()->post()->has(
'JWT')) {
869 $DIC->language()->loadLanguageModule(
'lti');
871 if (!$this->
object->getOfflineStatus() &&
874 $DIC->tabs()->addTab(
875 self::TAB_ID_CONTENT,
876 $DIC->language()->txt(self::TAB_ID_CONTENT),
877 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerContentGUI::class)
881 $DIC->tabs()->addTab(
883 $DIC->language()->txt(self::TAB_ID_INFO),
884 $this->
ctrl->getLinkTargetByClass(ilInfoScreenGUI::class)
887 if ($this->ltiAccess->hasWriteAccess()) {
888 $DIC->tabs()->addTab(
889 self::TAB_ID_SETTINGS,
890 $DIC->language()->txt(self::TAB_ID_SETTINGS),
891 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerSettingsGUI::class)
895 if ($this->ltiAccess->hasStatementsAccess()) {
896 $DIC->tabs()->addTab(
897 self::TAB_ID_STATEMENTS,
898 $DIC->language()->txt(self::TAB_ID_STATEMENTS),
899 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerXapiStatementsGUI::class)
903 if ($this->ltiAccess->hasHighscoreAccess()) {
905 $DIC->tabs()->addTab(
906 self::TAB_ID_SCORING,
907 $DIC->language()->txt(self::TAB_ID_SCORING),
908 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerScoringGUI::class)
912 if ($this->
object->getProvider()->isGradeSynchronization()) {
913 $DIC->tabs()->addTab(
914 self::TAB_ID_GRADE_SYNCHRONIZATION,
915 $DIC->language()->txt(self::TAB_ID_GRADE_SYNCHRONIZATION),
916 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerGradeSynchronizationGUI::class)
920 if ($this->ltiAccess->hasLearningProgressAccess() && $this->
object->getProvider()->getHasOutcome()) {
921 $DIC->tabs()->addTab(
922 self::TAB_ID_LEARNING_PROGRESS,
923 $DIC->language()->txt(self::TAB_ID_LEARNING_PROGRESS),
924 $DIC->ctrl()->getLinkTargetByClass(ilLearningProgressGUI::class)
928 if ($this->ltiAccess->hasWriteAccess()) {
930 $link = $gui->getTab();
933 $DIC->tabs()->addTab(
934 self::TAB_ID_METADATA,
935 $DIC->language()->txt(
'meta_data'),
941 if ($this->ltiAccess->hasEditPermissionsAccess()) {
942 $DIC->tabs()->addTab(
943 self::TAB_ID_PERMISSIONS,
944 $DIC->language()->txt(self::TAB_ID_PERMISSIONS),
945 $DIC->ctrl()->getLinkTargetByClass(ilPermissionGUI::class,
'perm')
1013 $this->
object->getTitle(),
1014 $this->
ctrl->getLinkTarget($this, self::DEFAULT_CMD),
1016 $this->
object->getRefId()
1026 $this->
object->getType(),
1027 $this->
object->getRefId(),
1028 $this->
object->getId(),
1029 $DIC->user()->getId()
1035 protected function launch():
void 1039 $this->tabs_gui->activateTab(self::TAB_ID_CONTENT);
1041 $this->
ctrl->forwardCommand($gui);
1049 $DIC->tabs()->activateTab(self::TAB_ID_INFO);
1065 $ilErr->raiseError($DIC->language()->txt(
"msg_no_perm_read"),
$ilErr->MESSAGE);
1072 $info->enablePrivateNotes();
1075 $info->enableNews();
1078 $info->enableNewsEditing(
false);
1082 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1084 if ($enable_internal_rss) {
1086 $info->setBlockProperty(
"news",
"settings",
"true");
1087 $info->setBlockProperty(
"news",
"public_notifications_option",
"true");
1092 $info->addMetaDataSections($this->
object->getId(), 0, $this->
object->getType());
1096 $info->addSection(
'DEVMODE Info');
1097 $info->addProperty(
'Local Object ID', (
string) $this->
object->getId());
1098 $info->addProperty(
'Current User ID', (
string) $DIC->user()->getId());
1101 $info->addSection($DIC->language()->txt(
"lti_info_learning_progress_section"));
1103 $DIC->language()->txt(
"mastery_score"),
1104 ($this->
object->getMasteryScorePercent()) .
' %' 1109 $info->addSection($DIC->language()->txt(
"lti_info_privacy_section"));
1112 $DIC->language()->txt(
"lti_con_prov_url"),
1113 $this->
object->getProvider()->getProviderUrl()
1117 $DIC->language()->txt(
"conf_privacy_name"),
1122 $DIC->language()->txt(
"conf_privacy_ident"),
1125 if ($this->
object->getProvider()->isExternalProvider()) {
1127 $DIC->language()->txt(
"lti_info_external_provider_label"),
1128 $DIC->language()->txt(
'lti_info_external_provider_info')
1132 if ($this->
object->getProvider()->getUseXapi()) {
1134 $DIC->language()->txt(
"lti_con_prov_xapi_launch_url"),
1135 $this->
object->getProvider()->getXapiLaunchUrl()
1140 $this->
ctrl->forwardCommand($info);
1147 if ($this->
object->getProvider()->getProviderUrl() ==
'') {
1148 $this->tpl->setOnScreenMessage(
'failure', $DIC->language()->txt(
'lti_provider_not_set_msg'));
1150 $this->tpl->setOnScreenMessage(
'failure', $DIC->language()->txt(
'lti_provider_not_avail_msg'));
1156 if ($this->request_wrapper->has($key)) {
1157 return $this->request_wrapper->retrieve($key, $this->
refinery->kindlyTo()->string());
static getIdentAsId(int $userIdentMode, ilObjUser $user)
static get(string $a_var)
ilLTIConsumerAccess $ltiAccess
executeCommand()
execute command
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...
static isEmbeddedLaunchRequest()
New implementation of ilObjectGUI.
GUI class for the workflow of copying objects.
createNewObject(string $newType, string $title, string $description)
Interface Observer Contains several chained tasks and infos about them.
contentSelectionRequest()
checkAccess(string $a_permission, string $a_cmd, int $a_ref_id, string $a_type="", ?int $a_obj_id=null, ?int $a_tree_id=null)
check access for an object (provide $a_type and $a_obj_id if available for better performance) ...
initHeaderAction(?string $a_sub_type=null, ?int $a_sub_id=null)
getDidacticTemplateVar(string $type)
Get didactic template setting from creation screen.
getRequestValue(string $key)
const AVAILABILITY_CREATE
static _gotoRepositoryNode(int $ref_id, string $cmd="")
contentSelectionResponse()
contentSelection(string $providerId, string $newType, string $refId, ilLTIConsumeProvider $provider)
setParameterByClass(string $a_class, string $a_parameter, $a_value)
prepareOutput(bool $show_sub_objects=true)
if(empty($clientId)) $providerId
createObject()
create new object form
static buildContentSelectionParameters(ilLTIConsumeProvider $provider, int $refId, string $returnUrl, string $nonce)
saveContentSelection(ilLTIConsumeProvider $provider, string $token)
initMetadata(\ilObject $object)
initShowToolConfig(string $a_new_type, int $a_provider_id)
redirectByClass( $a_class, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false)
initNewForm(string $a_new_type)
static getProviderIdFromClientId(string $clientId)
static getTypeByRefId(int $ref_id, bool $stop_on_error=true)
get object type by reference id
static _lookupObjId(int $ref_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getCreationFormsHTML(StandardForm|ilPropertyFormGUI|array $forms)
LOMServices $lom_services
const TAB_ID_GRADE_SYNCHRONIZATION
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $node_id=null)
static _lookupTitle(int $obj_id)
static getIliasHttpPath()
static getPrivacyIdentString(int $ident)
const TAB_ID_LEARNING_PROGRESS
buildProviderSelectionForm(string $a_new_type)
static getPrivacyNameString(int $ident)
initCustomCreateForm(string $a_new_type)
ServerRequestInterface $request
static hasCustomProviderCreationAccess()
launch()
description: > Example for rendering a Launch Glyph.
Validates if an active certificate is stored in the database and can be downloaded by the user...
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)
afterSave(\ilObject $newObject)
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
putObjectInTree(ilObject $obj, ?int $parent_node_id=null)
Add object to tree at given position.
static _goto(string $a_target)
static _lookupDBMode(int $a_obj_id)
initDynRegForm(string $a_new_type)
const CFORM_DYNAMIC_REGISTRATION
const CMD_DELIVER_CERTIFICATE
setTargetScript(string $a_target_script)
__construct(Container $dic, ilPlugin $plugin)
const LP_CONTEXT_REPOSITORY
handleAvailablityMessage()
__construct(int $a_id=0, int $a_id_type=self::REPOSITORY_NODE_ID, int $a_parent_node_id=0)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
exit
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addHeaderAction()
Add header action menu.
static clear(string $a_var)
Class ilObjUserTrackingGUI.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
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)
initCreateForm(string $a_new_type)