19declare(strict_types=1);
69 if ($this->provider->getId() !== 0) {
76 $titleInp->setValue($this->provider->getTitle());
77 $titleInp->setRequired(
true);
81 $descInp->setValue($this->provider->getDescription());
85 $iconInp->setInfo(
$lng->
txt(
'obj_tile_image_info'));
87 $iconInp->setUseCache(
false);
88 if ($this->provider->hasProviderIcon() && $this->provider->getProviderIcon()->exists()) {
89 $iconInp->setImage($this->provider->getProviderIcon()->getAbsoluteFilePath());
91 $iconInp->setImage(
'');
97 $availabilityInp->setValue((
string) $this->provider->getAvailability());
98 $availabilityInp->setRequired(
true);
100 $lng->
txt(
'lti_con_prov_availability_create'),
103 $availabilityInp->addOption($optionCreate);
105 $lng->
txt(
'lti_con_prov_availability_existing'),
108 $availabilityInp->addOption($optionCreate);
110 $lng->
txt(
'lti_con_prov_availability_non'),
113 $availabilityInp->addOption($optionCreate);
114 $this->
addItem($availabilityInp);
118 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_authentication'));
119 $this->
addItem($sectionHeader);
125 if ($this->provider->getId() == 0) {
126 $lti13->setInfo(
$lng->
txt(
'lti_con_version_1.3_before_id'));
128 $versionInp->addOption($lti13);
130 $providerUrlInp->setValue($this->provider->getProviderUrl());
131 $providerUrlInp->setRequired(
true);
132 $lti13->addSubItem($providerUrlInp);
135 $initiateLogin->setValue($this->provider->getInitiateLogin());
136 $initiateLogin->setRequired(
true);
137 $lti13->addSubItem($initiateLogin);
140 $redirectionUris->setRows(4);
141 $redirectionUris->setValue(implode(
"\n", explode(
",", $this->provider->getRedirectionUris())));
142 $redirectionUris->setRequired(
true);
143 $lti13->addSubItem($redirectionUris);
147 $keyType->setRequired(
false);
150 $keyType->addOption($keyRsa);
152 $publicKey->setRows(6);
153 $publicKey->setValue($this->provider->getPublicKey());
154 $publicKey->setRequired(
false);
155 $publicKey->setInfo(
$lng->
txt(
'lti_con_key_type_rsa_public_key_info'));
156 $keyRsa->addSubItem($publicKey);
159 $keyType->addOption($keyJwk);
161 $keyset->setValue($this->provider->getPublicKeyset());
162 $keyset->setRequired(
false);
163 $keyJwk->addSubItem($keyset);
165 $keyType->setValue($this->provider->getKeyType());
166 $lti13->addSubItem($keyType);
169 $contentItem->setValue(
'1');
170 $contentItem->setChecked($this->provider->isContentItem());
173 $contentItemUrl->setValue($this->provider->getContentItemUrl());
174 $contentItem->addSubItem($contentItemUrl);
175 $lti13->addSubItem($contentItem);
179 $gradeSynchronization->setInfo(
$lng->
txt(
'lti_con_grade_synchronization_info'));
180 $gradeSynchronization->setValue(
'1');
181 $gradeSynchronization->setChecked($this->provider->isGradeSynchronization());
182 $lti13->addSubItem($gradeSynchronization);
184 if ($this->provider->getId() > 0) {
186 $Lti13Info->setRows(6);
187 $Lti13Info->setValue(
189 .
"\nClient ID: \t\t\t\t\t" . $this->provider->getClientId()
190 .
"\nDeployment ID: \t\t\t\t" . (
string) $this->provider->getId()
195 $Lti13Info->setDisabled(
true);
196 $lti13->addSubItem($Lti13Info);
199 $versionInp->setValue($this->provider->getLtiVersion());
203 $versionInp->addOption($lti11);
206 $providerUrlInp->setValue($this->provider->getProviderUrl());
207 $providerUrlInp->setRequired(
true);
208 $lti11->addSubItem($providerUrlInp);
211 $keyGlobal->setValue(
"1");
212 if (!$this->provider->isProviderKeyCustomizable()) {
213 $keyGlobal->setChecked(
true);
215 $keyGlobal->setInfo(
$lng->
txt(
'lti_con_prov_provider_key_global_info'));
218 $providerKeyInp->setValue($this->provider->getProviderKey());
219 $providerKeyInp->setRequired(
true);
220 $keyGlobal->addSubItem($providerKeyInp);
223 $providerSecretInp->setValue($this->provider->getProviderSecret());
224 $providerSecretInp->setRequired(
true);
225 $keyGlobal->addSubItem($providerSecretInp);
226 $lti11->addSubItem($keyGlobal);
231 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_privacy_settings'));
232 $this->
addItem($sectionHeader);
236 $lng->
txt(
'conf_privacy_ident_il_uuid_user_id'),
239 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_user_id_info'));
240 $item->addOption($op);
242 $lng->
txt(
'conf_privacy_ident_il_uuid_login'),
245 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_login_info'));
246 $item->addOption($op);
248 $lng->
txt(
'conf_privacy_ident_il_uuid_ext_account'),
251 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_ext_account_info'));
252 $item->addOption($op);
254 $lng->
txt(
'conf_privacy_ident_il_uuid_sha256'),
257 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_sha256_info'));
258 $item->addOption($op);
260 $lng->
txt(
'conf_privacy_ident_il_uuid_sha256url'),
263 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_sha256url_info'));
264 $item->addOption($op);
267 $lng->
txt(
'conf_privacy_ident_il_uuid_random'),
270 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_random_info'));
271 $item->addOption($op);
274 $lng->
txt(
'conf_privacy_ident_real_email'),
277 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_real_email_info'));
278 $item->addOption($op);
279 $item->setValue((
string) $this->provider->getPrivacyIdent());
283 $item->setRequired(
false);
287 $item->setValue(
"1");
288 if ($this->provider->isInstructorSendEmail()) {
289 $item->setChecked(
true);
291 $item->setInfo(
$lng->
txt(
'lti_con_prov_instructor_email_info'));
296 $op->setInfo(
$lng->
txt(
'conf_privacy_name_none_info'));
297 $item->addOption($op);
299 $op->setInfo(
$lng->
txt(
'conf_privacy_name_firstname_info'));
300 $item->addOption($op);
302 $op->setInfo(
$lng->
txt(
'conf_privacy_name_lastname_info'));
303 $item->addOption($op);
305 $op->setInfo(
$lng->
txt(
'conf_privacy_name_fullname_info'));
306 $item->addOption($op);
307 $item->setValue((
string) $this->provider->getPrivacyName());
308 $item->setInfo(
$lng->
txt(
'conf_privacy_name_info'));
309 $item->setRequired(
false);
313 $item->setValue(
"1");
314 if ($this->provider->isInstructorSendName()) {
315 $item->setChecked(
true);
317 $item->setInfo(
$lng->
txt(
'lti_con_prov_instructor_name_info'));
321 $includeUserImage->setInfo(
$lng->
txt(
'lti_con_prov_inc_usr_pic_info'));
322 $includeUserImage->setChecked($this->provider->getIncludeUserPicture());
323 $this->
addItem($includeUserImage);
326 $item->setValue(
"1");
327 if ($this->provider->IsExternalProvider()) {
328 $item->setChecked(
true);
330 $item->setInfo(
$lng->
txt(
'lti_con_prov_external_provider_info'));
335 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_learning_progress_options'));
336 $this->
addItem($sectionHeader);
338 $item->setValue(
"1");
339 if ($this->provider->getHasOutcome()) {
340 $item->setChecked(
true);
342 $item->setInfo(
$lng->
txt(
'lti_con_prov_has_outcome_service_info'));
344 $masteryScore->setInfo(
$lng->
txt(
'lti_con_prov_mastery_score_default_info'));
345 $masteryScore->setSuffix(
'%');
346 $masteryScore->allowDecimals(
true);
347 $masteryScore->setDecimals(2);
348 $masteryScore->setMinvalueShouldBeGreater(
false);
349 $masteryScore->setMinValue(0);
350 $masteryScore->setMaxvalueShouldBeLess(
false);
351 $masteryScore->setMaxValue(100);
352 $masteryScore->setSize(4);
353 $masteryScore->setValue((
string) $this->provider->getMasteryScorePercent());
354 $item->addSubItem($masteryScore);
358 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_launch_options'));
359 $this->
addItem($sectionHeader);
362 $item->setValue(
"1");
363 if ($this->provider->getUseProviderId()) {
364 $item->setChecked(
true);
366 $item->setInfo(
$lng->
txt(
'lti_con_prov_use_provider_id_info'));
371 $item->setValue(
"1");
372 if ($this->provider->getAlwaysLearner()) {
373 $item->setChecked(
true);
375 $item->setInfo(
$lng->
txt(
'lti_con_prov_always_learner_info'));
379 $item->setValue(
"1");
380 if ($this->provider->getUseXapi()) {
381 $item->setChecked(
true);
383 $item->setInfo(
$lng->
txt(
'lti_con_prov_use_xapi_info'));
386 $subitem->setValue($this->provider->getXapiLaunchUrl());
387 $subitem->setInfo(
$lng->
txt(
'lti_con_prov_xapi_launch_url_info'));
388 $subitem->setRequired(
true);
389 $subitem->setMaxLength(255);
390 $item->addSubItem($subitem);
393 $subitem->setValue($this->provider->getXapiLaunchKey());
394 $subitem->setInfo(
$lng->
txt(
'lti_con_prov_xapi_launch_key_info'));
395 $subitem->setRequired(
true);
396 $subitem->setMaxLength(64);
397 $item->addSubItem($subitem);
400 $subitem->setValue($this->provider->getXapiLaunchSecret());
401 $subitem->setInfo(
$lng->
txt(
'lti_con_prov_xapi_launch_secret_info'));
402 $subitem->setRequired(
true);
403 $subitem->setMaxLength(64);
404 $item->addSubItem($subitem);
407 $subitem->setValue($this->provider->getXapiActivityId());
408 $subitem->setInfo(
$lng->
txt(
'lti_con_prov_xapi_activity_id_info'));
409 $subitem->setMaxLength(128);
410 $item->addSubItem($subitem);
415 $item->setValue($this->provider->getCustomParams());
418 $item->setInfo(
$lng->
txt(
'lti_con_prov_custom_params_info'));
422 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_group_options'));
423 $this->
addItem($sectionHeader);
426 $item->setValue($this->provider->getKeywords());
427 $item->setInfo(
$lng->
txt(
'lti_con_prov_keywords_info'));
428 $item->setMaxLength(1000);
432 $category->setInfo(
$lng->
txt(
'lti_con_prov_category_info'));
433 $category->setValue($this->provider->getCategory());
434 $category->setRequired(
true);
441 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_hints'));
442 $this->
addItem($sectionHeader);
445 $remarksInp->setValue($this->provider->getRemarks());
446 $remarksInp->setRows(6);
461 $titleInp->setValue($this->provider->getTitle());
462 $titleInp->setRequired(
true);
466 $descInp->setValue($this->provider->getDescription());
470 $iconInp->setInfo(
$lng->
txt(
'obj_tile_image_info'));
472 $iconInp->setUseCache(
false);
473 if ($this->provider->hasProviderIcon() && $this->provider->getProviderIcon()->exists()) {
474 $iconInp->setImage($this->provider->getProviderIcon()->getAbsoluteFilePath());
476 $iconInp->setImage(
'');
482 $availabilityInp->setValue((
string) $this->provider->getAvailability());
483 $availabilityInp->setRequired(
true);
485 $lng->
txt(
'lti_con_prov_availability_create'),
488 $availabilityInp->addOption($optionCreate);
490 $lng->
txt(
'lti_con_prov_availability_existing'),
493 $availabilityInp->addOption($optionCreate);
495 $lng->
txt(
'lti_con_prov_availability_non'),
498 $availabilityInp->addOption($optionCreate);
499 $this->
addItem($availabilityInp);
503 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_authentication'));
504 $this->
addItem($sectionHeader);
507 $versionInp->setDisabled(
true);
510 if ($this->provider->getId() == 0) {
511 $lti13->setInfo(
$lng->
txt(
'lti_con_version_1.3_before_id'));
513 $versionInp->addOption($lti13);
515 $providerUrlInp->setValue($this->provider->getProviderUrl());
516 $providerUrlInp->setRequired(
true);
517 $lti13->addSubItem($providerUrlInp);
520 $initiateLogin->setValue($this->provider->getInitiateLogin());
521 $initiateLogin->setRequired(
true);
522 $lti13->addSubItem($initiateLogin);
525 $redirectionUris->setRows(4);
526 $redirectionUris->setValue(implode(
"\n", explode(
",", $this->provider->getRedirectionUris())));
527 $redirectionUris->setRequired(
true);
528 $lti13->addSubItem($redirectionUris);
532 $keyType->setRequired(
true);
535 $keyType->addOption($keyRsa);
537 $publicKey->setRows(6);
538 $publicKey->setRequired(
true);
539 $publicKey->setValue($this->provider->getPublicKey());
540 $publicKey->setInfo(
$lng->
txt(
'lti_con_key_type_rsa_public_key_info'));
541 $keyRsa->addSubItem($publicKey);
544 $keyType->addOption($keyJwk);
546 $keyset->setValue($this->provider->getPublicKeyset());
547 $keyset->setRequired(
true);
548 $keyJwk->addSubItem($keyset);
550 $keyType->setValue($this->provider->getKeyType());
551 $lti13->addSubItem($keyType);
554 $contentItem->setValue(
'1');
557 if (!
ilSession::has(
'lti_dynamic_registration_custom_params') && !empty($this->provider->getContentItemUrl())) {
558 $contentItem->setChecked(
true);
560 $contentItem->setChecked(
false);
563 if (empty($this->provider->getContentItemUrl())) {
564 $contentItem->setChecked(
false);
566 $contentItem->setChecked($this->provider->isContentItem());
570 $contentItemUrl->setValue($this->provider->getContentItemUrl());
571 $contentItem->addSubItem($contentItemUrl);
572 $lti13->addSubItem($contentItem);
576 $gradeSynchronization->setInfo(
$lng->
txt(
'lti_con_grade_synchronization_info'));
577 $gradeSynchronization->setValue(
'1');
578 $gradeSynchronization->setChecked($this->provider->isGradeSynchronization());
579 $lti13->addSubItem($gradeSynchronization);
582 $Lti13Info->setRows(6);
583 $Lti13Info->setValue(
585 .
"\nClient ID: \t\t\t\t\t" . $this->provider->getClientId()
586 .
"\nDeployment ID: \t\t\t\t" . (
string) $this->provider->getId()
591 $Lti13Info->setDisabled(
true);
592 $lti13->addSubItem($Lti13Info);
594 $versionInp->setValue($this->provider->getLtiVersion());
598 $versionInp->addOption($lti11);
601 $providerUrlInp->setValue($this->provider->getProviderUrl());
602 $providerUrlInp->setRequired(
true);
603 $lti11->addSubItem($providerUrlInp);
606 $keyGlobal->setValue(
"1");
607 if (!$this->provider->isProviderKeyCustomizable()) {
608 $keyGlobal->setChecked(
true);
610 $keyGlobal->setInfo(
$lng->
txt(
'lti_con_prov_provider_key_global_info'));
613 $providerKeyInp->setValue($this->provider->getProviderKey());
614 $providerKeyInp->setRequired(
true);
615 $keyGlobal->addSubItem($providerKeyInp);
618 $providerSecretInp->setValue($this->provider->getProviderSecret());
619 $providerSecretInp->setRequired(
true);
620 $keyGlobal->addSubItem($providerSecretInp);
621 $lti11->addSubItem($keyGlobal);
626 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_privacy_settings'));
627 $this->
addItem($sectionHeader);
631 $lng->
txt(
'conf_privacy_ident_il_uuid_user_id'),
634 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_user_id_info'));
635 $item->addOption($op);
637 $lng->
txt(
'conf_privacy_ident_il_uuid_login'),
640 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_login_info'));
641 $item->addOption($op);
643 $lng->
txt(
'conf_privacy_ident_il_uuid_ext_account'),
646 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_ext_account_info'));
647 $item->addOption($op);
649 $lng->
txt(
'conf_privacy_ident_il_uuid_sha256'),
652 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_sha256_info'));
653 $item->addOption($op);
655 $lng->
txt(
'conf_privacy_ident_il_uuid_sha256url'),
658 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_sha256url_info'));
659 $item->addOption($op);
662 $lng->
txt(
'conf_privacy_ident_il_uuid_random'),
665 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_il_uuid_random_info'));
666 $item->addOption($op);
669 $lng->
txt(
'conf_privacy_ident_real_email'),
672 $op->setInfo(
$lng->
txt(
'conf_privacy_ident_real_email_info'));
673 $item->addOption($op);
674 $item->setValue((
string) $this->provider->getPrivacyIdent());
678 $item->setRequired(
false);
682 $item->setValue(
"1");
683 if ($this->provider->isInstructorSendEmail()) {
684 $item->setChecked(
true);
686 $item->setInfo(
$lng->
txt(
'lti_con_prov_instructor_email_info'));
691 $op->setInfo(
$lng->
txt(
'conf_privacy_name_none_info'));
692 $item->addOption($op);
694 $op->setInfo(
$lng->
txt(
'conf_privacy_name_firstname_info'));
695 $item->addOption($op);
697 $op->setInfo(
$lng->
txt(
'conf_privacy_name_lastname_info'));
698 $item->addOption($op);
700 $op->setInfo(
$lng->
txt(
'conf_privacy_name_fullname_info'));
701 $item->addOption($op);
702 $item->setValue((
string) $this->provider->getPrivacyName());
703 $item->setInfo(
$lng->
txt(
'conf_privacy_name_info'));
704 $item->setRequired(
false);
708 $item->setValue(
"1");
709 if ($this->provider->isInstructorSendName()) {
710 $item->setChecked(
true);
712 $item->setInfo(
$lng->
txt(
'lti_con_prov_instructor_name_info'));
716 $includeUserImage->setInfo(
$lng->
txt(
'lti_con_prov_inc_usr_pic_info'));
717 $includeUserImage->setChecked($this->provider->getIncludeUserPicture());
718 $this->
addItem($includeUserImage);
721 $item->setValue(
"1");
722 if ($this->provider->IsExternalProvider()) {
723 $item->setChecked(
true);
725 $item->setInfo(
$lng->
txt(
'lti_con_prov_external_provider_info'));
730 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_learning_progress_options'));
731 $this->
addItem($sectionHeader);
733 $item->setValue(
"1");
734 if ($this->provider->getHasOutcome()) {
735 $item->setChecked(
true);
737 $item->setInfo(
$lng->
txt(
'lti_con_prov_has_outcome_service_info'));
739 $masteryScore->setInfo(
$lng->
txt(
'lti_con_prov_mastery_score_default_info'));
740 $masteryScore->setSuffix(
'%');
741 $masteryScore->allowDecimals(
true);
742 $masteryScore->setDecimals(2);
743 $masteryScore->setMinvalueShouldBeGreater(
false);
744 $masteryScore->setMinValue(0);
745 $masteryScore->setMaxvalueShouldBeLess(
false);
746 $masteryScore->setMaxValue(100);
747 $masteryScore->setSize(4);
748 $masteryScore->setValue((
string) $this->provider->getMasteryScorePercent());
749 $item->addSubItem($masteryScore);
753 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_launch_options'));
754 $this->
addItem($sectionHeader);
757 $item->setValue(
"1");
758 if ($this->provider->getUseProviderId()) {
759 $item->setChecked(
true);
761 $item->setInfo(
$lng->
txt(
'lti_con_prov_use_provider_id_info'));
766 $item->setValue(
"1");
767 if ($this->provider->getAlwaysLearner()) {
768 $item->setChecked(
true);
770 $item->setInfo(
$lng->
txt(
'lti_con_prov_always_learner_info'));
774 $item->setValue(
"1");
775 if ($this->provider->getUseXapi()) {
776 $item->setChecked(
true);
778 $item->setInfo(
$lng->
txt(
'lti_con_prov_use_xapi_info'));
781 $subitem->setValue($this->provider->getXapiLaunchUrl());
782 $subitem->setInfo(
$lng->
txt(
'lti_con_prov_xapi_launch_url_info'));
783 $subitem->setRequired(
true);
784 $subitem->setMaxLength(255);
785 $item->addSubItem($subitem);
788 $subitem->setValue($this->provider->getXapiLaunchKey());
789 $subitem->setInfo(
$lng->
txt(
'lti_con_prov_xapi_launch_key_info'));
790 $subitem->setRequired(
true);
791 $subitem->setMaxLength(64);
792 $item->addSubItem($subitem);
795 $subitem->setValue($this->provider->getXapiLaunchSecret());
796 $subitem->setInfo(
$lng->
txt(
'lti_con_prov_xapi_launch_secret_info'));
797 $subitem->setRequired(
true);
798 $subitem->setMaxLength(64);
799 $item->addSubItem($subitem);
802 $subitem->setValue($this->provider->getXapiActivityId());
803 $subitem->setInfo(
$lng->
txt(
'lti_con_prov_xapi_activity_id_info'));
804 $subitem->setMaxLength(128);
805 $item->addSubItem($subitem);
812 $item->setValue(
ilSession::get(
'lti_dynamic_registration_custom_params'));
814 $item->setValue($this->provider->getCustomParams());
818 $item->setInfo(
$lng->
txt(
'lti_con_prov_custom_params_info'));
822 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_group_options'));
823 $this->
addItem($sectionHeader);
826 $item->setValue($this->provider->getKeywords());
827 $item->setInfo(
$lng->
txt(
'lti_con_prov_keywords_info'));
828 $item->setMaxLength(1000);
832 $category->setInfo(
$lng->
txt(
'lti_con_prov_category_info'));
833 $category->setValue($this->provider->getCategory());
834 $category->setRequired(
true);
841 $sectionHeader->setTitle(
$lng->
txt(
'lti_con_prov_hints'));
842 $this->
addItem($sectionHeader);
845 $remarksInp->setValue($this->provider->getRemarks());
846 $remarksInp->setRows(6);
868 if (
null !== $this->
getInput(
'provider_url')) {
871 if ($this->
getInput(
'provider_key_global') == 1) {
879 if (
null !== $this->
getInput(
'provider_url13')) {
883 if (preg_match_all(
'/\S+/sm', $this->
getInput(
'redirection_uris'), $redirect_uris_matches)) {
940 $regUrlInp->setInfo(
$lng->
txt(
'lti_con_prov_dyn_reg_url_info'));
941 $regUrlInp->setRequired(
true);
943 $regParamsInp =
new ilTextInputGUI(
$lng->
txt(
'lti_con_prov_dyn_reg_params'),
'lti_dyn_reg_custom_params');
944 $regParamsInp->setInfo(
$lng->
txt(
'lti_con_prov_dyn_reg_params_info'));
945 $this->
addCommandButton(
"addDynReg", $DIC->language()->txt(
'lti_dyn_reg_add_tool'));
957 $src =
$DIC->ctrl()->getLinkTargetByClass(ilObjLTIConsumerGUI::class,
'contentSelectionRequest');
958 $template =
new ilTemplate(
'tpl.lti_content_selection.html',
true,
true,
"components/ILIAS/LTIConsumer");
959 $template->setVariable(
'LTI_CONTENT_SELECTION_IFRAME_SRC', $src);
960 return $this->
getHTML() . $template->get();
968 $toolRegUrl = $this->
getInput(
'lti_dyn_reg_url');
969 $customParams = $this->
getInput(
'lti_dyn_reg_custom_params');
971 if (!empty($customParams)) {
972 $regUrl .=
"&custom_params=" . urlencode($customParams);
974 $showToolConfigUrl =
$DIC->ctrl()->getLinkTargetByClass([ilRepositoryGUI::class,ilObjLTIConsumerGUI::class],
'showToolConfig');
975 $regErrorUrl =
$DIC->ctrl()->getLinkTargetByClass([ilRepositoryGUI::class,ilObjLTIConsumerGUI::class],
'addDynReg');
980 $template =
new ilTemplate(
'tpl.lti_dyn_reg_request.html',
true,
true,
"components/ILIAS/LTIConsumer");
981 $template->setVariable(
'LTI_TOOL_REG_URL', $toolRegUrl);
982 $template->setVariable(
'LTI_DYN_REG_URL', $regUrl);
983 $template->setVariable(
'LTI_DYN_REG_URL_BY_POST', $toolRegUrl);
985 $template->setVariable(
'LTI_SHOW_TOOL_CONFIG_URL', $showToolConfigUrl);
986 $template->setVariable(
'LTI_REG_ERROR_URL', $regErrorUrl);
988 return $template->get() . $this->
getHTML();
const PRIVACY_IDENT_IL_UUID_SHA256
const PRIVACY_IDENT_IL_UUID_SHA256URL
const PRIVACY_IDENT_IL_UUID_RANDOM
static getSupportedFileExtensions()
setProviderUrl(string $provider_url)
setPublicKey(string $public_key)
static getCategoriesSelectOptions()
setPrivacyName(int $privacy_name)
const PRIVACY_NAME_FULLNAME
setPrivacyIdent(int $privacy_ident)
setUseProviderId(bool $use_provider_id)
const PRIVACY_IDENT_IL_UUID_USER_ID
const AVAILABILITY_CREATE
setCustomParams(string $custom_params)
const PRIVACY_NAME_FIRSTNAME
const PRIVACY_IDENT_IL_UUID_EXT_ACCOUNT
setPublicKeyset(string $public_keyset)
isProviderKeyCustomizable()
const PRIVACY_IDENT_REAL_EMAIL
setRemarks(string $remarks)
setDescription(string $description)
setProviderIconUploadFileData(array $providerIconUploadFileData)
setProviderIconUploadInput(ilFormPropertyGUI $providerIconUploadInput)
setInstructorSendEmail(bool $instructor_send_email)
setXapiLaunchSecret(string $xapi_launch_secret)
setInstructorSendName(bool $instructor_send_name)
setProviderKey(string $provider_key)
setMasteryScorePercent(float $mastery_score_percent)
setAvailability(int $availability)
setLtiVersion(string $lti_version)
setIncludeUserPicture(bool $include_user_picture)
setIsExternalProvider(bool $is_external_provider)
setXapiLaunchUrl(string $xapi_launch_url)
setHasOutcome(bool $has_outcome)
const PRIVACY_NAME_LASTNAME
setContentItemUrl(string $content_item_url)
setAlwaysLearner(bool $always_learner)
setRedirectionUris(string $redirection_uris)
setProviderKeyCustomizable(bool $provider_key_customizable)
setKeywords(string $keywords)
setXapiActivityId(string $xapi_activity_id)
setContentItem(bool $content_item)
setInitiateLogin(string $initiate_login)
setUseXapi(bool $use_xapi)
setGradeSynchronization(bool $grade_synchronization)
setKeyType(string $key_type)
const AVAILABILITY_EXISTING
setXapiLaunchKey(string $xapi_launch_key)
setProviderSecret(string $provider_secret)
setCategory(string $category)
isValidCategory(string $category)
const PRIVACY_IDENT_IL_UUID_LOGIN
static isUserDynamicRegistrationTransaction(ilLTIConsumeProvider $provider)
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 getAccessTokenUrl()
static getRegistrationEndUrl()
static getPublicKeysetUrl()
static getAuthenticationRequestUrl()
static getRegistrationStartUrl()
This class represents an option in a radio group.
static get(string $a_var)
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc