3 declare(strict_types=1);
    49     private \ILIAS\DI\Container 
$dic;
    57         $this->main_tpl = $DIC->ui()->mainTemplate();
    63         $this->dic->tabs()->addSubTab(
    64             self::SUBTAB_ID_SETTINGS,
    65             $this->
language->txt(self::SUBTAB_ID_SETTINGS),
    66             $this->dic->ctrl()->getLinkTarget($this, self::CMD_SHOW)
    71         if ($validator->validate()) {
    72             $this->dic->tabs()->addSubTab(
    73                 self::SUBTAB_ID_CERTIFICATE,
    74                 $this->
language->txt(self::SUBTAB_ID_CERTIFICATE),
    75                 $this->dic->ctrl()->getLinkTargetByClass([ilCmiXapiSettingsGUI::class,ilCertificateGUI::class], 
'certificateEditor')
    84         switch ($this->dic->ctrl()->getNextClass()) {
    85             case strtolower(ilCertificateGUI::class):
    89                 if (!$validator->validate()) {
    93                 $this->dic->tabs()->activateSubTab(self::SUBTAB_ID_CERTIFICATE);
    96                 $gui = $guiFactory->create($this->
object);
    98                 $this->dic->ctrl()->forwardCommand($gui);
   103                 $command = $this->dic->ctrl()->getCmd(self::DEFAULT_CMD) . 
'Cmd';
   112         if ($form->checkInput()) {
   115             $this->main_tpl->setOnScreenMessage(
'success', $this->
language->txt(
'msg_obj_modified'), 
true);
   116             $this->dic->ctrl()->redirect($this, self::CMD_SHOW);
   124         if ($this->dic->access()->checkAccess(
"write", 
"", $this->
object->getRefId())) {
   125             $this->dic->tabs()->activateSubTab(self::SUBTAB_ID_SETTINGS);
   127             $this->dic->ui()->mainTemplate()->setContent($form->getHTML());
   129             $this->main_tpl->setOnScreenMessage(
'failure', $this->dic->language()->txt(
'permission_denied'), 
false);
   136         $form->setFormAction($this->dic->ctrl()->getFormAction($this));
   139         $ne->setValue($this->
language->txt(
'type_' . $this->object->getContentType()));
   143         $ne->setValue($this->
object->getLrsType()->getTitle());
   148         $item->setMaxLength(128);
   149         $item->setRequired(
true);
   150         $item->setInfo($this->
language->txt(
'title_info'));
   151         $item->setValue($this->
object->getTitle());
   152         $form->addItem($item);
   158         $item->setValue($this->
object->getDescription());
   159         $form->addItem($item);
   162         $item->setRequired(
true);
   164         $item->setMaxLength(128);
   166         $item->setInfo($this->
language->txt(
'activity_id_info'));
   167         $item->setValue($this->
object->getActivityId());
   168         $form->addItem($item);
   171         $item->setInfo($this->
language->txt(
"online_info"));
   172         $item->setValue(
"1");
   173         if (!$this->
object->getOfflineStatus()) {
   174             $item->setChecked(
true);
   176         $form->addItem($item);
   179         $lpDeterioration->setInfo($this->
language->txt(
'conf_keep_lp_info'));
   180         if ($this->
object->isKeepLpStatusEnabled()) {
   181             $lpDeterioration->setChecked(
true);
   188         $item->setTitle($this->
language->txt(
"obj_presentation"));
   189         $form->addItem($item);
   192         $this->dic->object()->commonSettings()->legacyForm($form, $this->
object)->addTileImage();
   194         if (!$this->
object->isSourceTypeExternal()) {
   196             $item->setTitle($this->
language->txt(
"launch_options"));
   197             $form->addItem($item);
   199             if ($this->
object->isSourceTypeRemote()) {
   202                 $item->setMaxLength(128);
   203                 $item->setRequired(
true);
   204                 $item->setInfo($this->
language->txt(
'launch_url_info'));
   205                 $item->setValue($this->
object->getLaunchUrl());
   206                 $form->addItem($item);
   211                 $item->setInfo($this->
language->txt(
"use_fetch_info"));
   212                 $item->setValue(
"1");
   214                 if ($this->
object->isAuthFetchUrlEnabled()) {
   215                     $item->setChecked(
true);
   217                 $form->addItem($item);
   222             $display->setValue($this->
object->getLaunchMethod());
   225             $display->addOption($optOwnWindow);
   228             $display->addOption($optAnyWindow);
   229             $form->addItem($display);
   233             $launchMode->setValue($this->
object->getLaunchMode());
   235             $optNormal->
setInfo($this->
language->txt(
'conf_launch_mode_normal_info'));
   237             $optNormal->addSubItem($lpDeterioration);
   239             $launchMode->addOption($optNormal);
   241             $optBrowse->
setInfo($this->
language->txt(
'conf_launch_mode_browse_info'));
   242             $launchMode->addOption($optBrowse);
   244             $optReview->
setInfo($this->
language->txt(
'conf_launch_mode_review_info'));
   245             $launchMode->addOption($optReview);
   246             $form->addItem($launchMode);
   248             $form->addItem($lpDeterioration);
   253             $switchMode->setInfo($this->
language->txt(
"conf_switch_to_review_info"));
   254             if ($this->
object->isSwitchToReviewEnabled()) {
   255                 $switchMode->setChecked(
true);
   258             $optNormal->addSubItem($switchMode);
   261             $masteryScore->setInfo($this->
language->txt(
'conf_mastery_score_info'));
   262             $masteryScore->setSuffix(
'%');
   263             $masteryScore->allowDecimals(
true);
   264             $masteryScore->setDecimals(2);
   265             $masteryScore->setMinvalueShouldBeGreater(
false);
   266             $masteryScore->setMinValue(0);
   267             $masteryScore->setMaxvalueShouldBeLess(
false);
   268             $masteryScore->setMaxValue(100);
   269             $masteryScore->setSize(4);
   270             if (empty($this->
object->getMasteryScore())) {
   273             $masteryScore->setValue((
string) $this->
object->getMasteryScorePercent());
   274             $optNormal->addSubItem($masteryScore);
   277         if (!$this->
object->isSourceTypeExternal()) {
   280             $sectionHeader->setTitle($this->
language->txt(
'privacy_options'));
   281             $form->addItem($sectionHeader);
   284             $useProxy->setInfo($this->
language->txt(
'conf_use_proxy_info_xapi'));
   285             if($this->
object->isBypassProxyEnabled() == 
false) {
   286                 $useProxy->setChecked(
true);
   292                 $useProxy->setChecked(
true);
   293                 $useProxy->setDisabled(
true);
   294                 $useProxy->setInfo($this->
language->txt(
'conf_use_proxy_info_cmi5'));
   310             $item->setInfo($this->
language->txt(
'only_moveon_info'));
   311             $item->setChecked($this->
object->getOnlyMoveon());
   314             $subitem->setInfo($this->
language->txt(
'achieved_info'));
   315             $subitem->setChecked($this->
object->getAchieved());
   316             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   317                 $subitem->setDisabled(
true);
   319             $item->addSubItem($subitem);
   322             $subitem->setInfo($this->
language->txt(
'answered_info'));
   323             $subitem->setChecked($this->
object->getAnswered());
   324             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   325                 $subitem->setDisabled(
true);
   327             $item->addSubItem($subitem);
   330             $subitem->setInfo($this->
language->txt(
'completed_info'));
   331             $subitem->setChecked($this->
object->getCompleted());
   332             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   333                 $subitem->setDisabled(
true);
   335             $item->addSubItem($subitem);
   338             $subitem->setInfo($this->
language->txt(
'failed_info'));
   339             $subitem->setChecked($this->
object->getFailed());
   340             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   341                 $subitem->setDisabled(
true);
   343             $item->addSubItem($subitem);
   346             $subitem->setInfo($this->
language->txt(
'initialized_info'));
   347             $subitem->setChecked($this->
object->getInitialized());
   348             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   349                 $subitem->setDisabled(
true);
   351             $item->addSubItem($subitem);
   354             $subitem->setInfo($this->
language->txt(
'passed_info'));
   355             $subitem->setChecked($this->
object->getPassed());
   356             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   357                 $subitem->setDisabled(
true);
   359             $item->addSubItem($subitem);
   362             $subitem->setInfo($this->
language->txt(
'progressed_info'));
   363             $subitem->setChecked($this->
object->getProgressed());
   364             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   365                 $subitem->setDisabled(
true);
   367             $item->addSubItem($subitem);
   370                 $subitem->setInfo($this->
language->txt(
'satisfied_info'));
   371                 $subitem->setChecked($this->
object->getSatisfied());
   372                 if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   373                     $subitem->setDisabled(
true);
   375                 $item->addSubItem($subitem);
   378                 $subitem->setInfo($this->
language->txt(
'terminated_info'));
   379                 $subitem->setChecked($this->
object->getTerminated());
   380                 if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   381                     $subitem->setDisabled(
true);
   383                 $item->addSubItem($subitem);
   385             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   386                 $item->setDisabled(
true);
   388             $useProxy->addSubItem($item);
   391             $item->setInfo($this->
language->txt(
'hide_data_info'));
   392             $item->setChecked($this->
object->getHideData());
   395             $subitem->setInfo($this->
language->txt(
'timestamp_info'));
   396             $subitem->setChecked($this->
object->getTimestamp());
   397             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   398                 $subitem->setDisabled(
true);
   400             $item->addSubItem($subitem);
   403             $subitem->setInfo($this->
language->txt(
'duration_info'));
   404             $subitem->setChecked($this->
object->getDuration());
   405             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   406                 $subitem->setDisabled(
true);
   408             $item->addSubItem($subitem);
   410             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   411                 $item->setDisabled(
true);
   414             $useProxy->addSubItem($item);
   417             $item->setInfo($this->
language->txt(
'no_substatements_info'));
   418             $item->setChecked($this->
object->getNoSubstatements());
   419             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   420                 $item->setDisabled(
true);
   422             $useProxy->addSubItem($item);
   424             $form->addItem($useProxy);
   429                 $this->
language->txt(
'conf_privacy_ident_il_uuid_user_id'),
   432             $op->
setInfo($this->
language->txt(
'conf_privacy_ident_il_uuid_user_id_info'));
   433             $userIdent->addOption($op);
   435                 $this->
language->txt(
'conf_privacy_ident_il_uuid_login'),
   438             $op->
setInfo($this->
language->txt(
'conf_privacy_ident_il_uuid_login_info'));
   439             $userIdent->addOption($op);
   441                 $this->
language->txt(
'conf_privacy_ident_il_uuid_ext_account'),
   444             $op->
setInfo($this->
language->txt(
'conf_privacy_ident_il_uuid_ext_account_info'));
   445             $userIdent->addOption($op);
   447                 $this->
language->txt(
'conf_privacy_ident_il_uuid_sha256'),
   450             $op->
setInfo($this->
language->txt(
'conf_privacy_ident_il_uuid_sha256_info'));
   451             $userIdent->addOption($op);
   453                 $this->
language->txt(
'conf_privacy_ident_il_uuid_sha256url'),
   456             $op->
setInfo($this->
language->txt(
'conf_privacy_ident_il_uuid_sha256url_info'));
   457             $userIdent->addOption($op);
   459                 $this->
language->txt(
'conf_privacy_ident_il_uuid_random'),
   462             $op->
setInfo($this->
language->txt(
'conf_privacy_ident_il_uuid_random_info'));
   463             $userIdent->addOption($op);
   465                 $this->
language->txt(
'conf_privacy_ident_real_email'),
   468             $op->
setInfo($this->
language->txt(
'conf_privacy_ident_real_email_info'));
   469             $userIdent->addOption($op);
   470             $userIdent->setValue((
string) $this->
object->getPrivacyIdent());
   474             $userIdent->setRequired(
false);
   475             $form->addItem($userIdent);
   479                 $this->
language->txt(
'conf_privacy_name_none'),
   483             $userName->addOption($op);
   485                 $this->
language->txt(
'conf_privacy_name_firstname'),
   488             $userName->addOption($op);
   490                 $this->
language->txt(
'conf_privacy_name_lastname'),
   493             $userName->addOption($op);
   495                 $this->
language->txt(
'conf_privacy_name_fullname'),
   498             $userName->addOption($op);
   499             $userName->setValue((
string) $this->
object->getPrivacyName());
   500             $userName->setInfo($this->
language->txt(
'conf_privacy_name_info'));
   501             $userName->setRequired(
false);
   502             $form->addItem($userName);
   504             if ($this->
object->getLrsType()->getForcePrivacySettings()) {
   505                 $userIdent->setDisabled(
true);
   506                 $userName->setDisabled(
true);
   512         $options = [
"0",
"1",
"2",
"11",
"12"];
   513         for ((
int) $i = 0; $i < count($options); $i++) {
   515             $item->addOption($op);
   518         $item->setInfo($this->
language->txt(
'conf_delete_data_info'));
   519         $form->addItem($item);
   524         $item->setTitle($this->
language->txt(
"log_options"));
   525         $form->addItem($item);
   528         $item->setInfo($this->
language->txt(
"show_debug_info"));
   529         $item->setValue(
"1");
   530         if ($this->
object->isStatementsReportEnabled()) {
   531             $item->setChecked(
true);
   533         $form->addItem($item);
   536         $highscore->setValue(
"1");
   537         $highscore->setChecked($this->
object->getHighscoreEnabled());
   538         $highscore->setInfo($this->
language->txt(
"highscore_description"));
   539         $form->addItem($highscore);
   542         $highscore_tables->setValue((
string) $this->
object->getHighscoreMode());
   544             $this->
language->txt(
'highscore_own_table'),
   547         $highscore_table_own->setInfo($this->
language->txt(
'highscore_own_table_description'));
   548         $highscore_tables->addOption($highscore_table_own);
   550             $this->
language->txt(
'highscore_top_table'),
   553         $highscore_table_other->setInfo($this->
language->txt(
'highscore_top_table_description'));
   554         $highscore_tables->addOption($highscore_table_other);
   556             $this->
language->txt(
'highscore_all_tables'),
   559         $highscore_table_other->setInfo($this->
language->txt(
'highscore_all_tables_description'));
   560         $highscore_tables->addOption($highscore_table_other);
   561         $highscore->addSubItem($highscore_tables);
   563         $highscore_top_num->setSize(4);
   564         $highscore_top_num->setRequired(
true);
   565         $highscore_top_num->setMinValue(1);
   566         $highscore_top_num->setSuffix($this->
language->txt(
"highscore_top_num_unit"));
   567         $highscore_top_num->setValue((
string) $this->
object->getHighscoreTopNum(null));
   568         $highscore_top_num->setInfo($this->
language->txt(
"highscore_top_num_description"));
   569         $highscore->addSubItem($highscore_top_num);
   571         $highscore_achieved_ts->setValue(
"1");
   572         $highscore_achieved_ts->setChecked($this->
object->getHighscoreAchievedTS());
   573         $highscore_achieved_ts->setInfo($this->
language->txt(
"highscore_achieved_ts_description"));
   574         $highscore->addSubItem($highscore_achieved_ts);
   576         $highscore_percentage->setValue(
"1");
   577         $highscore_percentage->setChecked($this->
object->getHighscorePercentage());
   578         $highscore_percentage->setInfo($this->
language->txt(
"highscore_percentage_description"));
   579         $highscore->addSubItem($highscore_percentage);
   581         $highscore_wtime->setValue(
"1");
   582         $highscore_wtime->setChecked($this->
object->getHighscoreWTime());
   583         $highscore_wtime->setInfo($this->
language->txt(
"highscore_wtime_description"));
   584         $highscore->addSubItem($highscore_wtime);
   587         $form->setTitle($this->
language->txt(
'settings'));
   588         $form->addCommandButton(self::CMD_SAVE, $this->
language->txt(
"save"));
   589         $form->addCommandButton(self::CMD_SHOW, $this->
language->txt(
"cancel"));
   596         $this->
object->setTitle($form->
getInput(
'title'));
   597         $this->
object->setDescription($form->
getInput(
'description'));
   599         $this->
object->setActivityId($form->
getInput(
'activity_id'));
   600         $this->
object->setOfflineStatus(!(
bool) $form->
getInput(
'online'));
   602         if (!$this->
object->isSourceTypeExternal()) {
   603             $this->
object->setLaunchMethod($form->
getInput(
'display'));
   605             $this->
object->setLaunchMode($form->
getInput(
'launch_mode'));
   609                     $this->
object->setMasteryScorePercent($form->
getInput(
'mastery_score'));
   611                 $this->
object->setKeepLpStatusEnabled((
bool) $form->
getInput(
'avoid_lp_deterioration'));
   612                 $this->
object->setSwitchToReviewEnabled((
bool) $form->
getInput(
'switch_to_review'));
   614                 $this->
object->setKeepLpStatusEnabled(
true);
   615                 $this->
object->setSwitchToReviewEnabled(
false);
   618             if ($this->
object->isSourceTypeRemote()) {
   619                 $this->
object->setLaunchUrl($form->
getInput(
'launch_url'));
   623                 $this->
object->setAuthFetchUrlEnabled(
true);
   625                 $this->
object->setAuthFetchUrlEnabled((
bool) $form->
getInput(
'use_fetch'));
   630                 $this->
object->setBypassProxyEnabled(
false);
   633                 if ((
bool) $form->
getInput(
"use_proxy") == 
false) {
   634                     $this->
object->setBypassProxyEnabled(
true);
   636                     $this->
object->setBypassProxyEnabled(
false);
   641             if (!$this->
object->getLrsType()->getForcePrivacySettings()) {
   642                 $this->
object->setPrivacyIdent((
int) $form->
getInput(
'privacy_ident'));
   643                 $this->
object->setPrivacyName((
int) $form->
getInput(
'privacy_name'));
   644                 $this->
object->setOnlyMoveon((
bool) $form->
getInput(
"only_moveon"));
   645                 $this->
object->setAchieved((
bool) $form->
getInput(
"achieved"));
   646                 $this->
object->setAnswered((
bool) $form->
getInput(
"answered"));
   647                 $this->
object->setCompleted((
bool) $form->
getInput(
"completed"));
   648                 $this->
object->setFailed((
bool) $form->
getInput(
"failed"));
   649                 $this->
object->setInitialized((
bool) $form->
getInput(
"initialized"));
   650                 $this->
object->setPassed((
bool) $form->
getInput(
"passed"));
   651                 $this->
object->setProgressed((
bool) $form->
getInput(
"progressed"));
   653                     $this->
object->setSatisfied(
true);
   654                     $this->
object->setTerminated(
true);
   656                     $this->
object->setSatisfied((
bool) $form->
getInput(
"satisfied"));
   657                     $this->
object->setTerminated((
bool) $form->
getInput(
"terminated"));
   659                 $this->
object->setHideData((
bool) $form->
getInput(
"hide_data"));
   660                 $this->
object->setTimestamp((
bool) $form->
getInput(
"timestamp"));
   661                 $this->
object->setDuration((
bool) $form->
getInput(
"duration"));
   662                 $this->
object->setNoSubstatements((
bool) $form->
getInput(
"no_substatements"));
   663                 $this->
object->setDeleteData((
int) $form->
getInput(
"delete_data"));
   666             $this->
object->setBypassProxyEnabled(
true);
   667             $this->
object->setKeepLpStatusEnabled((
bool) $form->
getInput(
'avoid_lp_deterioration'));
   670         $this->
object->setStatementsReportEnabled((
bool) $form->
getInput(
'show_debug'));
   672         $this->
object->setHighscoreEnabled((
bool) $form->
getInput(
'highscore_enabled'));
   673         if ($this->
object->getHighscoreEnabled()) {
   675             $this->
object->setHighscoreEnabled((
bool) $form->
getInput(
'highscore_enabled'));
   676             $this->
object->setHighscoreAchievedTS((
bool) $form->
getInput(
'highscore_achieved_ts'));
   677             $this->
object->setHighscorePercentage((
bool) $form->
getInput(
'highscore_percentage'));
   678             $this->
object->setHighscoreWTime((
bool) $form->
getInput(
'highscore_wtime'));
   679             $this->
object->setHighscoreMode((
int) $form->
getInput(
'highscore_mode'));
   680             $this->
object->setHighscoreTopNum((
int) $form->
getInput(
'highscore_top_num'));
   684         $this->dic->object()->commonSettings()->legacyForm($form, $this->
object)->saveTileImage();
   686         $this->
object->update();
   693         if (!$validator->isCertificateDownloadable((
int) $this->dic->user()->getId(), $this->
object->getId())) {
   694             $this->main_tpl->setOnScreenMessage(
'failure', $this->
language->txt(
"permission_denied"), 
true);
   700         $certLogger = $this->dic->logger()->root();
   706             $this->
language->txt(
'error_creating_certificate_pdf')
   709         $pdfAction->
downloadPdf((
int) $this->dic->user()->getId(), $this->
object->getId());
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
const PRIVACY_IDENT_REAL_EMAIL
 
const HIGHSCORE_SHOW_OWN_TABLE
 
__construct(ilObjCmiXapi $object)
 
const LAUNCH_METHOD_NEW_WIN
 
const PRIVACY_NAME_FULLNAME
 
const PRIVACY_NAME_LASTNAME
 
const CMD_DELIVER_CERTIFICATE
 
const PRIVACY_IDENT_IL_UUID_USER_ID
 
setValue(string $a_value)
 
const LAUNCH_METHOD_OWN_WIN
 
Validates if an active certificate is stored in the database and can be downloaded by the user...
 
const PRIVACY_IDENT_IL_UUID_SHA256URL
 
const SUBTAB_ID_CERTIFICATE
 
saveSettings(ilPropertyFormGUI $form)
 
const HIGHSCORE_SHOW_ALL_TABLES
 
Just a wrapper class to create Unit Test for other classes. 
 
This class represents a text area property in a property form. 
 
const PRIVACY_IDENT_IL_UUID_EXT_ACCOUNT
 
const PRIVACY_IDENT_IL_UUID_SHA256
 
showCmd(ilPropertyFormGUI $form=null)
 
const PRIVACY_IDENT_IL_UUID_RANDOM
 
ilGlobalTemplateInterface $main_tpl
 
const PRIVACY_NAME_FIRSTNAME
 
const HIGHSCORE_SHOW_TOP_TABLE
 
const PRIVACY_IDENT_IL_UUID_LOGIN
 
downloadPdf(int $userId, int $objectId)