50 public function __construct($a_id = 0, $a_id_type = self::REPOSITORY_NODE_ID, $a_parent_node_id = 0)
60 $DIC->language()->loadLanguageModule(
"lti");
61 $DIC->language()->loadLanguageModule(
"rep");
100 $userProviderList->setCreatorFilter($DIC->user()->getId());
102 if ($form->getFilter(
'title')) {
103 $globalProviderList->setTitleFilter($form->getFilter(
'title'));
104 $userProviderList->setTitleFilter($form->getFilter(
'title'));
107 if ($form->getFilter(
'category')) {
108 $globalProviderList->setCategoryFilter($form->getFilter(
'category'));
109 $userProviderList->setCategoryFilter($form->getFilter(
'category'));
112 if ($form->getFilter(
'keyword')) {
113 $globalProviderList->setKeywordFilter($form->getFilter(
'keyword'));
114 $userProviderList->setKeywordFilter($form->getFilter(
'keyword'));
117 if ($form->getFilter(
'outcome')) {
118 $globalProviderList->setHasOutcomeFilter(
true);
119 $userProviderList->setHasOutcomeFilter(
true);
122 if ($form->getFilter(
'internal')) {
123 $globalProviderList->setIsExternalFilter(
false);
124 $userProviderList->setIsExternalFilter(
false);
127 if ($form->getFilter(
'with_key')) {
128 $globalProviderList->setIsProviderKeyCustomizableFilter(
false);
129 $userProviderList->setIsProviderKeyCustomizableFilter(
false);
132 $globalProviderList->load();
133 $userProviderList->load();
135 $form->setData(array_merge(
136 $globalProviderList->getTableData(),
137 $userProviderList->getTableData()
151 $form->initForm($this->ctrl->getFormAction($this,
"save"),
'',
'');
153 $form->clearCommandButtons();
154 $form->addCommandButton(
"saveCustom", $this->lng->txt($a_new_type .
"_add_own_provider"));
155 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
157 $form->setTitle($DIC->language()->txt($a_new_type .
'_custom_new'));
168 'applyProviderFilter',
169 'resetProviderFilter' 176 $form->applyFilter();
183 $form->resetFilter();
189 $classname =
"ilObj" . $this->objDefinition->getClassName($newType);
191 $newObj =
new $classname();
192 $newObj->setType($newType);
193 $newObj->setTitle($title);
194 $newObj->setDescription($description);
210 $new_type = $_REQUEST[
"new_type"];
211 $DIC->ctrl()->setParameter($this,
"new_type", $new_type);
213 $DIC->language()->loadLanguageModule($new_type);
217 if ($form->checkInput()) {
218 $DIC->ctrl()->setParameter($this,
"new_type",
"");
223 $form->getInput(
'title'),
224 $form->getInput(
'desc')
230 $newObj->applyDidacticTemplate($dtpl);
241 $form->setValuesByPost();
243 $DIC->ui()->mainTemplate()->setContent($form->getHtml());
251 if (isset(
$_GET[
'provider_id']) && (
int)
$_GET[
'provider_id']) {
252 $newObject->setProviderId((
int) $_GET[
'provider_id']);
253 $newObject->initProvider();
257 $newObject->setMasteryScore($newObject->getProvider()->getMasteryScore());
262 $DIC->ctrl()->redirectByClass(ilLTIConsumerSettingsGUI::class);
271 if ($form->checkInput()) {
273 $form->initProvider($provider);
275 $provider->setIsGlobal(
false);
276 $provider->setCreator($DIC->user()->getId());
279 $newObject->setProviderId($provider->getId());
280 $newObject->setProvider($provider);
283 $newObject->
setTitle($provider->getTitle());
284 $newObject->setMasteryScore($newObject->getProvider()->getMasteryScore());
289 $DIC->ctrl()->redirectByClass(ilObjLTIConsumerGUI::class);
293 'form validation seems to not have worked in ilObjLTIConsumer::saveCustom()!' 303 if (!$generalMetadata) {
307 $generalMetadata->setTitle($object->
getTitle());
308 $generalMetadata->
save();
310 $id = $generalMetadata->addIdentifier();
311 $id->setCatalog(
'ILIAS');
312 $id->setEntry(
'il__' . $object->
getType() .
'_' . $object->
getId());
315 $keywords = $object->
getProvider()->getKeywordsArray();
323 $return = parent::initHeaderAction($a_sub_type, $a_sub_id);
325 if ($this->creation_mode) {
330 if ($validator->isCertificateDownloadable((
int) $DIC->user()->getId(), (int) $this->object->getId())) {
331 $certLink = $DIC->ctrl()->getLinkTargetByClass(
332 [ilObjLTIConsumerGUI::class, ilLTIConsumerSettingsGUI::class],
336 $DIC->language()->loadLanguageModule(
'certificate');
338 $return->addCustomCommand($certLink,
'download_certificate');
340 $return->addHeaderIcon(
343 $DIC->language()->txt(
'download_certificate'),
353 public static function _goto($a_target)
356 $err = $DIC[
'ilErr'];
357 $ctrl = $DIC->ctrl();
360 $lng = $DIC->language();
362 $targetParameters = explode(
'_', $a_target);
363 $id = (int) $targetParameters[0];
366 $err->raiseError(
$lng->txt(
'msg_no_perm_read'), $err->FATAL);
369 if (
$access->checkAccess(
'read',
'', $id)) {
370 $ctrl->setTargetScript(
'ilias.php');
371 $ctrl->initBaseClass(ilRepositoryGUI::class);
372 $ctrl->setParameterByClass(ilObjLTIConsumerGUI::class,
'ref_id', $id);
373 if (isset(
$request->getQueryParams()[
'gotolp'])) {
374 $ctrl->setParameterByClass(ilObjLTIConsumerGUI::class,
'gotolp', 1);
376 $ctrl->redirectByClass([ilRepositoryGUI::class, ilObjLTIConsumerGUI::class]);
377 } elseif (
$access->checkAccess(
'visible',
'', $id)) {
382 $DIC->language()->txt(
'msg_no_perm_read_item'),
391 $err->raiseError($DIC->language()->txt(
"msg_no_perm_read_lm"), $err->FATAL);
408 if (!$this->creation_mode) {
411 if ($this->object->getProvider()->hasProviderIcon()) {
412 $DIC->ui()->mainTemplate()->setTitleIcon(
413 $this->object->getProvider()->getProviderIcon()->getAbsoluteFilePath(),
414 'Icon ' . $this->
object->getProvider()->getTitle()
418 $link =
ilLink::_getLink($this->object->getRefId(), $this->
object->getType());
419 $navigationHistory = $DIC[
'ilNavigationHistory'];
420 $navigationHistory->addItem($this->object->getRefId(), $link, $this->
object->getType());
423 switch ($DIC->ctrl()->getNextClass()) {
424 case strtolower(ilObjectCopyGUI::class):
427 $gui->setType($this->
getType());
428 $DIC->ctrl()->forwardCommand($gui);
431 case strtolower(ilCommonActionDispatcherGUI::class):
434 $DIC->ctrl()->forwardCommand($gui);
437 case strtolower(ilLearningProgressGUI::class):
439 $DIC->tabs()->activateTab(self::TAB_ID_LEARNING_PROGRESS);
443 $this->object->getRefId()
446 $DIC->ctrl()->forwardCommand($gui);
450 case strtolower(ilObjectMetaDataGUI::class):
452 if (!$DIC->access()->checkAccess(
'write',
'', $this->object->getRefId())) {
453 $DIC[
'ilErr']->raiseError($DIC->language()->txt(
"msg_no_perm_write"));
455 $DIC->tabs()->activateTab(self::TAB_ID_METADATA);
458 $DIC->ctrl()->forwardCommand($gui);
462 case strtolower(ilPermissionGUI::class):
464 $DIC->tabs()->activateTab(self::TAB_ID_PERMISSIONS);
467 $DIC->ctrl()->forwardCommand($gui);
470 case strtolower(ilLTIConsumerSettingsGUI::class):
472 if (!$DIC->access()->checkAccess(
'write',
'', $this->object->getRefId())) {
473 $DIC[
'ilErr']->raiseError($DIC->language()->txt(
"msg_no_perm_write"));
475 $DIC->tabs()->activateTab(self::TAB_ID_SETTINGS);
478 $DIC->ctrl()->forwardCommand($gui);
482 case strtolower(ilLTIConsumerXapiStatementsGUI::class):
484 $DIC->tabs()->activateTab(self::TAB_ID_STATEMENTS);
487 $DIC->ctrl()->forwardCommand($gui);
491 case strtolower(ilLTIConsumerScoringGUI::class):
493 $DIC->tabs()->activateTab(self::TAB_ID_SCORING);
496 $DIC->ctrl()->forwardCommand($gui);
500 case strtolower(ilLTIConsumerContentGUI::class):
502 if (!$DIC->access()->checkAccess(
'read',
'', $this->object->getRefId())) {
503 $DIC[
'ilErr']->raiseError($DIC->language()->txt(
"msg_no_perm_read"));
505 $DIC->tabs()->activateTab(self::TAB_ID_CONTENT);
508 $DIC->ctrl()->forwardCommand($gui);
513 case strtolower(ilInfoScreenGUI::class):
515 $DIC->tabs()->activateTab(self::TAB_ID_INFO);
521 $command = $DIC->ctrl()->getCmd(self::DEFAULT_CMD);
529 $DIC->language()->loadLanguageModule(
'lti');
531 $DIC->help()->setScreenIdComponent(
"lti");
533 if (!$this->object->getOfflineStatus() &&
536 $DIC->tabs()->addTab(
537 self::TAB_ID_CONTENT,
538 $DIC->language()->txt(self::TAB_ID_CONTENT),
539 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerContentGUI::class)
543 $DIC->tabs()->addTab(
545 $DIC->language()->txt(self::TAB_ID_INFO),
546 $this->ctrl->getLinkTargetByClass(ilInfoScreenGUI::class)
550 if ($this->ltiAccess->hasWriteAccess()) {
551 $DIC->tabs()->addTab(
552 self::TAB_ID_SETTINGS,
553 $DIC->language()->txt(self::TAB_ID_SETTINGS),
554 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerSettingsGUI::class)
558 if ($this->ltiAccess->hasStatementsAccess()) {
559 $DIC->tabs()->addTab(
560 self::TAB_ID_STATEMENTS,
561 $DIC->language()->txt(self::TAB_ID_STATEMENTS),
562 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerXapiStatementsGUI::class)
566 if ($this->ltiAccess->hasHighscoreAccess()) {
567 $DIC->language()->loadLanguageModule(
'lti');
568 $DIC->tabs()->addTab(
569 self::TAB_ID_SCORING,
570 $DIC->language()->txt(self::TAB_ID_SCORING),
571 $DIC->ctrl()->getLinkTargetByClass(ilLTIConsumerScoringGUI::class)
575 if ($this->ltiAccess->hasLearningProgressAccess() && $this->
object->getProvider()->getHasOutcome()) {
576 $DIC->tabs()->addTab(
577 self::TAB_ID_LEARNING_PROGRESS,
578 $DIC->language()->txt(self::TAB_ID_LEARNING_PROGRESS),
579 $DIC->ctrl()->getLinkTargetByClass(ilLearningProgressGUI::class)
583 if ($this->ltiAccess->hasWriteAccess()) {
585 $link = $gui->getTab();
588 $DIC->tabs()->addTab(
589 self::TAB_ID_METADATA,
590 $DIC->language()->txt(
'meta_data'),
596 if ($this->ltiAccess->hasEditPermissionsAccess()) {
597 $DIC->tabs()->addTab(
598 self::TAB_ID_PERMISSIONS,
599 $DIC->language()->txt(self::TAB_ID_PERMISSIONS),
600 $DIC->ctrl()->getLinkTargetByClass(ilPermissionGUI::class,
'perm')
604 if (defined(
'DEVMODE') && DEVMODE) {
605 $DIC->tabs()->addTab(
608 $DIC->ctrl()->getLinkTarget($this,
'debug')
617 $DIC->tabs()->activateTab(
'debug');
620 $filter->setActivityId($this->object->getActivityId());
622 $aggregateEndPointUrl = str_replace(
624 'api/statements/aggregate',
625 $this->object->getProvider()->getXapiLaunchUrl()
630 $aggregateEndPointUrl,
635 $this->object->getProvider()->getXapiLaunchKey(),
636 $this->
object->getProvider()->getXapiLaunchSecret()
645 $report = $request->queryReport($this->
object);
647 $DIC->ui()->mainTemplate()->setContent(
648 $report->getResponseDebug()
665 $this->object->getTitle(),
666 $this->ctrl->getLinkTarget($this, self::DEFAULT_CMD),
677 $this->object->getType(),
678 $this->
object->getRefId(),
679 $this->
object->getId(),
680 $DIC->user()->getId()
686 protected function launch() :
void 690 $this->tabs_gui->activateTab(self::TAB_ID_CONTENT);
692 $this->ctrl->forwardCommand($gui);
699 $DIC->tabs()->activateTab(self::TAB_ID_INFO);
701 $DIC->ctrl()->setCmd(
"showSummary");
702 $DIC->ctrl()->setCmdClass(
"ilinfoscreengui");
712 $ilErr->raiseError($DIC->language()->txt(
"msg_no_perm_read"));
719 $info->enablePrivateNotes();
725 $info->enableNewsEditing(
false);
729 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
731 if ($enable_internal_rss) {
732 $info->setBlockProperty(
"news",
"settings",
true);
733 $info->setBlockProperty(
"news",
"public_notifications_option",
true);
738 $info->addMetaDataSections($this->object->getId(), 0, $this->
object->getType());
742 $info->addSection(
'DEVMODE Info');
743 $info->addProperty(
'Local Object ID', $this->object->getId());
744 $info->addProperty(
'Current User ID', $DIC->user()->getId());
747 require_once(
'Services/Tracking/classes/class.ilLPObjSettings.php');
749 $info->addSection($DIC->language()->txt(
"lti_info_learning_progress_section"));
751 $DIC->language()->txt(
"mastery_score"),
752 ($this->
object->getMasteryScorePercent()) .
' %' 757 $info->addSection($DIC->language()->txt(
"lti_info_privacy_section"));
760 $DIC->language()->txt(
"lti_con_prov_url"),
761 $this->
object->getProvider()->getProviderUrl()
765 $DIC->language()->txt(
"conf_privacy_name"),
770 $DIC->language()->txt(
"conf_privacy_ident"),
773 if ($this->object->getProvider()->isExternalProvider()) {
775 $DIC->language()->txt(
"lti_info_external_provider_label"),
776 $DIC->language()->txt(
'lti_info_external_provider_info')
780 if ($this->object->getProvider()->getUseXapi()) {
782 $DIC->language()->txt(
"lti_con_prov_xapi_launch_url"),
783 $this->
object->getProvider()->getXapiLaunchUrl()
788 $this->ctrl->forwardCommand($info);
794 if ($this->object->getProvider()->getProviderUrl() ==
'') {
static _recordReadEvent( $a_type, $a_ref_id, $obj_id, $usr_id, $isCatchupWriteEvents=true, $a_ext_rc=false, $a_ext_time=false)
Records a read event and catches up with write events.
initCustomCreateForm($a_new_type)
static isEmbeddedLaunchRequest()
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_node_id=null)
Check permission.
New implementation of ilObjectGUI.
GUI class for the workflow of copying objects.
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_force_raise=false)
Update status.
afterSave(ilObject $newObject)
__construct($a_id=0, $a_id_type=self::REPOSITORY_NODE_ID, $a_parent_node_id=0)
fillCloneTemplate($a_tpl_varname, $a_type)
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
const AVAILABILITY_CREATE
static _lookupTitle($a_id)
lookup object title
createObject()
create new object form
setTitle($a_title)
set object title
static updateKeywords(ilMDGeneral $a_md_section, array $a_keywords)
Update keywords from input array.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static _lookupDBMode($a_obj_id)
createNewObject($newType, $title, $description)
getId()
get object id public
static getPrivacyIdentString(int $ident)
const TAB_ID_LEARNING_PROGRESS
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
static getPrivacyNameString(int $ident)
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static hasCustomProviderCreationAccess()
static _lookupObjId($a_id)
static buildBasicAuth($lrsKey, $lrsSecret)
Validates if an active certificate is stored in the database and can be downloaded by the user...
handleAutoRating(ilObject $a_new_obj)
getTitle()
get object title public
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
getType()
get object type public
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
putObjectInTree(ilObject $a_obj, $a_parent_node_id=null)
Add object to tree at given position.
buildProviderSelectionForm($a_new_type)
const CMD_DELIVER_CERTIFICATE
__construct(Container $dic, ilPlugin $plugin)
const LP_CONTEXT_REPOSITORY
handleAvailablityMessage()
prepareOutput($a_show_subobjects=true)
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
initMetadata(ilObjLTIConsumer $object)
update()
update object in db
initCreateForm($a_new_type)
initHeaderAction($a_sub_type=null, $a_sub_id=null)
addHeaderAction()
Add header action menu.
Class ilObjUserTrackingGUI.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
initCreationForms($a_new_type)