19 declare(strict_types=0);
62 public function __construct($a_data,
int $a_id,
bool $a_call_by_reference =
true,
bool $a_prepare_output =
true)
69 $this->
help = $DIC->help();
70 $this->
logger = $DIC->logger()->crs();
71 $this->navigation_history = $DIC[
'ilNavigationHistory'];
72 $this->
ctrl->saveParameter($this, [
'ref_id']);
73 $this->
lng->loadLanguageModule(
'crs');
74 $this->
lng->loadLanguageModule(
'cert');
75 $this->
lng->loadLanguageModule(
'obj');
77 $this->
http = $DIC->http();
79 $this->news = $DIC->news();
94 $part->updateNotification(
96 (bool) $this->
settings->get(
'mail_crs_admin_notification',
'1')
98 parent::afterImport($new_object);
108 if (strtolower($this->std_request->getBaseClass()) ===
"iladministrationgui") {
109 parent::viewObject();
113 $this->tabs_gui->setTabActive(
'view_content');
116 if (strtolower($this->std_request->getBaseClass()) ===
"iladministrationgui") {
117 parent::viewObject();
122 if ($this->
ctrl->getNextClass() !=
"ilcolumngui") {
124 $this->
user->getId(),
125 $this->
object->getId(),
126 $this->
object->getRefId(),
132 $this->
ctrl->redirectByClass(ilMemberAgreementGUI::class);
139 $stgui->enableDesktop($this->
object->getAboStatus(), $this);
151 parent::renderObject();
161 $this->tabs_gui->activateTab(
'view_content');
162 parent::deleteObject(
$error);
167 parent::renderObject();
178 $this->
ctrl->redirectByClass([
180 ilInfoScreenGUI::class
190 $this->tabs_gui->setTabActive(
'info_short');
194 $info->enablePrivateNotes();
195 $info->enableFeedback();
197 $info->enableBookingInfo(
true);
198 if ($this->
access->checkAccess(
"write",
"", $this->ref_id)) {
199 $info->enableNewsEditing();
203 strlen($this->
object->getImportantInformation()) ||
204 strlen($this->
object->getSyllabus()) ||
205 strlen((
string) $this->
object->getTargetGroup()) ||
207 $info->addSection($this->
lng->txt(
'crs_general_informations'));
210 if (strlen($this->
object->getImportantInformation())) {
212 $this->
lng->txt(
'crs_important_info'),
218 if (strlen($this->
object->getSyllabus())) {
219 $info->addProperty($this->
lng->txt(
'crs_syllabus'), nl2br(
223 if (strlen((
string) $this->
object->getTargetGroup())) {
225 $this->
lng->txt(
'crs_target_group'),
233 $tpl =
new ilTemplate(
'tpl.event_info_file.html',
true,
true,
'components/ILIAS/Course');
235 foreach ($files as $file) {
237 $this->
ctrl->setParameter($this,
'file_id', $file->getFileId());
246 $this->
lng->txt(
'crs_file_download'),
253 $record_gui->
parse();
256 $info->addMetaDataSections($this->
object->getId(), 0, $this->
object->getType());
259 if ($this->
object->hasContactData()) {
260 $info->addSection($this->
lng->txt(
"crs_contact"));
262 if (strlen($this->
object->getContactName())) {
264 $this->
lng->txt(
"crs_contact_name"),
265 $this->
object->getContactName()
268 if (strlen($this->
object->getContactResponsibility())) {
270 $this->
lng->txt(
"crs_contact_responsibility"),
271 $this->
object->getContactResponsibility()
274 if (strlen($this->
object->getContactPhone())) {
276 $this->
lng->txt(
"crs_contact_phone"),
277 $this->
object->getContactPhone()
280 if ($this->
object->getContactEmail()) {
282 $has_mail_access = $this->rbacsystem->checkAccessOfUser(
283 $this->
user->getId(),
287 $emails = explode(
",", $this->
object->getContactEmail());
289 foreach ($emails as $email) {
290 $email = trim($email);
291 if (!$has_mail_access) {
292 $mailString .= $email .
"<br />";
295 $etpl =
new ilTemplate(
"tpl.crs_contact_email.html",
true,
true,
'components/ILIAS/Course');
309 'ref_id' => $this->
object->getRefId(),
314 $etpl->setVariable(
"CONTACT_EMAIL", $email);
315 $mailString .= $etpl->get() .
"<br />";
317 $info->addProperty($this->
lng->txt(
"crs_contact_email"), $mailString);
319 if (strlen($this->
object->getContactConsultation())) {
321 $this->
lng->txt(
"crs_contact_consultation"),
322 nl2br($this->
object->getContactConsultation())
327 $conts =
$parts->getContacts();
329 $info->addSection($this->
lng->txt(
"crs_mem_contacts"));
330 foreach ($conts as
$c) {
332 $pgui->setBackUrl($this->
ctrl->getLinkTargetByClass(
"ilinfoscreengui"));
333 $pgui->setEmbedded(
true);
334 $info->addProperty(
"", $pgui->getHTML());
339 $info->enableAvailability(
false);
340 $this->
lng->loadLanguageModule(
"rep");
341 $info->addSection($this->
lng->txt(
"rep_activation_availability"));
342 $info->showLDAPRoleGroupMappingInfo();
345 $info->addAccessPeriodProperty();
348 switch ($this->
object->getSubscriptionLimitationType()) {
350 $txt = $this->
lng->txt(
"crs_info_reg_deactivated");
354 switch ($this->
object->getSubscriptionType()) {
356 $txt = $this->
lng->txt(
"crs_info_reg_confirmation");
359 $txt = $this->
lng->txt(
"crs_info_reg_direct");
362 $txt = $this->
lng->txt(
"crs_info_reg_password");
368 $info->addProperty($this->
lng->txt(
"crs_info_reg"),
$txt);
370 if ($this->
object->getSubscriptionUnlimitedStatus()) {
372 $this->
lng->txt(
"crs_reg_until"),
373 $this->
lng->txt(
'crs_unlimited')
375 } elseif ($this->
object->getSubscriptionStart() < time()) {
377 $this->
lng->txt(
"crs_reg_until"),
378 $this->
lng->txt(
'crs_to') .
' ' .
381 } elseif ($this->
object->getSubscriptionStart() > time()) {
383 $this->
lng->txt(
"crs_reg_until"),
384 $this->
lng->txt(
'crs_from') .
' ' .
388 if ($this->
object->isSubscriptionMembershipLimited()) {
389 if ($this->
object->getSubscriptionMinMembers()) {
391 $this->
lng->txt(
"mem_min_users"),
392 $this->
object->getSubscriptionMinMembers()
395 if ($this->
object->getSubscriptionMaxMembers()) {
398 $this->
lng->txt(
'mem_free_places'),
399 (string) ($reg_info[
'reg_info_free_places'] ??
'0')
405 if ($this->
object->getCancellationEnd()) {
407 $this->
lng->txt(
'crs_cancellation_end'),
414 !$this->
object->getCourseStart()->isNull()
417 $this->
lng->txt(
'crs_period'),
419 $this->
object->getCourseStart(),
420 $this->
object->getCourseEnd()
431 $this->
lng->loadLanguageModule(
'ps');
432 $info->addSection($this->
lng->txt(
'crs_user_agreement_info'));
433 $info->addProperty($this->
lng->txt(
'ps_export_data'), $field_info->exportableFieldsToInfoString());
436 $info->addProperty($this->
lng->txt(
'ps_crs_user_fields'), $fields);
439 $info->enableLearningProgress(
true);
442 $this->
ctrl->forwardCommand($info);
448 if ($noti->canCurrentUserEdit()) {
450 if ($this->
http->wrapper()->query()->has(
'crs_ntf')) {
451 $crs_ntf = $this->
http->wrapper()->query()->retrieve(
457 $noti->activateUser();
459 $noti->deactivateUser();
462 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
463 $this->
ctrl->redirect($this,
"");
470 $this->tabs_gui->setTabActive(
'settings');
471 $this->tabs_gui->setSubTabActive(
'crs_info_settings');
476 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.edit_info.html',
'components/ILIAS/Course');
477 $this->tpl->setVariable(
'INFO_TABLE', $a_form->getHTML());
483 foreach ($files as $file) {
484 $table_data[
'id'] = $file->getFileId();
485 $table_data[
'filename'] = $file->getFileName();
486 $table_data[
'filetype'] = $file->getFileType();
487 $table_data[
'filesize'] = $file->getFileSize();
489 $rows[] = $table_data;
492 $table_gui->setTitle($this->
lng->txt(
"crs_info_download"));
493 $table_gui->setData($rows);
494 $table_gui->addCommandButton(
"cancel", $this->
lng->txt(
"cancel"));
495 $table_gui->addMultiCommand(
"confirmDeleteInfoFiles", $this->
lng->txt(
"delete"));
496 $table_gui->setSelectAllCheckbox(
"file_id");
497 $this->tpl->setVariable(
'INFO_FILE_TABLE', $table_gui->getHTML());
503 if ($this->
http->wrapper()->post()->has(
'file_id')) {
504 $file_ids = $this->
http->wrapper()->post()->retrieve(
506 $this->
refinery->kindlyTo()->listOf(
511 if (count($file_ids) === 0) {
512 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
518 $this->tabs_gui->setTabActive(
'settings');
519 $this->tabs_gui->setSubTabActive(
'crs_info_settings');
524 $c_gui->setFormAction($this->
ctrl->getFormAction($this,
"deleteInfoFiles"));
525 $c_gui->setHeaderText($this->
lng->txt(
"info_delete_sure"));
526 $c_gui->setCancel($this->
lng->txt(
"cancel"),
"editInfo");
527 $c_gui->setConfirm($this->
lng->txt(
"confirm"),
"deleteInfoFiles");
530 foreach ($file_ids as $file_id) {
532 $c_gui->addItem(
"file_id[]", $file_id, $file->getFileName());
534 $this->tpl->setContent($c_gui->getHTML());
540 if ($this->
http->wrapper()->post()->has(
'file_id')) {
541 $file_ids = $this->
http->wrapper()->post()->retrieve(
543 $this->
refinery->kindlyTo()->listOf(
549 if (count($file_ids) === 0) {
550 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
555 foreach ($file_ids as $file_id) {
557 if ($this->
object->getId() == $file->getCourseId()) {
561 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'));
586 $tg = new \ilTextAreaInputGUI($this->
lng->txt(
'crs_target_group'),
'target_group');
587 $tg->setValue($this->
object->getTargetGroup() ??
"");
592 $section->setTitle($this->
lng->txt(
'crs_info_download'));
600 $section->setTitle($this->
lng->txt(
'crs_contact'));
606 $text->setMaxLength(70);
610 $text->setValue($this->
object->getContactResponsibility());
612 $text->setMaxLength(70);
618 $text->setMaxLength(40);
623 $text->setInfo($this->
lng->txt(
'crs_contact_email_info'));
625 $text->setMaxLength(255);
640 $this->record_gui->parse();
653 $this->
object->setImportantInformation((
string)
$form->
getInput(
'important'));
654 $this->
object->setSyllabus((
string)
$form->
getInput(
'syllabus'));
655 $this->
object->setTargetGroup((
string)
$form->
getInput(
'target_group'));
656 $this->
object->setContactName((
string)
$form->
getInput(
'contact_name'));
657 $this->
object->setContactResponsibility((
string)
$form->
getInput(
'contact_responsibility'));
658 $this->
object->setContactPhone((
string)
$form->
getInput(
'contact_phone'));
659 $this->
object->setContactEmail((
string)
$form->
getInput(
'contact_email'));
660 $this->
object->setContactConsultation((
string)
$form->
getInput(
'contact_consultation'));
667 $file_obj->setCourseId($this->
object->getId());
668 $file_obj->setFileName((
string) $file_name);
669 $file_obj->setFileSize((
int) $file_info[
'size']);
670 $file_obj->setFileType((
string) $file_info[
'type']);
671 $file_obj->setTemporaryName((
string) $file_info[
'tmp_name']);
672 $file_obj->setErrorCode((
int) $file_info[
'error']);
676 $file_obj->validate();
677 $this->
object->validateInfoSettings();
678 if (strlen($this->error->getMessage())) {
681 if (!$this->record_gui->importEditFormPostValues()) {
686 $this->tpl->setOnScreenMessage(
'failure', $this->error->getMessage());
692 $this->
object->update();
694 $this->record_gui->writeEditForm();
698 $ecs->handleContentUpdate();
700 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"crs_settings_saved"));
703 $this->tpl->setOnScreenMessage(
705 $this->
lng->txt(
'settings_saved')
719 $this->tpl->setOnScreenMessage(
'failure',
$GLOBALS[
'DIC']->
language()->txt(
'err_check_input'));
731 $min->setAlert($this->
lng->txt(
'crs_subscription_min_members_err'));
732 $this->tpl->setOnScreenMessage(
'failure',
$GLOBALS[
'DIC']->
language()->txt(
'err_check_input'));
741 $this->tpl->setOnScreenMessage(
743 $GLOBALS[
'DIC']->
language()->txt(
'crs_tile_and_objective_view_not_supported')
752 $this->tpl->setOnScreenMessage(
754 $GLOBALS[
'DIC']->
language()->txt(
'crs_tile_and_session_limit_not_supported')
768 $this->
object->setCoursePeriod(
769 $crs_period->getStart(),
770 $crs_period->getEnd()
775 if ($period->getStart() && $period->getEnd()) {
776 $this->
object->setActivationStart($period->getStart()->get(
IL_CAL_UNIX));
777 $this->
object->setActivationEnd($period->getEnd()->get(
IL_CAL_UNIX));
778 $this->
object->setActivationVisibility((
int)
$form->
getInput(
'activation_visibility'));
780 $this->
object->setActivationStart(0);
781 $this->
object->setActivationEnd(0);
785 $this->
object->setSubscriptionPassword(
$form->
getInput(
'subscription_password'));
786 $this->
object->setSubscriptionStart(0);
787 $this->
object->setSubscriptionEnd(0);
793 $this->
object->setSubscriptionType(
798 if ($sub_reg_type !== ilCourseConstants::IL_CRS_SUBSCRIPTION_DEACTIVATED) {
799 if ($sub_period->getStart() && $sub_period->getEnd()) {
801 $this->
object->setSubscriptionStart($sub_period->getStart()->get(
IL_CAL_UNIX));
802 $this->
object->setSubscriptionEnd($sub_period->getEnd()->get(
IL_CAL_UNIX));
808 $this->
object->setSubscriptionLimitationType(ilCourseConstants::IL_CRS_SUBSCRIPTION_DEACTIVATED);
812 $this->
object->enableRegistrationAccessCode((
bool)
$form->
getInput(
'reg_code_enabled'));
813 $this->
object->setRegistrationAccessCode(
$form->
getInput(
'reg_code'));
819 $this->
object->enableSubscriptionMembershipLimitation((
bool)
$form->
getInput(
'subscription_membership_limitation'));
820 $this->
object->setSubscriptionMaxMembers((
int)
$form->
getInput(
'subscription_max'));
821 $this->
object->setSubscriptionMinMembers((
int)
$form->
getInput(
'subscription_min'));
824 $this->
object->enableWaitingList(
true);
825 $this->
object->setWaitingListAutoFill(
true);
829 $this->
object->enableWaitingList(
true);
830 $this->
object->setWaitingListAutoFill(
false);
834 $this->
object->enableWaitingList(
false);
835 $this->
object->setWaitingListAutoFill(
false);
838 $this->
object->handleAutoFill();
840 $property_online = $this->
object->getObjectProperties()->getPropertyIsOnline();
841 $online =
$form->
getInput(
'activation_online') ? $property_online->withOnline() : $property_online->withOffline();
842 $this->
object->getObjectProperties()->storePropertyIsOnline($online);
844 $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->saveTitleIconVisibility();
845 $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->saveTopActionsVisibility();
847 $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->saveIcon();
848 $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->saveTileImage();
851 $this->
object->setViewMode((
int)
$form->
getInput(
'view_mode'));
854 $this->
object->setTimingMode((
int)
$form->
getInput(
'timing_mode'));
856 $this->
object->setTimingMode((
int)
$form->
getInput(
'timing_mode'));
857 $this->
object->setOrderType((
int)
$form->
getInput(
'sorting'));
861 "\n\n\nValue: " . (
int)
$form->
getInput(
'tutorial_support_block_checkbox') .
"\n\n\n" 863 $this->
object->setTutorialSupportBlockSettingValue(
868 $this->
object->setShowMembers((
bool)
$form->
getInput(
'show_members'));
871 $this->
object->setShowMembersExport((
bool)
$form->
getInput(
'show_members_export'));
873 $this->
object->setMailToMembersType((
int)
$form->
getInput(
'mail_type'));
875 $this->
object->enableSessionLimit((
int)
$form->
getInput(
'sl'));
878 $this->
object->setNumberOfPreviousSessions(is_numeric($session_sp) ? (
int) $session_sp : -1);
880 $this->
object->setNumberOfnextSessions(is_numeric($session_sn) ? (
int) $session_sn : -1);
881 $this->
object->setAutoNotification(
$form->
getInput(
'auto_notification') == 1 ? true :
false);
884 $show_lp_sync_confirmation =
false;
887 if ($this->
http->wrapper()->post()->has(
'status_dt')) {
888 $status_dt = $this->
http->wrapper()->post()->retrieve(
896 $show_lp_sync_confirmation =
true;
898 $this->
object->setStatusDetermination($status_dt);
902 $this->
object->update();
914 if ($show_lp_sync_confirmation) {
921 if (!$ecs->handleSettingsUpdate(
$form)) {
923 $this->tpl->setOnScreenMessage(
'failure',
$GLOBALS[
'DIC']->
language()->txt(
'err_check_input'));
930 $sub_type === ilCourseConstants::IL_CRS_SUBSCRIPTION_DEACTIVATED &&
932 !is_null($sub_period->getStart()) ||
933 !is_null($sub_period->getEnd())
936 $this->tpl->setOnScreenMessage(
938 $this->
lng->txt(
'crs_msg_no_self_registration_period_if_self_enrolment_disabled'),
942 $this->tpl->setOnScreenMessage(
'failure',
$GLOBALS[
'DIC']->
language()->txt(
'err_check_input'));
963 if ($this->news->isGloballyActivated()) {
973 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"setLPSync"));
974 $cgui->setHeaderText($this->
lng->txt(
"crs_status_determination_sync"));
975 $cgui->setCancel($this->
lng->txt(
"cancel"),
"edit");
976 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"setLPSync");
977 $this->tpl->setContent($cgui->getHTML());
983 $this->
object->update();
984 $this->
object->syncMembersStatusWithLP();
985 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
986 $this->
ctrl->redirect($this,
"edit");
992 $this->tabs_gui->setSubTabActive(
'general');
997 parent::editObject();
1024 $this->initFormTitleDescription(
$form);
1031 $this->
lng->loadLanguageModule(
'mem');
1032 $cdur->enableToggleFullTime(
1033 $this->
lng->txt(
'mem_period_without_time'),
1034 !$this->
object->getCourseStartTimeIndication()
1036 $cdur->setShowTime(
true);
1037 $cdur->setInfo($this->
lng->txt(
'crs_period_info'));
1038 $cdur->setStart($this->
object->getCourseStart());
1039 $cdur->setEnd($this->
object->getCourseEnd());
1044 $this->
lng->loadLanguageModule(
'rep');
1047 $section->setTitle($this->
lng->txt(
'rep_activation_availability'));
1051 $online->setChecked(!$this->
object->getOfflineStatus());
1052 $online->setInfo($this->
lng->txt(
'crs_activation_online_info'));
1056 $dur->setShowTime(
true);
1062 $this->
lng->txt(
'rep_activation_limited_visibility'),
1063 'activation_visibility' 1065 $visible->setInfo($this->
lng->txt(
'crs_activation_limited_visibility_info'));
1066 $visible->setChecked((
bool) $this->
object->getActivationVisibility());
1067 $dur->addSubItem($visible);
1070 $section->setTitle($this->
lng->txt(
'crs_reg'));
1075 $sdur->setShowTime(
true);
1076 if ($this->
object->getSubscriptionStart()) {
1079 if ($this->
object->getSubscriptionEnd()) {
1084 $reg_proc->setValue(
1086 ? (
string) $this->
object->getSubscriptionType()
1091 $this->
lng->txt(
'crs_subscription_options_direct'),
1094 $reg_proc->addOption($opt);
1097 $this->
lng->txt(
'crs_subscription_options_password'),
1101 $pass =
new ilTextInputGUI($this->
lng->txt(
"password"),
'subscription_password');
1102 $pass->setRequired(
true);
1103 $pass->setInfo($this->
lng->txt(
'crs_reg_password_info'));
1104 $pass->setSubmitFormOnEnter(
true);
1106 $pass->setMaxLength(32);
1107 $pass->setValue($this->
object->getSubscriptionPassword());
1109 $opt->addSubItem($pass);
1110 $reg_proc->addOption($opt);
1113 $this->
lng->txt(
'crs_subscription_options_confirmation'),
1116 $opt->setInfo($this->
lng->txt(
'crs_registration_confirmation_info'));
1117 $reg_proc->addOption($opt);
1120 $this->
lng->txt(
'crs_reg_selfreg'),
1123 $opt_self_enrollment_enabled->addSubItem($reg_proc);
1124 $opt_self_enrollment_enabled->addSubItem($sdur);
1126 $this->
lng->txt(
'crs_reg_no_selfreg'),
1129 $opt_self_enrollment_disabled->setInfo($this->
lng->txt(
'crs_registration_deactivated'));
1131 $this->
lng->txt(
'crs_registration_type'),
1132 'subscription_limitation_type' 1134 $reg_proc_subscription_reg_type->
setValue(
1139 $reg_proc_subscription_reg_type->addOption($opt_self_enrollment_enabled);
1140 $reg_proc_subscription_reg_type->addOption($opt_self_enrollment_disabled);
1145 $reg_code->setChecked($this->
object->isRegistrationAccessCodeEnabled());
1146 $reg_code->setValue(
'1');
1147 $reg_code->setInfo($this->
lng->txt(
'crs_reg_code_enabled_info'));
1150 if (!$this->
object->getRegistrationAccessCode()) {
1154 $reg_link->setValue($this->
object->getRegistrationAccessCode());
1158 $val = ilLink::_getLink(
1159 $this->
object->getRefId(),
1160 $this->
object->getType(),
1162 'rcode' . $this->
object->getRegistrationAccessCode()
1164 $link->setHtml(
'<span class="small">' . $val .
'</span>');
1165 $reg_code->addSubItem($link);
1171 $cancel->
setInfo($this->
lng->txt(
'crs_cancellation_end_info'));
1172 $cancel_end = $this->
object->getCancellationEnd();
1174 $cancel->setDate($cancel_end);
1180 $this->
lng->txt(
'crs_subscription_max_members_short'),
1181 'subscription_membership_limitation' 1183 $lim->setInfo($this->
lng->txt(
'crs_subscription_max_members_short_info'));
1184 $lim->setValue((
string) 1);
1185 $lim->setChecked($this->
object->isSubscriptionMembershipLimited());
1188 $min->setSubmitFormOnEnter(
true);
1190 $min->setMaxLength(4);
1191 $min->setValue($this->
object->getSubscriptionMinMembers() ?:
'');
1192 $min->setTitle($this->
lng->txt(
'crs_subscription_min_members'));
1193 $min->setInfo($this->
lng->txt(
'crs_subscription_min_members_info'));
1194 $lim->addSubItem($min);
1197 $max->setSubmitFormOnEnter(
true);
1199 $max->setMaxLength(4);
1200 $max->setValue($this->
object->getSubscriptionMaxMembers() ?:
'');
1201 $max->setTitle($this->
lng->txt(
'crs_subscription_max_members'));
1202 $max->setInfo($this->
lng->txt(
'crs_reg_max_info'));
1204 $lim->addSubItem($max);
1208 $wait->addOption($option);
1210 $option =
new ilRadioOption($this->
lng->txt(
'crs_waiting_list_no_autofill'),
'1');
1211 $option->
setInfo($this->
lng->txt(
'crs_wait_info'));
1212 $wait->addOption($option);
1214 $option =
new ilRadioOption($this->
lng->txt(
'crs_waiting_list_autofill'),
'2');
1215 $option->
setInfo($this->
lng->txt(
'crs_waiting_list_autofill_info'));
1216 $wait->addOption($option);
1218 if ($this->
object->hasWaitingListAutoFill()) {
1219 $wait->setValue(
'2');
1220 } elseif ($this->
object->enabledWaitingList()) {
1221 $wait->setValue(
'1');
1223 $wait->setValue(
'0');
1225 $lim->addSubItem($wait);
1228 $pres->setTitle($this->
lng->txt(
'crs_view_mode'));
1233 $form = $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->addTitleIconVisibility();
1236 $form = $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->addTopActionsVisibility();
1239 if ($setting->get(
"rep_breadcr_crs") && $setting->get(
"rep_breadcr_crs_overwrite")) {
1240 $add = $setting->get(
"rep_breadcr_crs_default")
1241 ?
" (" . $this->
lng->txt(
"crs_breadcrumb_crs_only") .
")" 1242 :
" (" . $this->
lng->txt(
"crs_breadcrumb_full_path") .
")";
1244 self::BREADCRUMB_DEFAULT => $this->
lng->txt(
"crs_sys_default") . $add,
1245 self::BREADCRUMB_CRS_ONLY => $this->
lng->txt(
"crs_breadcrumb_crs_only"),
1246 self::BREADCRUMB_FULL_PATH => $this->
lng->txt(
"crs_breadcrumb_full_path")
1250 $si->setOptions($options);
1255 $form = $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->addIcon();
1258 $form = $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->addTileImage();
1268 $this->
lng->txt(
'cntr_view_sessions'),
1271 $opts->setInfo($this->
lng->txt(
'cntr_view_info_sessions'));
1272 $view_type->addOption($opts);
1276 $sess->setValue(
'1');
1277 $sess->setChecked($this->
object->isSessionLimitEnabled());
1278 $sess->setInfo($this->
lng->txt(
'sess_limit_info'));
1281 #$prev->setSubmitFormOnEnter(true); 1282 $prev->setMinValue(0);
1284 $this->
object->getNumberOfPreviousSessions() == -1 ?
1286 $this->
object->getNumberOfPreviousSessions()
1289 $prev->setMaxLength(3);
1290 $sess->addSubItem($prev);
1293 #$next->setSubmitFormOnEnter(true); 1294 $next->setMinValue(0);
1296 $this->
object->getNumberOfNextSessions() == -1 ?
1298 $this->
object->getNumberOfnextSessions()
1301 $next->setMaxLength(3);
1302 $sess->addSubItem($next);
1304 $opts->addSubItem($sess);
1307 $optsi->setInfo($this->
lng->txt(
'cntr_view_info_simple'));
1308 $view_type->addOption($optsi);
1311 $this->
lng->txt(
'cntr_view_by_type'),
1314 $optbt->setInfo($this->
lng->txt(
'cntr_view_info_by_type'));
1315 $view_type->addOption($optbt);
1318 $this->
lng->txt(
'crs_view_objective'),
1321 $opto->setInfo($this->
lng->txt(
'crs_view_info_objective'));
1322 $view_type->addOption($opto);
1325 $optt->setInfo($this->
lng->txt(
'crs_view_info_timing'));
1332 $this->
lng->txt(
'crs_view_timing_absolute'),
1335 $absolute->setInfo($this->
lng->txt(
'crs_view_info_timing_absolute'));
1336 $timing->addOption($absolute);
1339 $this->
lng->txt(
'crs_view_timing_relative'),
1342 $relative->setInfo($this->
lng->txt(
'crs_view_info_timing_relative'));
1343 $timing->addOption($relative);
1345 $optt->addSubItem($timing);
1348 $view_type->addOption($optt);
1363 $this->
lng->txt(
'tutorial_support_block_setting_title'),
1364 'tutorial_support_block_checkbox' 1367 $tutorial_support_panel_checkbox->setChecked((
bool) $this->
object->getTutorialSupportBlockSettingValue());
1368 $tutorial_support_panel_checkbox->setInfo($this->
lng->txt(
'tutorial_support_block_byline'));
1374 if ($olp->getCurrentMode()) {
1376 $lp_status->setTitle($this->
lng->txt(
'crs_course_status_of_users'));
1381 $lp_status_options->
setValue($this->
object->getStatusDetermination());
1384 $this->
lng->txt(
'crs_status_determination_lp'),
1386 $this->
lng->txt(
'crs_status_determination_lp_info')
1388 $lp_status_options->addOption($lp_option);
1390 $this->
lng->txt(
'crs_status_determination_manual'),
1400 $feat->setTitle($this->
lng->txt(
'obj_features'));
1410 $mem->setChecked($this->
object->getShowMembers());
1411 $mem->setInfo($this->
lng->txt(
'crs_show_members_info'));
1416 $part_list =
new ilCheckboxInputGUI($this->
lng->txt(
'crs_show_member_export'),
'show_members_export');
1417 $part_list->setChecked($this->
object->getShowMembersExport());
1418 $part_list->setInfo($this->
lng->txt(
'crs_show_member_export_info'));
1419 $mem->addSubItem($part_list);
1427 $this->
lng->txt(
'crs_mail_tutors_only'),
1429 $this->
lng->txt(
'crs_mail_tutors_only_info')
1431 $mail_type->addOption($mail_tutors);
1434 $this->
lng->txt(
'crs_mail_all'),
1436 $this->
lng->txt(
'crs_mail_all_info')
1438 $mail_type->addOption($mail_all);
1448 $not->setValue(
'1');
1449 $not->setInfo($this->
lng->txt(
'crs_auto_notification_info'));
1450 $not->setChecked($this->
object->getAutoNotification());
1454 $desk->setChecked($this->
object->getAboStatus());
1455 $desk->setInfo($this->
lng->txt(
'crs_add_remove_from_desktop_info'));
1460 $ecs->addSettingsToForm(
$form,
'crs');
1467 if ($this->
http->wrapper()->query()->has(
'file_id')) {
1468 $file_id = $this->
http->wrapper()->query()->retrieve(
1481 $this->tabs_gui->addSubTabTarget(
1483 $this->
ctrl->getLinkTarget($this,
'edit'),
1488 $this->tabs_gui->addSubTabTarget(
1489 "crs_info_settings",
1490 $this->
ctrl->getLinkTarget($this,
'editInfo'),
1495 $this->tabs_gui->addSubTabTarget(
1497 $this->
ctrl->getLinkTargetByClass(
'ilConditionHandlerGUI',
'listConditions'),
1499 "ilConditionHandlerGUI" 1502 $this->tabs_gui->addSubTabTarget(
1503 "crs_start_objects",
1504 $this->
ctrl->getLinkTargetByClass(
'ilContainerStartObjectsGUI',
'listStructure'),
1509 $this->tabs_gui->addSubTabTarget(
1511 $this->
ctrl->getLinkTargetByClass(
'ilobjcoursegroupinggui',
'listGroupings'),
1516 if ($lti_settings->hasSettingsAccess()) {
1517 $this->tabs_gui->addSubTabTarget(
1519 $this->
ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
1525 $this->tabs_gui->addSubTabTarget(
1527 $this->
ctrl->getLinkTarget($this,
'editMapSettings'),
1535 $this->tabs_gui->addSubTabTarget(
1536 'crs_custom_user_fields',
1537 $this->
ctrl->getLinkTargetByClass(
'ilobjectcustomuserfieldsgui'),
1539 'ilobjectcustomuserfieldsgui' 1545 if (
true === $validator->validate()) {
1546 $this->tabs_gui->addSubTabTarget(
1548 $this->
ctrl->getLinkTargetByClass(
"ilcertificategui",
"certificateeditor"),
1554 if ($this->
object->getUseNews()) {
1555 $this->tabs_gui->addSubTab(
1556 'obj_news_settings',
1557 $this->
lng->txt(
"cont_news_settings"),
1558 $this->
ctrl->getLinkTargetByClass(
'ilcontainernewssettingsgui')
1561 if ($this->
object->getShowMembersExport()) {
1562 $this->tabs_gui->addSubTab(
1564 $this->
lng->txt(
'crs_show_member_export_settings'),
1565 $this->
ctrl->getLinkTargetByClass(
'ilmemberexportsettingsgui',
'')
1568 $this->tabs_gui->addSubTabTarget(
1569 "obj_multilinguality",
1570 $this->
ctrl->getLinkTargetByClass(
"ilobjecttranslationgui",
""),
1572 "ilobjecttranslationgui" 1595 foreach ($disabled_object_types as
$type) {
1596 unset($createble_object_types[$type]);
1611 $new_object->getMemberObject()->updateNotification(
1612 $this->
user->getId(),
1613 $this->
settings->get(
'mail_crs_admin_notification',
'1')
1615 $new_object->getMemberObject()->updateContact($this->
user->getId(), 1);
1622 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"crs_added"),
true);
1623 $this->
ctrl->setParameter($this,
"ref_id", $new_object->
getRefId());
1626 $this->
ctrl->getLinkTarget($this,
"edit",
"")
1630 public function readMemberData(array $ids, array $selected_columns = null,
bool $skip_names =
false): array
1637 if ($show_tracking) {
1639 $show_tracking = $olp->isActive();
1642 if ($show_tracking) {
1649 if ($privacy->enabledCourseAccessTimes()) {
1653 $do_prtf = (is_array($selected_columns) &&
1654 in_array(
'prtf', $selected_columns) &&
1659 $this->
ctrl->getLinkTarget($this,
"members")
1664 foreach ($ids as $usr_id) {
1674 $tmp_data[
'firstname'] = $name[
'firstname'];
1675 $tmp_data[
'lastname'] = $name[
'lastname'];
1676 $tmp_data[
'login'] = $name[
'login'];
1678 $tmp_data[
'passed'] = $this->
object->getMembersObject()->hasPassed($usr_id) ? 1 : 0;
1680 $tmp_data[
'passed_info'] = $this->
object->getMembersObject()->getPassedInfo($usr_id);
1682 $tmp_data[
'notification'] = $this->
object->getMembersObject()->isNotificationEnabled($usr_id) ? 1 : 0;
1683 $tmp_data[
'blocked'] = $this->
object->getMembersObject()->isBlocked($usr_id) ? 1 : 0;
1684 $tmp_data[
'contact'] = $this->
object->getMembersObject()->isContact($usr_id) ? 1 : 0;
1686 $tmp_data[
'usr_id'] = $usr_id;
1688 if ($show_tracking) {
1689 if (in_array($usr_id, $completed)) {
1691 } elseif (in_array($usr_id, $in_progress)) {
1693 } elseif (in_array($usr_id, $failed)) {
1700 if ($privacy->enabledCourseAccessTimes()) {
1701 if (isset($progress[$usr_id][
'ts']) && $progress[$usr_id][
'ts']) {
1702 $tmp_data[
'access_ut'] = $progress[$usr_id][
'ts'];
1704 $progress[$usr_id][
'ts'],
1708 $tmp_data[
'access_ut'] = 0;
1709 $tmp_data[
'access_time'] = $this->
lng->txt(
'no_date');
1714 $tmp_data[
'prtf'] = $all_prtf[$usr_id] ?? null;
1717 $members[$usr_id] = $tmp_data;
1734 if ($marks->getCompleted() !== $a_has_passed) {
1750 $this->
object->isSubscriptionMembershipLimited() &&
1751 $this->
object->getSubscriptionMaxMembers() &&
1752 $this->
object->getSubscriptionMaxMembers() <= $this->
object->getMembersObject()->getCountMembers()
1754 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"crs_max_members_reached"));
1758 if ($number = $this->
object->getMembersObject()->autoFillSubscribers()) {
1759 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"crs_number_users_added") .
" " . $number);
1761 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"crs_no_users_added"));
1771 if ($this->
object->getMembersObject()->isLastAdmin($this->
user->getId())) {
1772 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'crs_min_one_admin'));
1777 $this->tabs_gui->setTabActive(
'crs_unsubscribe');
1779 $cgui->setHeaderText($this->
lng->txt(
'crs_unsubscribe_sure'));
1780 $cgui->setFormAction($this->
ctrl->getFormAction($this));
1781 $cgui->setCancel($this->
lng->txt(
"cancel"),
"cancel");
1782 $cgui->setConfirm($this->
lng->txt(
"crs_unsubscribe"),
"performUnsubscribe");
1783 $this->tpl->setContent($cgui->getHTML());
1794 $this->
getObject()->getMembersObject()->delete($this->
user->getId());
1795 $this->
getObject()->getMembersObject()->sendUnsubscribeNotificationToAdmins($this->
user->getId());
1796 $this->
getObject()->getMembersObject()->sendNotification(
1798 $this->
user->getId()
1800 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'crs_unsubscribed_from_crs'),
true);
1802 $this->
ctrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $this->tree->getParentId($this->ref_id));
1803 $this->
ctrl->redirectByClass(
"ilrepositorygui",
"");
1809 if ($this->
access->checkAccess(
'visible',
'', $this->ref_id)) {
1810 $this->
tabs->addTarget(
1812 $this->
ctrl->getLinkTargetByClass(
1813 array(
"ilobjcoursegui",
"ilinfoscreengui"),
1820 $this->
access->checkAccess(
'leave',
'', $this->object->getRefId()) &&
1821 $this->
object->getMemberObject()->isMember()
1823 $this->
tabs->addTarget(
1825 $this->
ctrl->getLinkTarget($this,
"unsubscribe"),
1834 $this->tabs_gui->addTab(
1836 $this->
lng->txt(
"content"),
1837 $this->
ctrl->getLinkTarget($this,
"view")
1843 $this->
help->setScreenIdComponent(
"crs");
1844 $this->
ctrl->setParameter($this,
"ref_id", $this->ref_id);
1846 if ($this->
access->checkAccess(
'read',
'', $this->ref_id)) {
1848 $this->tabs_gui->activateTab(
'view_content');
1849 if ($this->
object->isNewsTimelineEffective()) {
1850 if (!$this->
object->isNewsTimelineLandingPageEffective()) {
1853 $this->tabs_gui->addTab(
1855 $this->
lng->txt(
"cont_news_timeline_tab"),
1856 $this->
ctrl->getLinkTargetByClass(
"ilnewstimelinegui",
"show")
1858 if ($this->
object->isNewsTimelineLandingPageEffective()) {
1868 $this->
tabs->addTab(
1870 $this->
lng->txt(
'timings_timings'),
1871 $this->
ctrl->getLinkTargetByClass(
'ilcoursecontentgui',
'manageTimings')
1875 $this->
tabs->addTab(
1877 $this->
lng->txt(
'timings_timings'),
1878 $this->
ctrl->getLinkTargetByClass(
'ilcoursecontentgui',
'managePersonalTimings')
1883 if ($this->
access->checkAccess(
'write',
'', $this->ref_id)) {
1885 $this->tabs_gui->addTarget(
1887 $this->
ctrl->getLinkTargetByClass(
'illoeditorgui',
''),
1894 $this->
access->checkAccess(
'visible',
'', $this->ref_id) ||
1895 $this->
access->checkAccess(
'join',
'', $this->ref_id) ||
1896 $this->
access->checkAccess(
'read',
'', $this->ref_id)
1899 strcasecmp($this->
ctrl->getCmdClass(), ilInfoScreenGUI::class) === 0 ||
1900 strcasecmp($this->
ctrl->getCmdClass(), ilNoteGUI::class) === 0;
1901 $this->tabs_gui->addTarget(
1903 $this->
ctrl->getLinkTargetByClass(
1904 array(
"ilobjcoursegui",
"ilinfoscreengui"),
1913 if ($this->
access->checkAccess(
'write',
'', $this->ref_id)) {
1915 strcasecmp($this->
ctrl->getCmdClass(), ilConditionHandlerGUI::class) &&
1916 !$this->
http->wrapper()->query()->has(
'item_id');
1917 $this->tabs_gui->addTarget(
1919 $this->
ctrl->getLinkTarget($this,
"edit"),
1920 array(
"edit",
"editMapSettings",
"editCourseIcons",
"listStructure"),
1931 $membership_gui->addMemberTab($this->tabs_gui, $is_participant);
1934 if ($this->
access->checkAccess(
'write',
'', $this->ref_id)) {
1936 $this->tabs_gui->addTarget(
1937 "obj_tool_setting_badges",
1938 $this->
ctrl->getLinkTargetByClass(
"ilbadgemanagementgui",
""),
1940 "ilbadgemanagementgui" 1947 $this->tabs_gui->addTarget(
1948 "obj_tool_setting_skills",
1949 $this->
ctrl->getLinkTargetByClass(array(
"ilcontainerskillgui",
"ilcontskillpresentationgui"),
""),
1951 array(
"ilcontainerskillgui",
"ilcontskillpresentationgui",
"ilcontskilladmingui")
1961 $this->tabs_gui->addTarget(
1962 "obj_tool_setting_booking",
1963 $this->
ctrl->getLinkTargetByClass(array(
"ilbookinggatewaygui"),
"")
1969 $this->tabs_gui->addTarget(
1970 'learning_progress',
1971 $this->
ctrl->getLinkTargetByClass(array(
'ilobjcoursegui',
'illearningprogressgui'),
''),
1973 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
1978 if ($this->
access->checkAccess(
'write',
'', $this->ref_id)) {
1980 $mdtab = $mdgui->getTab();
1982 $this->tabs_gui->addTarget(
1986 "ilobjectmetadatagui" 1991 if ($this->
access->checkAccess(
'write',
'', $this->object->getRefId())) {
1992 $this->tabs_gui->addTarget(
1994 $this->
ctrl->getLinkTargetByClass(
'ilexportgui',
''),
2000 if ($this->
access->checkAccess(
'edit_permission',
'', $this->ref_id)) {
2001 $this->tabs_gui->addTarget(
2003 $this->
ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"),
2004 array(
"perm",
"info",
"owner"),
2010 if ($this->
access->checkAccess(
'join',
'', $this->ref_id) && !$this->
object->getMemberObject()->isAssigned()) {
2012 $this->tabs_gui->addTab(
2014 $this->
lng->txt(
'membership_leave'),
2015 $this->
ctrl->getLinkTargetByClass(
'ilcourseregistrationgui',
'show',
'')
2018 $this->tabs_gui->addTarget(
2020 $this->
ctrl->getLinkTargetByClass(
'ilcourseregistrationgui',
"show"),
2026 if ($this->
access->checkAccess(
'leave',
'', $this->object->getRefId()) && $this->
object->getMemberObject()->isMember()) {
2027 $this->tabs_gui->addTarget(
2029 $this->
ctrl->getLinkTarget($this,
"unsubscribe"),
2038 $next_class = $this->
ctrl->getNextClass($this);
2039 $cmd = $this->
ctrl->getCmd();
2045 $this->
access->checkAccess(
'read',
'', $this->ref_id)) {
2046 $this->navigation_history->addItem(
2048 ilLink::_getLink($this->ref_id,
"crs"),
2052 $header_action =
true;
2053 switch ($next_class) {
2054 case strtolower(ilRepositoryTrashGUI::class):
2055 $ru = new \ilRepositoryTrashGUI($this);
2056 $this->
ctrl->setReturn($this,
'trash');
2057 $this->
ctrl->forwardCommand($ru);
2060 case 'illtiproviderobjectsettinggui':
2063 $this->tabs_gui->activateTab(
'settings');
2064 $this->tabs_gui->activateSubTab(
'lti_provider');
2067 $lti_gui->offerLTIRolesForSelection(
false);
2068 $this->
ctrl->forwardCommand($lti_gui);
2071 case 'ilcoursemembershipgui':
2073 $this->tabs_gui->activateTab(
'members');
2076 $this->
ctrl->forwardCommand($mem_gui);
2079 case "ilinfoscreengui":
2083 case 'ilobjectmetadatagui':
2084 if (!$this->
access->checkAccess(
'write',
'', $this->object->getRefId())) {
2085 $this->error->raiseError($this->
lng->txt(
'permission_denied'), $this->error->WARNING);
2087 $this->tabs_gui->setTabActive(
'meta_data');
2089 $this->
ctrl->forwardCommand($md_gui);
2092 case 'ilcourseregistrationgui':
2093 $this->
ctrl->setReturn($this,
'');
2094 $this->tabs_gui->setTabActive(
'join');
2096 $this->
ctrl->forwardCommand($registration);
2099 case 'ilobjectcustomuserfieldsgui':
2102 $this->tabs_gui->activateTab(
'settings');
2103 $this->tabs_gui->activateSubTab(
'crs_custom_user_fields');
2104 $this->
ctrl->forwardCommand($cdf_gui);
2107 case "ilcourseobjectivesgui":
2109 $this->
ctrl->setReturn($this,
"");
2111 $this->
ctrl->forwardCommand($reg_gui);
2114 case 'ilobjcoursegroupinggui':
2116 $this->
ctrl->setReturn($this,
'edit');
2118 $this->tabs_gui->activateTab(
'settings');
2119 $this->tabs_gui->activateSubTab(
'groupings');
2122 if ($this->
http->wrapper()->query()->has(
'obj_id')) {
2123 $grouping_id = $this->
http->wrapper()->query()->retrieve(
2129 $this->
ctrl->forwardCommand($crs_grp_gui);
2132 case "ilpropertyformgui":
2139 $this->
ctrl->setReturn($this,
"");
2140 $this->tabs_gui->setTabActive(
'none');
2149 case "ilconditionhandlergui":
2152 $this->tabs_gui->activateTab(
'settings');
2153 $this->tabs_gui->activateSubTab(
'preconditions');
2155 $this->
ctrl->forwardCommand($new_gui);
2158 case "illearningprogressgui":
2161 if ($this->
http->wrapper()->query()->has(
'user_id')) {
2169 $this->
object->getRefId(),
2172 $this->
ctrl->forwardCommand($new_gui);
2173 $this->tabs_gui->setTabActive(
'learning_progress');
2176 case 'ilpermissiongui':
2177 $this->tabs_gui->setTabActive(
'perm_settings');
2179 $this->
ctrl->forwardCommand($perm_gui);
2182 case 'ilcalendarpresentationgui':
2184 $ret = $this->
ctrl->forwardCommand($cal);
2185 $header_action =
false;
2188 case 'ilcoursecontentgui':
2189 $this->
ctrl->setReturn($this,
'members');
2191 $this->
ctrl->forwardCommand($course_content_obj);
2194 case 'ilpublicuserprofilegui':
2195 $this->tpl->enableDragDropFileUpload(null);
2197 $this->tabs_gui->setTabActive(
'members');
2200 if ($this->
http->wrapper()->query()->has(
'user_id')) {
2207 $profile_gui->setBackUrl($this->
ctrl->getLinkTargetByClass([
"ilCourseMembershipGUI",
2210 $this->tabs_gui->setSubTabActive(
'crs_members_gallery');
2211 $html = $this->
ctrl->forwardCommand($profile_gui);
2212 $this->tpl->setVariable(
"ADM_CONTENT",
$html);
2215 case 'ilmemberagreementgui':
2216 $this->tabs_gui->clearTargets();
2218 $this->
ctrl->setReturn($this,
'');
2220 $this->
ctrl->forwardCommand($agreement);
2224 case "ilcontainerpagegui":
2227 $this->tpl->setContent($ret);
2229 $header_action =
false;
2232 case "ilcontainerstartobjectspagegui":
2235 $ret = $this->
ctrl->forwardCommand($pgui);
2237 $this->tpl->setContent($ret);
2241 case 'ilobjectcopygui':
2243 $cp->setType(
'crs');
2244 $this->
ctrl->forwardCommand($cp);
2247 case "ilobjectcontentstylesettingsgui":
2254 $settings_gui = $DIC->contentStyle()->gui()
2255 ->objectSettingsGUIForRefId(
2257 $this->
object->getRefId()
2259 $this->
ctrl->forwardCommand($settings_gui);
2263 $this->tabs_gui->setTabActive(
'export');
2265 $exp->addFormat(
'xml');
2266 $this->
ctrl->forwardCommand($exp);
2269 case "ilcommonactiondispatchergui":
2274 case 'ildidactictemplategui':
2275 $this->
ctrl->setReturn($this,
'edit');
2277 $this->
ctrl->forwardCommand($did);
2280 case "ilcertificategui":
2281 $this->tabs_gui->activateTab(
"settings");
2283 $this->tabs_gui->activateSubTab(
'certificate');
2286 $output_gui = $guiFactory->create($this->
object);
2287 $this->
ctrl->forwardCommand($output_gui);
2290 case 'illoeditorgui':
2291 #$this->tabs_gui->clearTargets(); 2292 #$this->tabs_gui->setBackTarget($this->lng->txt('back'),$this->ctrl->getLinkTarget($this,'')); 2293 $this->tabs_gui->activateTab(
'crs_objectives');
2296 $this->
ctrl->forwardCommand($editor);
2297 if (strtolower($this->
ctrl->getCmdClass()) ===
"illopagegui") {
2298 $header_action =
false;
2302 case 'ilcontainerstartobjectsgui':
2303 $this->
ctrl->setReturn($this,
'edit');
2304 $this->tabs_gui->clearTargets();
2305 $this->tabs_gui->setBackTarget(
2306 $this->
lng->txt(
"back_to_crs_content"),
2307 $this->
ctrl->getLinkTarget($this,
"edit")
2309 $this->tabs_gui->addTab(
2311 $this->
lng->txt(
"crs_start_objects"),
2312 $this->
ctrl->getLinkTargetByClass(
"ilcontainerstartobjectsgui",
"listStructure")
2314 $this->tabs_gui->activateTab(
"start");
2315 if (strtolower($this->
ctrl->getCmdClass()) ==
2316 "ilcontainerstartobjectspagegui") {
2317 $header_action =
false;
2321 $ilHelp = $DIC[
'ilHelp'];
2322 $this->
help->setScreenIdComponent(
"crs");
2324 $this->
ctrl->forwardCommand($stgui);
2327 case 'illomembertestresultgui':
2328 $GLOBALS[
'DIC'][
'ilCtrl']->setReturn($this,
'members');
2329 $GLOBALS[
'DIC'][
'ilTabs']->clearTargets();
2330 $GLOBALS[
'DIC'][
'ilTabs']->setBackTarget(
2331 $GLOBALS[
'DIC'][
'lng']->txt(
'back'),
2332 $GLOBALS[
'DIC'][
'ilCtrl']->getLinkTarget($this,
'members')
2336 if ($this->
http->wrapper()->query()->has(
'uid')) {
2337 $uid = $this->
http->wrapper()->query()->retrieve(
2343 $this->
ctrl->forwardCommand($result_view);
2346 case 'ilmailmembersearchgui':
2351 $this->
access->checkAccess(
'manage_members',
"", $this->
object->getRefId())) &&
2352 $this->rbac_system->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())) {
2353 $this->error->raiseError($this->
lng->txt(
"msg_no_perm_read"), $this->error->MESSAGE);
2356 $this->tabs_gui->setTabActive(
'members');
2360 $this->
object->getRefId(),
2366 $this->
ctrl->forwardCommand($mail_search);
2369 case 'ilbadgemanagementgui':
2370 $this->tabs_gui->setTabActive(
'obj_tool_setting_badges');
2372 $this->
ctrl->forwardCommand($bgui);
2375 case "ilcontainernewssettingsgui":
2377 $this->tabs_gui->activateTab(
'settings');
2378 $this->tabs_gui->activateSubTab(
'obj_news_settings');
2380 $news_set_gui->setTimeline(
true);
2381 $news_set_gui->setCronNotifications(
true);
2382 $news_set_gui->setHideByDate(
true);
2383 $this->
ctrl->forwardCommand($news_set_gui);
2386 case "ilnewstimelinegui":
2388 $this->
ctrl->redirectByClass(self::class,
"view");
2390 $this->tabs_gui->setTabActive(
'news_timeline');
2392 $this->
object->getRefId(),
2393 $this->
object->getNewsTimelineAutoEntries()
2395 $t->setUserEditAll($this->
access->checkAccess(
'write',
'', $this->object->getRefId(),
'grp'));
2397 $this->
ctrl->forwardCommand($t);
2399 $this->
user->getId(),
2400 $this->
object->getId(),
2401 $this->
object->getRefId(),
2406 case 'ilmemberexportsettingsgui':
2408 $this->tabs_gui->activateTab(
'properties');
2409 $this->tabs_gui->activateSubTab(
'export_members');
2411 $this->
ctrl->forwardCommand($settings_gui);
2414 case "ilcontainerskillgui":
2415 $this->tabs_gui->activateTab(
'obj_tool_setting_skills');
2420 case 'ilobjecttranslationgui':
2423 $this->tabs_gui->activateTab(
"settings");
2424 $this->tabs_gui->activateSubTab(
"obj_multilinguality");
2426 $this->
ctrl->forwardCommand($transgui);
2429 case "ilbookinggatewaygui":
2430 $this->tabs_gui->activateTab(
'obj_tool_setting_booking');
2437 if ($cmd ==
'infoScreenGoto') {
2442 $cmd =
'infoScreen';
2446 if (!$this->creation_mode) {
2447 if ($cmd ==
"infoScreen") {
2454 if (!$this->creation_mode
2455 && $cmd !=
'infoScreen' 2456 && $cmd !=
'sendfile' 2457 && $cmd !=
'unsubscribe' 2458 && $cmd !=
'deliverCertificate' 2459 && $cmd !=
'performUnsubscribe' 2460 && $cmd !=
'removeFromDesk' 2462 && !$this->
access->checkAccess(
"read",
'', $this->object->getRefId())
2464 || $cmd ==
'subscribe' 2465 || $cmd ===
'leaveWaitList') {
2466 if ($this->rbac_system->checkAccess(
'join', $this->object->getRefId()) &&
2468 $this->
ctrl->redirectByClass(
"ilCourseRegistrationGUI");
2475 if ($cmd ==
'listObjectives') {
2476 $this->
ctrl->setReturn($this,
"");
2478 $this->
ctrl->forwardCommand($obj_gui);
2482 if ($cmd ==
"" && $this->
object->isNewsTimelineLandingPageEffective()) {
2483 $this->
ctrl->redirectByClass(
"ilnewstimelinegui");
2494 if ($header_action) {
2501 if ($this->
access->checkAccess(
'write',
'', $this->object->getRefId())) {
2506 if (!$this->
object->getMemberObject()->isAssigned()) {
2523 $this->
logger->warning(
'Missing course confirmation.');
2528 $this->
logger->warning(
'Missing required fields');
2536 return array(
"ilCourseRegisterGUI",
'ilConditionHandlerGUI');
2541 $this->
ctrl->redirectByClass(
'ilcoursemembershipgui');
2544 public static function _goto($a_target,
string $a_add =
""): void
2547 $main_tpl = $DIC->ui()->mainTemplate();
2548 $ilAccess = $DIC[
'ilAccess'];
2551 $ilUser = $DIC[
'ilUser'];
2552 $http = $DIC->http();
2553 $refinery = $DIC->refinery();
2555 $a_target = (
int) $a_target;
2557 if (substr($a_add, 0, 5) ==
'rcode') {
2560 if ($http->
wrapper()->query()->has(
'target')) {
2561 $target = $http->
wrapper()->query()->retrieve(
2568 "login.php?target=" . $target .
"&cmd=force_login&lang=" .
2569 $ilUser->getCurrentLanguage()
2581 if ($a_add ==
"mem" && $ilAccess->checkAccess(
"manage_members",
"", $a_target)) {
2589 if ($ilAccess->checkAccess(
"read",
"", $a_target)) {
2593 if ($ilAccess->checkAccess(
"visible",
"", $a_target)) {
2597 $main_tpl->setOnScreenMessage(
'failure', sprintf(
2598 $lng->
txt(
"msg_no_perm_read_item"),
2611 $this->tabs_gui->activateTab(
'settings');
2612 $this->tabs_gui->activateSubTab(
'crs_map_settings');
2615 !$this->
access->checkAccess(
"write",
"", $this->object->getRefId())) {
2619 $latitude = $this->
object->getLatitude();
2620 $longitude = $this->
object->getLongitude();
2621 $zoom = $this->
object->getLocationZoom();
2624 if ($latitude == 0 && $longitude == 0 && $zoom == 0) {
2626 $latitude = $def[
"latitude"];
2627 $longitude = $def[
"longitude"];
2628 $zoom = $def[
"zoom"];
2637 $this->
lng->txt(
"crs_enable_map"),
2640 $public->setValue(
"1");
2641 $public->setChecked($this->
object->getEnableCourseMap());
2646 $this->
lng->txt(
"crs_map_location"),
2650 $loc_prop->setLongitude((
float) $longitude);
2651 $loc_prop->setZoom((
int) $zoom);
2656 $this->tpl->setVariable(
"ADM_CONTENT",
$form->
getHTML());
2666 if ($this->
http->wrapper()->post()->has(
'location')) {
2667 $custom_transformer = $this->
refinery->custom()->transformation(
2668 fn($array) => $array
2675 $enable_map =
false;
2676 if ($this->
http->wrapper()->post()->has(
'enable_map')) {
2677 $enable_map = $this->
http->wrapper()->post()->retrieve(
2679 $this->
refinery->kindlyTo()->bool()
2682 $this->
object->setLatitude(
$location[
'latitude']);
2683 $this->
object->setLongitude(
$location[
'longitude']);
2684 $this->
object->setLocationZoom(
$location[
'zoom']);
2685 $this->
object->setEnableCourseMap($enable_map);
2686 $this->
object->update();
2687 $this->
ctrl->redirect($this,
"editMapSettings");
2697 'ilcoursecontentgui',
2699 $this->
object->getAboStatus(),
2700 $this->
object->getRefId(),
2701 $this->
object->getId()
2707 string $a_cmd_class,
2710 int $a_course_ref_id,
2711 int $a_course_obj_id,
2712 int $a_parent_ref_id = 0
2715 $lng = $DIC->language();
2716 $ilAccess = $DIC->access();
2719 if ($a_parent_ref_id == 0) {
2720 $a_parent_ref_id = $a_course_ref_id;
2725 $a_item_list_gui->addCommandLinkParameter(array(
'crs_show_result' => $a_course_ref_id));
2730 $is_tutor = ($ilAccess->checkAccess(
2746 $ilAccess = $DIC[
'ilAccess'];
2748 $ilCtrl = $DIC[
'ilCtrl'];
2750 if ($this->
object->getType() !=
'crs') {
2753 if (!$this->
access->checkAccess(
2756 $this->object->getRefId(),
2758 $this->
object->getId()
2762 if ($this->
object->enabledObjectiveView()) {
2770 $this->tabs_gui->addSubTab(
2773 $this->
ctrl->getLinkTargetByClass(
"ilobjcoursegui",
"view")
2776 $this->tabs_gui->addSubTab(
2779 $this->
ctrl->getLinkTargetByClass(
"ilobjcoursegui",
"disableAdministrationPanel")
2791 $confirm->setHeaderText($this->
lng->txt(
'crs_objectives_reset_sure'));
2792 $confirm->setFormAction($this->
ctrl->getFormAction($this));
2793 $confirm->setConfirm($this->
lng->txt(
'reset'),
'reset');
2794 $confirm->setCancel($this->
lng->txt(
'cancel'),
'cancel');
2795 $this->tpl->setContent($confirm->getHTML());
2810 $this->
user->deletePref(
'crs_objectives_force_details_' . $this->
object->getId());
2811 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'crs_objectives_reseted'));
2817 if ($this->
access->checkAccess(
'write',
'', $this->object->getRefId())) {
2821 $this->
object->getRefId(),
2822 $this->
object->getId()
2824 if (count($this->start_obj->getStartObjects()) &&
2825 !$this->start_obj->allFullfilled($this->user->getId())) {
2837 $link = chr(13) . chr(10) . chr(13) . chr(10);
2838 $link .= $this->
lng->txt(
'crs_mail_permanent_link');
2839 $link .= chr(13) . chr(10) . chr(13) . chr(10);
2840 $link .= ilLink::_getLink($this->
object->getRefId());
2841 return rawurlencode(base64_encode($link));
2846 $lg = parent::initHeaderAction($sub_type, $sub_id);
2852 if ($validator->isCertificateDownloadable($this->user->getId(), $this->
object->getId())) {
2853 $cert_url = $this->
ctrl->getLinkTarget($this,
"deliverCertificate");
2855 $this->
lng->loadLanguageModule(
"certificate");
2856 $lg->addCustomCommand($cert_url,
"download_certificate");
2861 $this->
lng->txt(
"download_certificate"),
2871 if (!$noti->isCurrentUserActive()) {
2875 $this->
lng->txt(
"crs_notification_deactivated")
2878 $this->
ctrl->setParameter($this,
"crs_ntf", 1);
2879 $caption =
"crs_activate_notification";
2884 $this->
lng->txt(
"crs_notification_activated")
2887 $this->
ctrl->setParameter($this,
"crs_ntf", 0);
2888 $caption =
"crs_deactivate_notification";
2891 if ($noti->canCurrentUserEdit()) {
2892 $lg->addCustomCommand(
2893 $this->
ctrl->getLinkTarget($this,
"saveNotification"),
2898 $this->
ctrl->setParameter($this,
"crs_ntf",
"");
2911 if ($this->
access->checkAccess(
'manage_members',
'', $this->ref_id)) {
2913 if ($this->
http->wrapper()->query()->has(
'member_id')) {
2924 $objId = $this->
object->getId();
2928 if (
false === $validator->isCertificateDownloadable(
$user_id,
$objId)) {
2929 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"permission_denied"),
true);
2930 $this->
ctrl->redirect($this);
2940 $this->
lng->txt(
'error_creating_certificate_pdf')
2947 $this->
ctrl->redirectByClass(array(
'ilrepositorygui',
'ilobjcoursegui',
'illoeditorgui'),
'materials');
2952 $post_position = (array) ($this->
http->request()->getParsedBody()[
'position'] ?? []);
2953 if (isset($post_position[
'lobj'])) {
2954 $lobj = $post_position[
'lobj'];
2955 $objective_order = array();
2956 foreach ($lobj as $objective_id => $materials) {
2957 $objective_order[$objective_id] = $materials[0];
2958 unset($lobj[$objective_id][0]);
2961 asort($objective_order);
2963 foreach (array_keys($objective_order) as $objective_id) {
2965 $obj->writePosition(++$pos);
2969 foreach ($lobj as $objective_id => $materials) {
2974 foreach (array_keys($materials) as
$ass_id) {
2975 $objmat->writePosition($ass_id, ++$pos);
2979 parent::saveSortingObject();
2985 if ($this->
http->wrapper()->query()->has(
'tid')) {
2986 $tid = $this->
http->wrapper()->query()->retrieve(
2990 } elseif ($this->
http->wrapper()->post()->has(
'tid')) {
2991 $tid = $this->
http->wrapper()->post()->retrieve(
3002 if ($this->
http->wrapper()->query()->has(
'tid')) {
3003 $tid = $this->
http->wrapper()->query()->retrieve(
3009 if ($this->
http->wrapper()->query()->has(
'objective_id')) {
3010 $objective_id = $this->
http->wrapper()->query()->retrieve(
3018 $this->
user->getId()
3020 $passed =
$res->getCompletedObjectiveIds();
3022 $has_completed =
false;
3023 if ($objective_id) {
3024 $objective_ids = array($objective_id);
3025 if (in_array($objective_id, $passed)) {
3026 $has_completed =
true;
3033 if (count($objective_ids) === count($passed)) {
3034 $has_completed =
true;
3039 if ($has_completed) {
3055 if ($a_objective_id) {
3056 $question = $this->
lng->txt(
'crs_loc_objective_passed_confirmation');
3058 $question = $this->
lng->txt(
'crs_loc_objectives_passed_confirmation');
3061 $confirm->setHeaderText($question);
3062 $confirm->addHiddenItem(
'objective_id', (
string) $a_objective_id);
3063 $confirm->addHiddenItem(
'tid', (
string) $a_test_id);
3064 $confirm->setConfirm($this->
lng->txt(
'crs_loc_tst_start'),
'redirectLocToTestConfirmed');
3065 $confirm->setCancel($this->
lng->txt(
'cancel'),
'view');
3068 $this->tpl->setContent($confirm->getHTML());
3078 $crs_admin = $this->
object->getDefaultAdminRole();
3079 $crs_member = $this->
object->getDefaultMemberRole();
3080 $local_roles = $this->
object->getLocalCourseRoles(
false);
3084 if (in_array($crs_member, $local_roles)) {
3085 #$crs_roles[$crs_member] = ilObjRole::_getTranslation(array_search ($crs_member, $local_roles)); 3086 #unset($local_roles[$crs_roles[$crs_member]]); 3089 foreach ($local_roles as $title => $role_id) {
3097 if ($a_exclude !== []) {
3098 foreach ($a_exclude as $excluded_role) {
3099 if (isset($crs_roles[$excluded_role])) {
3100 unset($crs_roles[$excluded_role]);
3116 $this->
ctrl->redirectByClass(ilUsersGalleryGUI::class);
3124 $this->
ctrl->setReturn($this,
"view");
static handleCode(int $a_ref_id, string $a_type, string $a_code)
redirectLocToTestConfirmedObject()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstance(int $a_ref_id, bool $a_include_auto_entries)
setPropertyForm(ilPropertyFormGUI $form)
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false, ilObjUser $user=null,)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilBadgeManagementGUI: ilPropertyFormGUI
const IL_CRS_VIEW_TIMING_ABSOLUTE
setMessage(string $a_message)
const LP_MODE_MANUAL_BY_TUTOR
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
saveSortingSettings(ilPropertyFormGUI $form)
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...
getFormAction(string $cmd, string $default_form_action="")
Get form action for command (command is method name without "Object", e.g.
const IL_CRS_SUBSCRIPTION_DIRECT
GUI class for the workflow of copying objects.
if($clientAssertionType !='urn:ietf:params:oauth:client-assertion-type:jwt-bearer'|| $grantType !='client_credentials') $parts
const IL_CRS_SUBSCRIPTION_DEACTIVATED
static _goto($a_target, string $a_add="")
confirmDeleteInfoFilesObject()
$location
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static lookupRegistrationInfo(int $a_obj_id)
prepareOutput(bool $show_sub_objects=true)
static _isActivated(int $a_obj_id)
Is activated.
__construct($a_data, int $a_id, bool $a_call_by_reference=true, bool $a_prepare_output=true)
jump2UsersGalleryObject()
const LP_STATUS_NOT_ATTEMPTED
static _lookupInProgressForObject(int $a_obj_id, ?array $a_user_ids=null)
static _getInstanceByObjId(int $a_obj_id, int $a_usr_id)
static isActiveForRefId(int $ref_id)
static getInstanceByObjId(int $a_obj_id)
Get instance by obj type.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
static _gotoRepositoryNode(int $ref_id, string $cmd="")
static _lookupName(int $a_user_id)
lookup user name
This class is used for integration of the booking manager as a service into other repository objects...
static getValidFilename(string $a_filename)
static _readFilesByCourse(int $a_course_id)
static _getObjectiveIds(int $course_id, bool $a_activated_only=false)
viewObject()
viewObject container presentation for "administration -> repository, trash, permissions" ...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilAdvancedMDRecordGUI $record_gui
enableSubscribe(bool $status)
setVariable(string $variable, $value='')
Sets the given variable to the given value.
afterSave(ilObject $new_object)
static updateServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
updateLPFromStatus(int $a_member_id, bool $a_has_passed)
sync course status and lp status
static _getFields(int $a_container_id, $a_sort=self::IL_CDF_SORT_NAME)
Get all fields of a container.
const STATUS_DETERMINATION_LP
isActiveAdministrationPanel()
const LP_STATUS_IN_PROGRESS
deliverCertificateObject()
static _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
static _lookupViewMode(int $a_id)
editObject(ilPropertyFormGUI $form=null)
static _lookupCompletedForObject(int $a_obj_id, ?array $a_user_ids=null)
static _lookupObjId(int $ref_id)
static deliverFileLegacy(string $a_file, ?string $a_filename=null, ?string $a_mime=null, ?bool $isInline=false, ?bool $removeAfterDelivery=false, ?bool $a_exit_after=true)
static _tracProgress(int $a_user_id, int $a_obj_id, int $a_ref_id, string $a_obj_type='')
setValue(string $a_value)
modifyItemGUI(ilObjectListGUI $a_item_list_gui, array $a_item_data)
deleteObject(bool $error=false)
const EXTERNAL_MAIL_PREFIX
const MESSAGE_TYPE_SUCCESS
static _enabledUserRelatedData()
static _checkRequired(int $a_usr_id, int $a_obj_id)
class ilCourseObjectiveMaterials
performUnsubscribeObject()
GUI class for public user profile presentation.
static _enabledLearningProgress()
ilContainerStartObjects $start_obj
const IL_CRS_SUBSCRIPTION_PASSWORD
Class ilMailMemberCourseRoles.
static http()
Fetches the global http state from ILIAS.
class ilobjcourseobjectivesgui
const IL_CRS_SUBSCRIPTION_LIMITED
ilGlobalTemplateInterface $tpl
static _lookupTitle(int $obj_id)
static _getInstanceByObjId(int $a_obj_id)
const MAIL_ALLOWED_TUTORS
GUI class for LTI provider object settings.
createMailSignature()
Create a course mail signature.
static _getCountObjectives(int $a_obj_id, bool $a_activated_only=false)
addStandardContainerSubTabs(bool $a_include_view=true)
Add standard container subtabs for view, manage, oderdering and text/media editor link...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _getTranslation(string $a_role_title)
initDidacticTemplate(ilPropertyFormGUI $form)
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 getDefaultSettings()
Get default longitude, latitude and zoom.
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
static _recordWriteEvent(int $obj_id, int $usr_id, string $action, ?int $parent_obj_id=null)
Records a write event.
redirectLocToTestConfirmation(int $a_objective_id, int $a_test_id)
Show confirmation whether user wants to start a new run or resume a previous run. ...
const IL_CRS_VIEW_TIMING_RELATIVE
const IL_CRS_VIEW_BY_TYPE
renderAddNewItem(string ... $disabled_object_types)
readMemberData(array $ids, array $selected_columns=null, bool $skip_names=false)
afterImport(ilObject $new_object)
static _modifyItemGUI(ilObjectListGUI $a_item_list_gui, string $a_cmd_class, array $a_item_data, bool $a_abo_status, int $a_course_ref_id, int $a_course_obj_id, int $a_parent_ref_id=0)
static initServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
const STATUS_DETERMINATION_MANUAL
Last visited history for repository items.
ilNavigationHistory $navigation_history
getEditFormValues()
values are already set in initEditForm Returning an empty array avoid overriding these values...
setCustomRolesForSelection(array $a_roles)
Set custom roles for mapping to LTI roles.
const AUTO_RATING_NEW_OBJECTS
Class ilObjCourseGroupingGUI.
saveListPresentation(ilPropertyFormGUI $form)
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
static _writeContainerSetting(int $a_id, string $a_keyword, string $a_value)
const IL_CRS_VIEW_OBJECTIVE
static redirect(string $a_script)
setCurrentBlock(string $part=self::DEFAULT_BLOCK)
Sets the template to the given block.
setObjParticipants(ilParticipants $objParticipants)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
buildAddNewItemElements(array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)
static isActivated()
Checks whether Map feature is activated.
addAdoptContentLinkToToolbar()
const IL_CRS_VIEW_SESSIONS
redirectLocToTestObject($a_force_new_run=null)
static _registrationEnabled(int $a_obj_id)
Registration enabled? Method is in Access class, since it is needed by Access/ListGUI.
static generateCode()
Generate new registration key.
Render add new item selector.
initListPresentationForm(ilPropertyFormGUI $form)
Add list presentation settings to form.
static _getInstanceByType(string $a_type)
Get Singleton Instance.
const IL_CRS_SUBSCRIPTION_UNLIMITED
static isAccessible(int $ref_id)
static setBlockedForLP(bool $a_status)
Toggle LP blocking property status.
initHeaderAction(?string $sub_type=null, ?int $sub_id=null)
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
static formatPeriod(ilDateTime $start, ilDateTime $end, bool $a_skip_starting_day=false, ilObjUser $user=null)
Format a period of two dates Shows: 14.
__construct(Container $dic, ilPlugin $plugin)
getReturnLocation(string $cmd, string $default_location="")
Get return location for command (command is method name without "Object", e.g.
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
const IL_CRS_SUBSCRIPTION_CONFIRMATION
Class ilCourseContentGUI.
static getMailObjectRefId()
static _lookupProgressByObjId(int $a_obj_id)
lookup progress for a specific object
setInfoObject(ilInfoScreenGUI $info)
get info sections
ILIAS Container InternalGUIService $gui
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setSubTabs(string $a_tab)
Class ilContainerGUI This is a base GUI class for all container objects in ILIAS: root folder...
static _isParticipant(int $a_ref_id, int $a_usr_id)
Static function to check if a user is a participant of the container object.
getCreatableObjectTypes()
static getAvailablePortfolioLinksForUserIds(array $a_owner_ids, ?string $a_back_url=null)
static _lookupFailedForObject(int $a_obj_id, ?array $a_user_ids=null)
setCompleted(bool $a_status)
editInfoObject(ilPropertyFormGUI $a_form=null)
static _isOnList(int $a_usr_id, int $a_obj_id)
language()
description: > Example for rendring a language glyph.
static _hasAccepted(int $a_usr_id, int $a_obj_id)
Check if user has accepted agreement.
parseCurrentBlock(string $block_name=self::DEFAULT_BLOCK)
Parses the given block.
static _lookupType(int $id, bool $reference=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const ORGU_POSITION_ACCESS
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
const LP_STATUS_COMPLETED
const TYPE_UNSUBSCRIBE_MEMBER
static _catchupWriteEvents(int $obj_id, int $usr_id, ?string $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
addHeaderAction()
Add header action menu.
static getInstance(int $obj_id)
static makeClickable(string $a_text, bool $detectGotoLinks=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _fieldsToInfoString(int $a_obj_id)
kindlyTo()
Combined validations and transformations for primitive data types that establish a baseline for furth...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
static _hasFields(int $a_container_id)
Check if there are any define fields.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static deleteRuns(int $a_container_id, int $a_user_id)
Class ilContainerStartObjectsGUI.
GUI class for object translation handling.
Class ilECSCourseSettings.
const CALENDAR_CONFIGURATION
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)
getLocalRoles(array $a_exclude=array())
downloadPdf(int $userId, int $objectId)
const BREADCRUMB_FULL_PATH
const BREADCRUMB_CRS_ONLY