19declare(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");
106 $this->
error->raiseError($this->
lng->txt(
"no_create_permission"), $this->error->MESSAGE);
109 $this->
lng->loadLanguageModule($this->requested_new_type);
110 $this->
ctrl->setParameter($this,
"new_type", $this->requested_new_type);
114 foreach ($forms as $form) {
115 if ($form->checkInput()) {
116 $this->
ctrl->setParameter($this,
"new_type",
"");
118 $class_name =
"ilObj" . $this->obj_definition->getClassName($this->requested_new_type);
119 $newObj =
new $class_name();
120 $newObj->setType($this->requested_new_type);
121 $newObj->setTitle($form->getInput(
"title"));
122 $newObj->setDescription($form->getInput(
"desc"));
123 $newObj->processAutoRating();
130 $newObj->applyDidacticTemplate($dtpl);
136 $form->setValuesByPost();
137 $this->tpl->setContent($form->getHTML());
144 if (!is_array($forms)) {
145 throw new Exception(
'We only deal with arrays here.');
160 return $acc->getHTML();
174 $form->initDynRegForm($this->
ctrl->getFormAction($this,
"cancelDynReg"));
175 $form->setTitle(
$DIC->language()->txt($a_new_type .
'_dynamic_registration'));
188 $form->initToolConfigForm($this->
ctrl->getFormAction($this,
"cancelDynReg"),
'',
'');
190 $form->clearCommandButtons();
191 $form->addCommandButton(
"saveDynReg", $this->
lng->txt(
'save'));
192 $form->addCommandButton(
"cancelDynReg", $this->
lng->txt(
"cancel"));
194 $form->setTitle(
$DIC->language()->txt($a_new_type .
'_custom_new'));
208 $form->initForm($this->
ctrl->getFormAction($this,
"save"),
'',
'');
210 $form->clearCommandButtons();
211 $form->addCommandButton(
"saveCustom", $this->
lng->txt($a_new_type .
"_add_own_provider"));
212 $form->addCommandButton(
"cancel", $this->
lng->txt(
"cancel"));
214 $form->setTitle(
$DIC->language()->txt($a_new_type .
'_custom_new'));
230 $classname =
"ilObj" . $this->obj_definition->getClassName($newType);
232 $newObj =
new $classname();
233 $newObj->setType($newType);
234 $newObj->setTitle($title);
235 $newObj->setDescription($description);
252 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
254 $DIC->language()->loadLanguageModule($new_type);
258 if ($form->checkInput()) {
259 $DIC->ctrl()->setParameter($this,
"new_type",
"");
264 $form->getInput(
'title'),
265 $form->getInput(
'desc')
271 $newObj->applyDidacticTemplate($dtpl);
279 $form->setValuesByPost();
281 $DIC->ui()->mainTemplate()->setContent($form->getHtml());
292 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
294 $DIC->language()->loadLanguageModule($new_type);
297 $form->setValuesByPost();
299 $DIC->ctrl()->setParameter($this,
"new_type",
"");
300 $DIC->ui()->mainTemplate()->setOnScreenMessage(
'failure', base64_decode(
$error));
301 $DIC->ui()->mainTemplate()->setContent($form->getDynRegError());
304 if ($form->checkInput()) {
305 $DIC->ctrl()->setParameter($this,
"new_type",
"");
306 $DIC->ui()->mainTemplate()->setContent($form->getDynRegRequest());
309 $DIC->ui()->mainTemplate()->setContent($form->getHTML());
327 }
catch (\
ILIAS\Filesystem\Exception\IOException
$e) {
332 $DIC->ctrl()->setParameterByClass(ilRepositoryGUI::class,
'new_type', $new_type);
333 $DIC->ctrl()->redirectByClass(ilRepositoryGUI::class,
'create');
343 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
345 $DIC->ctrl()->setParameter($this,
"provider_id", $provider_id);
346 $DIC->language()->loadLanguageModule($new_type);
348 $DIC->ui()->mainTemplate()->setContent($form->getHTML());
358 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
360 $DIC->ctrl()->setParameter($this,
"provider_id", $provider_id);
361 $DIC->language()->loadLanguageModule($new_type);
365 $form->setValuesByPost();
366 if ($form->checkInput()) {
373 $DIC->ctrl()->redirectByClass([ilRepositoryGUI::class, ilObjLTIConsumerGUI::class],
"save");
376 $DIC->ui()->mainTemplate()->setContent($form->getHTML());
385 $DIC->ctrl()->setParameter($this,
"new_type", $newType);
387 $DIC->ctrl()->setParameter($this,
"ref_id",
$refId);
390 $formaction = $this->
ctrl->getFormAction($this,
"cancelContentSelection");
391 $DIC->ui()->mainTemplate()->setContent($form->getContentSelectionFrame($formaction));
401 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
403 $DIC->ctrl()->setParameter($this,
"provider_id", $provider_id);
405 $DIC->ctrl()->setParameter($this,
"ref_id",
$ref_id);
406 $DIC->language()->loadLanguageModule($new_type);
408 $redirectUrl =
$DIC->ctrl()->getLinkTarget($this,
'contentSelectionRequest');
414 $tplLogin =
new ilTemplate(
"tpl.lti_initial_login.html",
true,
true,
"components/ILIAS/LTIConsumer");
415 $tplLogin->setVariable(
"LTI_INITIAL_LOGIN_ACTION",
$provider->getInitiateLogin());
417 $tplLogin->setVariable(
"TARGET_LINK_URL",
$provider->getProviderUrl());
418 $tplLogin->setVariable(
"LOGIN_HINT", $userIdLTI);
420 $tplLogin->setVariable(
"CLIENT_ID",
$provider->getClientId());
421 $tplLogin->setVariable(
"LTI_DEPLOYMENT_ID", (
string)
$provider->getId());
422 echo $tplLogin->get();
428 $tplContentSelection =
new ilTemplate(
"tpl.lti_jwt_autosubmit.html",
true,
true,
"components/ILIAS/LTIConsumer");
429 $tplContentSelection->setVariable(
"LTI_JWT_FORM_ACTION",
$provider->getContentItemUrl());
430 $tplContentSelection->setVariable(
"LTI_JWT_ID_TOKEN",
$data[
'id_token']);
431 $tplContentSelection->setVariable(
"LTI_JWT_STATE", $loginData[
'state']);
433 echo $tplContentSelection->get();
445 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
447 $DIC->ctrl()->setParameter($this,
"provider_id", $provider_id);
449 $DIC->ctrl()->setParameter($this,
"ref_id",
$ref_id);
450 $DIC->language()->loadLanguageModule($new_type);
452 if (
$DIC->http()->wrapper()->post()->has(
'JWT')) {
453 $token =
$DIC->http()->wrapper()->post()->retrieve(
'JWT',
$DIC->refinery()->kindlyTo()->string());
455 if (
$DIC->http()->wrapper()->post()->has(
'jwt')) {
456 $token =
$DIC->http()->wrapper()->post()->retrieve(
'jwt',
$DIC->refinery()->kindlyTo()->string());
475 $DIC->ctrl()->setParameterByClass(ilRepositoryGUI::class,
'new_type', $new_type);
476 $DIC->ctrl()->redirectByClass(ilRepositoryGUI::class,
'create');
481 if (
$provider->getKeyType() ==
'RSA_KEY') {
483 $keys =
new Firebase\JWT\Key($key,
"RS256");
485 $jwks = file_get_contents(
$provider->getPublicKeyset());
487 $keyset = json_decode($jwks,
true);
488 $keys = Firebase\JWT\JWK::parseKeySet($keyset);
494 foreach (
$data->{
'https://purl.imsglobal.org/spec/lti-dl/claim/content_items'} as $item) {
497 if (isset($item->description)) {
498 $description = $item->description;
500 $newObj = $gui->createNewObject(
'lti', $item->title, $description);
501 $dtpl = $gui->getDidacticTemplateVar(
"dtpl");
503 $newObj->applyDidacticTemplate($dtpl);
506 $newObj->setProviderId(
$provider->getId());
510 foreach ($item->{
'custom'} as $key => $value) {
511 $customParams[] = $key .
"=" . $value;
513 if (count($customParams) > 0) {
514 $newObj->setCustomParams(implode(
";", $customParams));
520 $template =
new ilTemplate(
'tpl.lti_content_selection_finished.html',
true,
true,
'components/ILIAS/LTIConsumer');
522 $template->setVariable(
"CONTENT_SELECTION_REDIRECT", $redirect);
523 echo $template->get();
537 if (
$DIC->http()->wrapper()->query()->has(
'provider_id')) {
538 $newObject->setProviderId((
int)
$DIC->http()->wrapper()->query()->retrieve(
'provider_id',
$DIC->refinery()->kindlyTo()->int()));
539 $newObject->initProvider();
543 $newObject->setMasteryScore($newObject->getProvider()->getMasteryScore());
546 $this->initMetadata($newObject);
547 $DIC->ctrl()->redirectByClass(ilLTIConsumerSettingsGUI::class);
554 $form = $this->initCustomCreateForm($newObject->
getType());
556 if ($form->checkInput()) {
564 $newObject->setProviderId(
$provider->getId());
569 $newObject->setMasteryScore($newObject->getProvider()->getMasteryScore());
572 $this->initMetadata($newObject);
573 $DIC->ctrl()->redirectByClass([ilLTIConsumerSettingsGUI::class, ilLTIConsumeProviderSettingsGUI::class]);
576 'form validation seems to not have worked in ilObjLTIConsumer::saveCustom()!'
583 $this->lom_services->derive()
584 ->fromBasicProperties($object->
getTitle())
589 foreach ($object->getProvider()->getKeywordsArray() as $keyword) {
590 if ($keyword !==
'') {
591 $keywords[] = $keyword;
594 $this->lom_services->manipulate($object->
getId(), $object->
getId(), $object->
getType())
595 ->prepareCreateOrUpdate(
596 $this->lom_services->paths()->keywords(),
610 $return = parent::initHeaderAction($a_sub_type, $a_sub_id);
612 if ($this->creation_mode) {
617 if ($validator->isCertificateDownloadable(
$DIC->user()->getId(), $this->object->getId())) {
618 $certLink =
$DIC->ctrl()->getLinkTargetByClass(
619 [ilObjLTIConsumerGUI::class, ilLTIConsumerSettingsGUI::class],
623 $DIC->language()->loadLanguageModule(
'certificate');
625 $return->addCustomCommand($certLink,
'download_certificate');
627 $return->addHeaderIcon(
630 $DIC->language()->txt(
'download_certificate'),
640 public static function _goto(
string $a_target): void
643 $main_tpl =
$DIC->ui()->mainTemplate();
645 $err =
$DIC[
'ilErr'];
647 $ctrl =
$DIC->ctrl();
648 $request =
$DIC->http()->request();
649 $access =
$DIC->access();
652 $targetParameters = explode(
'_', $a_target);
653 $id = (
int) $targetParameters[0];
656 $err->raiseError(
$lng->txt(
'msg_no_perm_read'), $err->FATAL);
659 if ($access->checkAccess(
'read',
'',
$id)) {
660 $ctrl->setTargetScript(
'ilias.php');
661 $ctrl->setParameterByClass(ilObjLTIConsumerGUI::class,
'ref_id',
$id);
662 $ctrl->redirectByClass([ilRepositoryGUI::class, ilObjLTIConsumerGUI::class]);
663 } elseif ($access->checkAccess(
'visible',
'',
$id)) {
666 $main_tpl->setOnScreenMessage(
669 $DIC->language()->txt(
'msg_no_perm_read_item'),
678 $err->raiseError(
$DIC->language()->txt(
"msg_no_perm_read_lm"), $err->FATAL);
684 public function executeCommand(): void
692 $this->prepareOutput();
693 $this->addHeaderAction();
696 if (!$this->creation_mode) {
697 $this->trackObjectReadEvent();
699 if ($this->
object->getProvider()->hasProviderIcon()) {
700 $DIC->ui()->mainTemplate()->setTitleIcon(
701 $this->
object->getProvider()->getProviderIcon()->getAbsoluteFilePath(),
702 'Icon ' . $this->object->getProvider()->getTitle()
706 $link = ilLink::_getLink($this->
object->getRefId(), $this->object->getType());
707 $navigationHistory =
$DIC[
'ilNavigationHistory'];
709 $navigationHistory->addItem($this->
object->getRefId(), $link, $this->object->getType());
713 $obj = $this->object;
715 switch (
$DIC->ctrl()->getNextClass()) {
716 case strtolower(ilObjectCopyGUI::class):
719 $gui->
setType($this->getType());
720 $DIC->ctrl()->forwardCommand($gui);
723 case strtolower(ilCommonActionDispatcherGUI::class):
726 $DIC->ctrl()->forwardCommand($gui);
729 case strtolower(ilLearningProgressGUI::class):
731 $DIC->
tabs()->activateTab(self::TAB_ID_LEARNING_PROGRESS);
738 $DIC->ctrl()->forwardCommand($gui);
742 case strtolower(ilObjectMetaDataGUI::class):
744 $DIC->
tabs()->activateTab(self::TAB_ID_METADATA);
747 $DIC->ctrl()->forwardCommand($gui);
750 case strtolower(ilPermissionGUI::class):
752 $DIC->
tabs()->activateTab(self::TAB_ID_PERMISSIONS);
755 $DIC->ctrl()->forwardCommand($gui);
758 case strtolower(ilLTIConsumerSettingsGUI::class):
760 $DIC->
tabs()->activateTab(self::TAB_ID_SETTINGS);
763 $DIC->ctrl()->forwardCommand($gui);
766 case strtolower(ilLTIConsumerXapiStatementsGUI::class):
768 $DIC->
tabs()->activateTab(self::TAB_ID_STATEMENTS);
771 $DIC->ctrl()->forwardCommand($gui);
775 case strtolower(ilLTIConsumerScoringGUI::class):
777 $DIC->
tabs()->activateTab(self::TAB_ID_SCORING);
780 $DIC->ctrl()->forwardCommand($gui);
784 case strtolower(ilLTIConsumerGradeSynchronizationGUI::class):
786 $DIC->
tabs()->activateTab(self::TAB_ID_GRADE_SYNCHRONIZATION);
789 $DIC->ctrl()->forwardCommand($gui);
793 case strtolower(ilLTIConsumerContentGUI::class):
795 $DIC->
tabs()->activateTab(self::TAB_ID_CONTENT);
798 $DIC->ctrl()->forwardCommand($gui);
802 case strtolower(ilInfoScreenGUI::class):
804 $DIC->
tabs()->activateTab(self::TAB_ID_INFO);
806 $this->configureInfoScreen(
$info);
811 if ($DIC->ctrl()->getCmd() ===
'save') {
812 $this->checkContentSelection();
814 if (isset($this->
object) && !$this->isContentTabAvailable()) {
815 $DIC->ctrl()->redirectToURL($this->
ctrl->getLinkTargetByClass(ilInfoScreenGUI::class));
817 $command =
$DIC->ctrl()->getCmd(self::DEFAULT_CMD);
826 $providerId = $this->getRequestValue(
'provider_id');
827 $newType = $this->getRequestValue(
'new_type');
828 $refId = $this->getRequestValue(
'ref_id');
832 if (
$DIC->http()->wrapper()->post()->has(
'JWT')) {
848 if (!$this->
object->getOfflineStatus() &&
860 $DIC->language()->loadLanguageModule(
'lti');
862 if (isset($this->
object) && $this->isContentTabAvailable()) {
863 $DIC->tabs()->addTab(
864 self::TAB_ID_CONTENT,
865 $DIC->language()->txt(self::TAB_ID_CONTENT),
866 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerContentGUI::class)
870 $DIC->tabs()->addTab(
872 $DIC->language()->txt(self::TAB_ID_INFO),
873 $this->ctrl->getLinkTargetByClass(ilInfoScreenGUI::class)
876 if ($this->ltiAccess->hasWriteAccess()) {
877 $DIC->tabs()->addTab(
878 self::TAB_ID_SETTINGS,
879 $DIC->language()->txt(self::TAB_ID_SETTINGS),
880 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerSettingsGUI::class)
884 if ($this->ltiAccess->hasStatementsAccess()) {
885 $DIC->tabs()->addTab(
886 self::TAB_ID_STATEMENTS,
887 $DIC->language()->txt(self::TAB_ID_STATEMENTS),
888 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerXapiStatementsGUI::class)
892 if ($this->ltiAccess->hasHighscoreAccess()) {
894 $DIC->tabs()->addTab(
895 self::TAB_ID_SCORING,
896 $DIC->language()->txt(self::TAB_ID_SCORING),
897 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerScoringGUI::class)
901 if ($this->
object->getProvider()->isGradeSynchronization()) {
902 $DIC->tabs()->addTab(
903 self::TAB_ID_GRADE_SYNCHRONIZATION,
904 $DIC->language()->txt(self::TAB_ID_GRADE_SYNCHRONIZATION),
905 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerGradeSynchronizationGUI::class)
909 if ($this->ltiAccess->hasLearningProgressAccess() && $this->object->getProvider()->getHasOutcome()) {
910 $DIC->tabs()->addTab(
911 self::TAB_ID_LEARNING_PROGRESS,
912 $DIC->language()->txt(self::TAB_ID_LEARNING_PROGRESS),
913 $DIC->ctrl()->getLinkTargetByClass(ilLearningProgressGUI::class)
917 if ($this->ltiAccess->hasWriteAccess()) {
919 $link = $gui->getTab();
922 $DIC->tabs()->addTab(
923 self::TAB_ID_METADATA,
924 $DIC->language()->txt(
'meta_data'),
930 if ($this->ltiAccess->hasEditPermissionsAccess()) {
931 $DIC->tabs()->addTab(
932 self::TAB_ID_PERMISSIONS,
933 $DIC->language()->txt(self::TAB_ID_PERMISSIONS),
934 $DIC->ctrl()->getLinkTargetByClass(ilPermissionGUI::class,
'perm')
999 $locator =
$DIC[
'ilLocator'];
1002 $this->
object->getTitle(),
1003 $this->ctrl->getLinkTarget($this, self::DEFAULT_CMD),
1005 $this->object->getRefId()
1015 $this->
object->getType(),
1016 $this->object->getRefId(),
1017 $this->object->getId(),
1018 $DIC->user()->getId()
1024 protected function launch(): void
1027 $obj = $this->object;
1028 $this->tabs_gui->activateTab(self::TAB_ID_CONTENT);
1030 $this->
ctrl->forwardCommand($gui);
1035 $this->
ctrl->redirectByClass(ilInfoScreenGUI::class,
"showSummary");
1045 if (!$this->checkPermissionBool(
"visible") && !$this->checkPermissionBool(
"read")) {
1046 $ilErr->raiseError(
$DIC->language()->txt(
"msg_no_perm_read"),
$ilErr->MESSAGE);
1049 $this->handleAvailablityMessage();
1052 $info->enablePrivateNotes();
1054 if ($this->checkPermissionBool(
"read")) {
1055 $info->enableNews();
1058 $info->enableNewsEditing(
false);
1060 if ($this->checkPermissionBool(
"write")) {
1062 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1064 if ($enable_internal_rss) {
1066 $info->setBlockProperty(
"news",
"settings",
"true");
1067 $info->setBlockProperty(
"news",
"public_notifications_option",
"true");
1072 $info->addMetaDataSections($this->
object->getId(), 0, $this->object->getType());
1076 $info->addSection(
'DEVMODE Info');
1077 $info->addProperty(
'Local Object ID', (
string) $this->
object->getId());
1078 $info->
addProperty(
'Current User ID', (
string)
$DIC->user()->getId());
1081 $info->addSection(
$DIC->language()->txt(
"lti_info_learning_progress_section"));
1083 $DIC->language()->txt(
"mastery_score"),
1084 ($this->object->getMasteryScorePercent()) .
' %'
1089 $info->addSection(
$DIC->language()->txt(
"lti_info_privacy_section"));
1092 $DIC->language()->txt(
"lti_con_prov_url"),
1093 $this->object->getProvider()->getProviderUrl()
1097 $DIC->language()->txt(
"conf_privacy_name"),
1102 $DIC->language()->txt(
"conf_privacy_ident"),
1105 if ($this->
object->getProvider()->isExternalProvider()) {
1107 $DIC->language()->txt(
"lti_info_external_provider_label"),
1108 $DIC->language()->txt(
'lti_info_external_provider_info')
1112 if ($this->
object->getProvider()->getUseXapi()) {
1114 $DIC->language()->txt(
"lti_con_prov_xapi_launch_url"),
1115 $this->object->getProvider()->getXapiLaunchUrl()
1125 if ($this->
object->getProvider()->getProviderUrl() ==
'') {
1126 $this->tpl->setOnScreenMessage(
'failure',
$DIC->language()->txt(
'lti_provider_not_set_msg'));
1128 $this->tpl->setOnScreenMessage(
'failure',
$DIC->language()->txt(
'lti_provider_not_avail_msg'));
1134 if ($this->request_wrapper->has($key)) {
1135 return $this->request_wrapper->retrieve($key, $this->
refinery->kindlyTo()->string());
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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)
static getIdentAsId(int $userIdentMode, ilObjUser $user)
Class ilCommonActionDispatcherGUI.
addProperty(string $a_name, string $a_value, string $a_link="")
add a property to current section
static _lookupDBMode(int $a_obj_id)
static _updateStatus(int $a_obj_id, int $a_usr_id, ?object $a_obj=null, bool $a_percentage=false, bool $a_force_raise=false)
const AVAILABILITY_CREATE
static getProviderIdFromClientId(string $clientId)
static hasCustomProviderCreationAccess()
static isEmbeddedLaunchRequest()
const CMD_DELIVER_CERTIFICATE
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
static getPrivacyNameString(int $ident)
static getPrivacyIdentString(int $ident)
getType()
Functions that must be overwritten.
static _goto(string $a_target)
const CFORM_DYNAMIC_REGISTRATION
contentSelection(string $providerId, string $newType, string $refId, ilLTIConsumeProvider $provider)
configureInfoScreen(ilInfoScreenGUI $info)
const TAB_ID_GRADE_SYNCHRONIZATION
const TAB_ID_LEARNING_PROGRESS
contentSelectionResponse()
initShowToolConfig(string $a_new_type, int $a_provider_id)
initDynRegForm(string $a_new_type)
addLocatorItems()
Functions to be overwritten.
ilLTIConsumerAccess $ltiAccess
initCreateForm(string $a_new_type)
LOMServices $lom_services
initCustomCreateForm(string $a_new_type)
getRequestValue(string $key)
saveContentSelection(ilLTIConsumeProvider $provider, string $token)
initNewForm(string $a_new_type)
contentSelectionRequest()
buildProviderSelectionForm(string $a_new_type)
initMetadata(\ilObject $object)
initHeaderAction(?string $a_sub_type=null, ?int $a_sub_id=null)
__construct(int $a_id=0, int $a_id_type=self::REPOSITORY_NODE_ID, int $a_parent_node_id=0)
afterSave(\ilObject $newObject)
getCreationFormsHTML(StandardForm|ilPropertyFormGUI|array $forms)
setTabs()
create tabs (repository/workspace switch)
handleAvailablityMessage()
createNewObject(string $newType, string $title, string $description)
static getIliasHttpPath()
static buildContentSelectionParameters(ilLTIConsumeProvider $provider, int $refId, string $returnUrl, string $nonce)
New implementation of ilObjectGUI.
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $node_id=null)
putObjectInTree(ilObject $obj, ?int $parent_node_id=null)
Add object to tree at given position.
GUI class for the workflow of copying objects.
static getTypeByRefId(int $ref_id, bool $stop_on_error=true)
get object type by reference id
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
getDidacticTemplateVar(string $type)
Get didactic template setting from creation screen.
static _gotoRepositoryNode(int $ref_id, string $cmd="")
Class ilObject Basic functions for all objects.
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
static get(string $a_var)
static clear(string $a_var)
special template class to simplify handling of ITX/PEAR
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
if(empty($clientId)) $providerId
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.