5require_once
"./Services/Container/classes/class.ilContainerGUI.php";
40 $this->ctrl->saveParameter($this,array(
"ref_id",
"cmdClass"));
45 $this->lng->loadLanguageModule(
'crs');
47 $this->SEARCH_USER = 1;
48 $this->SEARCH_GROUP = 2;
49 $this->SEARCH_COURSE = 3;
57 case "deleteSubscribers":
61 case "addSubscribers":
62 $this->addSubscribers();
65 case "addFromWaitingList":
66 $this->addFromWaitingList();
69 case "removeFromWaitingList":
88 if(isset(
$_POST[
'btn_pressed'][
'deleteMembers']))
92 elseif(
$_POST[
'btn_pressed'][
'sendMailToSelectedUsers'])
104 if(isset(
$_GET[
'member_id']))
110 $_POST[
'member'] = array_unique(array_merge((array)
$_POST[
'members'],
113 (array)
$_POST[
'waiting'],
114 (array)
$_POST[
'subscribers'],
119 if (!count(
$_POST[
"member"]))
126 foreach(
$_POST[
"member"] as $usr_id)
131 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
132 require_once
'Modules/Course/classes/class.ilCourseMailTemplateTutorContext.php';
146 'ref_id' => $this->object->getRefId(),
163 #ilUtil::sendSuccess($this->lng->txt("action_aborted"),true);
176 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
179 $part->updateNotification(
$ilUser->getId(),
$ilSetting->get(
'mail_crs_admin_notification',
true));
181 parent::afterImport($a_new_object);
186 $this->ctrl->setCmd(
"view");
204 include_once
'./Modules/Course/classes/class.ilCourseContentGUI.php';
206 $this->ctrl->setCmdClass(get_class($course_content_obj));
207 $this->ctrl->setCmd(
'editUserTimings');
208 $this->ctrl->forwardCommand($course_content_obj);
229 if (strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui")
231 parent::viewObject();
236 include_once(
'Services/MetaData/classes/class.ilMDUtils.php');
240 if (
$ilCtrl->getNextClass() !=
"ilcolumngui")
242 include_once
'Services/Tracking/classes/class.ilLearningProgress.php';
244 $this->object->getRefId(),
'crs');
249 include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
250 $this->tabs_gui->clearTargets();
251 $this->ctrl->setReturn($this,
'view_content');
253 $this->ctrl->setCmdClass(get_class($agreement));
254 $this->ctrl->forwardCommand($agreement);
260 include_once
"Services/Container/classes/class.ilContainerStartObjectsContentGUI.php";
262 $stgui->enableDesktop($this->object->getAboStatus(), $this);
263 return $stgui->getHTML();
274 $ret = parent::renderObject();
279 include_once
'./Modules/Course/classes/class.ilCourseContentGUI.php';
282 $this->ctrl->setCmdClass(get_class($course_content_obj));
283 $this->ctrl->forwardCommand($course_content_obj);
291 return parent::renderObject();
301 $this->ctrl->setCmd(
"showSummary");
302 $this->ctrl->setCmdClass(
"ilinfoscreengui");
315 include_once(
'Services/MetaData/classes/class.ilMDUtils.php');
318 $this->tabs_gui->setTabActive(
'info_short');
320 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
321 include_once
'Modules/Course/classes/class.ilCourseFile.php';
326 $info->enablePrivateNotes();
327 $info->enableFeedback();
329 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"]))
331 $info->enableNewsEditing();
334 if(strlen($this->object->getImportantInformation()) or
335 strlen($this->object->getSyllabus()) or
338 $info->addSection($this->lng->txt(
'crs_general_informations'));
341 if(strlen($this->object->getImportantInformation()))
343 $info->addProperty($this->lng->txt(
'crs_important_info'),
347 if(strlen($this->object->getSyllabus()))
349 $info->addProperty($this->lng->txt(
'crs_syllabus'), nl2br(
355 $tpl =
new ilTemplate(
'tpl.event_info_file.html',
true,
true,
'Modules/Course');
357 foreach($files as
$file)
359 $tpl->setCurrentBlock(
"files");
360 $this->ctrl->setParameter($this,
'file_id',
$file->getFileId());
361 $tpl->setVariable(
"DOWN_LINK",$this->ctrl->getLinkTarget($this,
'sendfile'));
362 $tpl->setVariable(
"DOWN_NAME",
$file->getFileName());
363 $tpl->setVariable(
"DOWN_INFO_TXT",$this->lng->txt(
'crs_file_size_info'));
364 $tpl->setVariable(
"DOWN_SIZE",
$file->getFileSize());
365 $tpl->setVariable(
"TXT_BYTES",$this->lng->txt(
'bytes'));
366 $tpl->parseCurrentBlock();
368 $info->addProperty($this->lng->txt(
'crs_file_download'),
372 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
374 $record_gui->setInfoObject(
$info);
375 $record_gui->parse();
378 $info->addMetaDataSections($this->object->getId(),0, $this->object->getType());
381 if($this->object->hasContactData())
383 $info->addSection($this->lng->txt(
"crs_contact"));
385 if(strlen($this->object->getContactName()))
387 $info->addProperty($this->lng->txt(
"crs_contact_name"),
388 $this->object->getContactName());
390 if(strlen($this->object->getContactResponsibility()))
392 $info->addProperty($this->lng->txt(
"crs_contact_responsibility"),
393 $this->object->getContactResponsibility());
395 if(strlen($this->object->getContactPhone()))
397 $info->addProperty($this->lng->txt(
"crs_contact_phone"),
398 $this->object->getContactPhone());
400 if($this->object->getContactEmail())
402 include_once
'./Modules/Course/classes/class.ilCourseMailTemplateMemberContext.php';
403 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
405 $emails = split(
",",$this->object->getContactEmail());
406 foreach ($emails as $email) {
407 $email = trim($email);
408 $etpl =
new ilTemplate(
"tpl.crs_contact_email.html",
true,
true ,
'Modules/Course');
412 $info,
'showSummary', array(),
420 'ref_id' => $this->object->getRefId(),
425 $etpl->setVariable(
"CONTACT_EMAIL", $email);
426 $mailString .= $etpl->get().
"<br />";
428 $info->addProperty($this->lng->txt(
"crs_contact_email"), $mailString);
430 if(strlen($this->object->getContactConsultation()))
432 $info->addProperty($this->lng->txt(
"crs_contact_consultation"),
433 nl2br($this->object->getContactConsultation()));
439 $conts = $parts->getContacts();
440 if (count($conts) > 0)
442 $info->addSection($this->lng->txt(
"crs_mem_contacts"));
443 foreach ($conts as $c)
445 include_once(
"./Services/User/classes/class.ilPublicUserProfileGUI.php");
447 $pgui->setBackUrl($this->ctrl->getLinkTargetByClass(
"ilinfoscreengui"));
448 $pgui->setEmbedded(
true);
449 $info->addProperty(
"", $pgui->getHTML());
460 $this->lng->loadLanguageModule(
"rep");
461 $info->addSection($this->lng->txt(
"rep_activation_availability"));
462 $info->showLDAPRoleGroupMappingInfo();
465 if($this->object->getActivationUnlimitedStatus())
467 $info->addProperty($this->lng->txt(
"rep_activation_access"),
468 $this->lng->txt(
'crs_visibility_limitless'));
472 $info->addProperty($this->lng->txt(
'rep_activation_access'),
478 switch($this->object->getSubscriptionLimitationType())
481 $txt = $this->lng->txt(
"crs_info_reg_deactivated");
485 switch($this->object->getSubscriptionType())
488 $txt = $this->lng->txt(
"crs_info_reg_confirmation");
491 $txt = $this->lng->txt(
"crs_info_reg_direct");
494 $txt = $this->lng->txt(
"crs_info_reg_password");
500 $info->addProperty($this->lng->txt(
"crs_info_reg"),
$txt);
505 if($this->object->getSubscriptionUnlimitedStatus())
507 $info->addProperty($this->lng->txt(
"crs_reg_until"),
508 $this->lng->txt(
'crs_unlimited'));
510 elseif($this->object->getSubscriptionStart() < time())
512 $info->addProperty($this->lng->txt(
"crs_reg_until"),
513 $this->lng->txt(
'crs_to').
' '.
516 elseif($this->object->getSubscriptionStart() > time())
518 $info->addProperty($this->lng->txt(
"crs_reg_until"),
519 $this->lng->txt(
'crs_from').
' '.
522 if ($this->object->isSubscriptionMembershipLimited())
524 if($this->object->getSubscriptionMinMembers())
527 $this->lng->txt(
"mem_min_users"),
528 $this->object->getSubscriptionMinMembers()
531 if($this->object->getSubscriptionMaxMembers())
533 include_once
'./Modules/Course/classes/class.ilObjCourseAccess.php';
537 $this->lng->txt(
'mem_free_places'),
538 $reg_info[
'reg_info_free_places']
544 if($this->object->getCancellationEnd())
546 $info->addProperty($this->lng->txt(
'crs_cancellation_end'),
550 if($this->object->getCourseStart())
552 $info->addProperty($this->lng->txt(
'crs_period'),
554 $this->object->getCourseStart(),
555 $this->object->getCourseEnd()
564 $info->addProperty($this->lng->txt(
"crs_archive"),
571 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
574 include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
577 include_once(
'Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
581 $this->lng->loadLanguageModule(
'ps');
582 $info->addSection($this->lng->txt(
'crs_user_agreement_info'));
583 $info->addProperty($this->lng->txt(
'ps_export_data'),$field_info->exportableFieldsToInfoString());
587 $info->addProperty($this->lng->txt(
'ps_crs_user_fields'),$fields);
591 $info->enableLearningProgress(
true);
594 $this->ctrl->forwardCommand(
$info);
602 include_once
"Services/Membership/classes/class.ilMembershipNotifications.php";
604 if($noti->canCurrentUserEdit())
608 $noti->activateUser();
612 $noti->deactivateUser();
616 $this->ctrl->redirect($this,
"");
627 include_once
'Modules/Course/classes/class.ilCourseFile.php';
639 $this->tabs_gui->setTabActive(
'settings');
640 $this->tabs_gui->setSubTabActive(
'crs_info_settings');
646 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.edit_info.html',
'Modules/Course');
647 $this->tpl->setVariable(
'INFO_TABLE',$a_form->getHTML());
654 foreach($files as
$file)
656 $table_data[
'id'] =
$file->getFileId();
657 $table_data[
'filename'] =
$file->getFileName();
658 $table_data[
'filetype'] =
$file->getFileType();
659 $table_data[
'filesize'] =
$file->getFileSize();
661 $rows[] = $table_data;
664 include_once(
"./Modules/Course/classes/class.ilCourseInfoFileTableGUI.php");
666 $table_gui->setTitle($this->lng->txt(
"crs_info_download"));
667 $table_gui->setData($rows);
668 $table_gui->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
669 $table_gui->addMultiCommand(
"confirmDeleteInfoFiles", $this->lng->txt(
"delete"));
670 $table_gui->setSelectAllCheckbox(
"file_id");
671 $this->tpl->setVariable(
'INFO_FILE_TABLE',$table_gui->getHTML());
686 if(!count(
$_POST[
'file_id']))
694 $this->tabs_gui->setTabActive(
'settings');
695 $this->tabs_gui->setSubTabActive(
'crs_info_settings');
697 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
701 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"deleteInfoFiles"));
702 $c_gui->setHeaderText($this->lng->txt(
"info_delete_sure"));
703 $c_gui->setCancel($this->lng->txt(
"cancel"),
"editInfo");
704 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"deleteInfoFiles");
707 include_once(
'Modules/Course/classes/class.ilCourseFile.php');
708 foreach(
$_POST[
"file_id"] as $file_id)
711 $c_gui->addItem(
"file_id[]", $file_id,
$file->getFileName());
714 $this->tpl->setContent($c_gui->getHTML());
725 if(!count(
$_POST[
'file_id']))
731 include_once(
'Modules/Course/classes/class.ilCourseFile.php');
733 foreach(
$_POST[
'file_id'] as $file_id)
736 if($this->object->getId() ==
$file->getCourseId())
755 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
757 $form->setFormAction($this->ctrl->getFormAction($this,
'updateInfo'));
758 $form->setMultipart(
true);
759 $form->setTitle($this->lng->txt(
'crs_general_info'));
760 $form->addCommandButton(
'updateInfo',$this->lng->txt(
'save'));
761 $form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
764 $area->setValue($this->object->getImportantInformation());
767 $form->addItem($area);
770 $area->setValue($this->object->getSyllabus());
773 $form->addItem($area);
776 $section->setTitle($this->lng->txt(
'crs_info_download'));
780 $file->enableFileNameSelection(
'file_name');
781 $form->addItem(
$file);
784 $section->setTitle($this->lng->txt(
'crs_contact'));
788 $text->setValue($this->object->getContactName());
790 $text->setMaxLength(70);
791 $form->addItem(
$text);
793 $text =
new ilTextInputGUI($this->lng->txt(
'crs_contact_responsibility'),
'contact_responsibility');
794 $text->setValue($this->object->getContactResponsibility());
796 $text->setMaxLength(70);
797 $form->addItem(
$text);
800 $text->setValue($this->object->getContactPhone());
802 $text->setMaxLength(40);
803 $form->addItem(
$text);
806 $text->setValue($this->object->getContactEmail());
807 $text->setInfo($this->lng->txt(
'crs_contact_email_info'));
809 $text->setMaxLength(255);
810 $form->addItem(
$text);
812 $area =
new ilTextAreaInputGUI($this->lng->txt(
'crs_contact_consultation'),
'contact_consultation');
813 $area->setValue($this->object->getContactConsultation());
816 $form->addItem($area);
818 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
820 $this->record_gui->setPropertyForm($form);
821 $this->record_gui->parse();
832 include_once
'Modules/Course/classes/class.ilCourseFile.php';
834 $file_obj->setCourseId($this->object->getId());
835 $file_obj->setFileName(strlen(
$_POST[
'file_name']) ?
837 $_FILES[
'file'][
'name']);
838 $file_obj->setFileSize($_FILES[
'file'][
'size']);
839 $file_obj->setFileType($_FILES[
'file'][
'type']);
840 $file_obj->setTemporaryName($_FILES[
'file'][
'tmp_name']);
841 $file_obj->setErrorCode($_FILES[
'file'][
'error']);
857 $file_obj->validate();
858 $this->
object->validateInfoSettings();
859 if(strlen(
$ilErr->getMessage()))
861 $error =
$ilErr->getMessage();
867 if(!$this->record_gui->importEditFormPostValues())
882 $this->
object->update();
884 $this->record_gui->writeEditForm();
888 include_once
'Modules/Course/classes/class.ilECSCourseSettings.php';
890 $ecs->handleContentUpdate();
909 $period = $form->getItemByPostVar(
"access_period");
910 $sub_period = $form->getItemByPostVar(
"subscription_period");
912 if((
int)
$_POST[
'activation_type'])
920 $this->
object->setOfflineStatus(!(
bool)$_POST[
'activation_online']);
921 $this->
object->setActivationStart($period->getStart()->get(
IL_CAL_UNIX));
922 $this->
object->setActivationEnd($period->getEnd()->get(
IL_CAL_UNIX));
923 $this->
object->setActivationVisibility((
int)$_POST[
'activation_visibility']);
925 $sub_type = (int)
$_POST[
'subscription_type'];
928 $this->
object->setSubscriptionType($sub_type);
930 if((
int)
$_POST[
'subscription_limitation_type'])
947 $this->
object->setSubscriptionStart($sub_period->getStart()->get(
IL_CAL_UNIX));
948 $this->
object->setSubscriptionEnd($sub_period->getEnd()->get(
IL_CAL_UNIX));
950 $this->
object->enableRegistrationAccessCode((
int) $_POST[
'reg_code_enabled']);
953 $cancel_end = $form->getItemByPostVar(
"cancel_end");
954 if(
$_POST[$cancel_end->getActivationPostVar()])
961 $this->
object->setCancellationEnd(
null);
964 $this->
object->enableSubscriptionMembershipLimitation((
int) $_POST[
'subscription_membership_limitation']);
965 $this->
object->setSubscriptionMaxMembers((
int) $_POST[
'subscription_max']);
966 $this->
object->setSubscriptionMinMembers((
int)$_POST[
'subscription_min']);
968 $old_autofill = $this->
object->hasWaitingListAutoFill();
970 switch((
int) $_POST[
'waiting_list'])
973 $this->
object->enableWaitingList(
true);
974 $this->
object->setWaitingListAutoFill(
true);
978 $this->
object->enableWaitingList(
true);
979 $this->
object->setWaitingListAutoFill(
false);
983 $this->
object->enableWaitingList(
false);
984 $this->
object->setWaitingListAutoFill(
false);
988 #$this->object->setSubscriptionNotify((int) $_POST['subscription_notification']);
990 if((
bool)$_POST[
"period_tgl"])
992 $crs_period = $form->getItemByPostVar(
"period");
993 $this->
object->setCourseStart($crs_period->getStart());
994 $this->
object->setCourseEnd($crs_period->getEnd());
998 $this->
object->setCourseStart(
null);
999 $this->
object->setCourseEnd(
null);
1002 $this->
object->setViewMode((
int) $_POST[
'view_mode']);
1010 $this->
object->setOrderType($form->getInput(
'sorting'));
1019 $this->
object->setAboStatus((
int) $_POST[
'abo']);
1020 $this->
object->setShowMembers((
int) $_POST[
'show_members']);
1021 $this->
object->setMailToMembersType((
int) $_POST[
'mail_type']);
1023 $this->
object->enableSessionLimit((
int) $_POST[
'sl']);
1024 $this->
object->setNumberOfPreviousSessions(is_numeric(
$_POST[
'sp']) ? (
int)
$_POST[
'sp'] : -1 );
1025 $this->
object->setNumberOfnextSessions(is_numeric(
$_POST[
'sn']) ? (
int)
$_POST[
'sn'] : -1 );
1027 $this->
object->setAutoNotification($_POST[
'auto_notification'] == 1 ?
true :
false);
1030 $show_lp_sync_confirmation =
false;
1033 if(isset(
$_POST[
'status_dt']))
1038 $show_lp_sync_confirmation =
true;
1042 $this->
object->setStatusDetermination((
int)$_POST[
'status_dt']);
1046 if($this->object->validate())
1048 $this->
object->update();
1051 if(!$old_autofill &&
1052 $this->object->hasWaitingListAutoFill())
1054 $this->
object->handleAutoFill();
1058 require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
1065 include_once
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
1067 $this->object->getId(),
1079 include_once
'Modules/Course/classes/class.ilECSCourseSettings.php';
1081 if(!$ecs->handleSettingsUpdate())
1087 if($show_lp_sync_confirmation)
1106 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1108 $cgui->setFormAction($this->ctrl->getFormAction($this,
"setLPSync"));
1109 $cgui->setHeaderText($this->lng->txt(
"crs_status_determination_sync"));
1110 $cgui->setCancel($this->lng->txt(
"cancel"),
"edit");
1111 $cgui->setConfirm($this->lng->txt(
"confirm"),
"setLPSync");
1113 $tpl->setContent($cgui->getHTML());
1119 $this->
object->update();
1121 $this->
object->syncMembersStatusWithLP();
1124 $this->ctrl->redirect($this,
"edit");
1135 parent::editObject();
1138 $this->tabs_gui->setSubTabActive(
'crs_settings');
1150 include_once(
'./Services/Form/classes/class.ilPropertyFormGUI.php');
1151 include_once(
'./Services/Calendar/classes/class.ilDateTime.php');
1154 $form->setTitle($this->lng->txt(
'crs_edit'));
1156 $form->addCommandButton(
'update',$this->lng->txt(
'save'));
1157 $form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
1159 $form->setFormAction($this->ctrl->getFormAction($this,
'update'));
1163 $title->setSubmitFormOnEnter(
true);
1164 $title->setValue($this->object->getTitle());
1167 $title->setRequired(
true);
1168 $form->addItem($title);
1172 $desc->setValue($this->object->getLongDescription());
1175 $form->addItem($desc);
1182 $cdur_tgl->setInfo($this->lng->txt(
'crs_period_info'));
1183 $cdur_tgl->setChecked($this->object->getCourseStart());
1184 $form->addItem($cdur_tgl);
1186 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
1188 $cdur->setStartText($this->lng->txt(
'crs_start'));
1189 $cdur->setEndText($this->lng->txt(
'crs_end'));
1190 if($this->object->getCourseStart())
1192 $cdur->setStart($this->object->getCourseStart());
1194 if($this->object->getCourseStart())
1196 $cdur->setEnd($this->object->getCourseEnd());
1198 $cdur_tgl->addSubItem($cdur);
1203 $this->lng->loadLanguageModule(
'rep');
1206 $section->setTitle($this->lng->txt(
'rep_activation_availability'));
1209 $online =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_online'),
'activation_online');
1210 $online->setChecked(!$this->object->getOfflineStatus());
1211 $online->setInfo($this->lng->txt(
'crs_activation_online_info'));
1212 $form->addItem($online);
1214 $act_type =
new ilCheckboxInputGUI($this->lng->txt(
'crs_visibility_until'),
'activation_type');
1215 $act_type->setInfo($this->lng->txt(
'crs_visibility_until_info'));
1219 $this->tpl->addJavaScript(
'./Services/Form/js/date_duration.js');
1220 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
1222 $dur->setShowTime(
true);
1224 $dur->setStartText($this->lng->txt(
'rep_activation_limited_start'));
1226 $dur->setEndText($this->lng->txt(
'rep_activation_limited_end'));
1227 $act_type->addSubItem($dur);
1229 $visible =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_limited_visibility'),
'activation_visibility');
1230 $visible->setInfo($this->lng->txt(
'crs_activation_limited_visibility_info'));
1231 $visible->setChecked($this->object->getActivationVisibility());
1232 $act_type->addSubItem($visible);
1234 $form->addItem($act_type);
1238 $section->setTitle($this->lng->txt(
'crs_reg'));
1241 $reg_proc =
new ilRadioGroupInputGUI($this->lng->txt(
'crs_registration_type'),
'subscription_type');
1242 $reg_proc->setValue(
1244 ? $this->object->getSubscriptionType()
1249 $reg_proc->addOption($opt);
1254 $pass->setInfo($this->lng->txt(
'crs_reg_password_info'));
1255 $pass->setSubmitFormOnEnter(
true);
1257 $pass->setMaxLength(12);
1258 $pass->setValue($this->object->getSubscriptionPassword());
1260 $opt->addSubItem(
$pass);
1261 $reg_proc->addOption($opt);
1264 $opt->setInfo($this->lng->txt(
'crs_registration_confirmation_info'));
1265 $reg_proc->addOption($opt);
1268 $opt->setInfo($this->lng->txt(
'crs_registration_deactivated'));
1269 $reg_proc->addOption($opt);
1271 $form->addItem($reg_proc);
1275 $reg_code =
new ilCheckboxInputGUI($this->lng->txt(
'crs_reg_code'),
'reg_code_enabled');
1276 $reg_code->setChecked($this->object->isRegistrationAccessCodeEnabled());
1277 $reg_code->setValue(1);
1278 $reg_code->setInfo($this->lng->txt(
'crs_reg_code_enabled_info'));
1286 #$link = new ilNonEditableValueGUI($this->lng->txt('crs_reg_code_link'));
1288 if(!$this->object->getRegistrationAccessCode())
1290 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
1294 $reg_link->setValue($this->object->getRegistrationAccessCode());
1295 $form->addItem($reg_link);
1298 include_once
'./Services/Link/classes/class.ilLink.php';
1299 $val =
ilLink::_getLink($this->object->getRefId(),$this->object->getType(),array(),
'_rcode'.$this->object->getRegistrationAccessCode());
1300 $link->setHTML(
'<font class="small">'.$val.
'</font>');
1301 $reg_code->addSubItem($link);
1303 $form->addItem($reg_code);
1307 $time_limit =
new ilCheckboxInputGUI($this->lng->txt(
'crs_registration_limited'),
'subscription_limitation_type');
1308 $time_limit->setInfo($this->lng->txt(
'crs_registration_limited_info'));
1311 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
1313 $sdur->setShowTime(
true);
1315 $sdur->setStartText($this->lng->txt(
'crs_start'));
1317 $sdur->setEndText($this->lng->txt(
'crs_end'));
1319 $time_limit->addSubItem($sdur);
1320 $form->addItem($time_limit);
1323 $cancel =
new ilDateTimeInputGUI($this->lng->txt(
'crs_cancellation_end'),
'cancel_end');
1324 $cancel->setInfo($this->lng->txt(
'crs_cancellation_end_info'));
1325 $cancel_end = $this->
object->getCancellationEnd();
1326 $cancel->enableDateActivation(
'',
'cancel_end_tgl', (
bool)$cancel_end);
1329 $cancel->setDate($cancel_end);
1331 $form->addItem($cancel);
1334 $lim =
new ilCheckboxInputGUI($this->lng->txt(
'crs_subscription_max_members_short'),
'subscription_membership_limitation');
1335 $lim->setInfo($this->lng->txt(
'crs_subscription_max_members_short_info'));
1337 $lim->setChecked($this->object->isSubscriptionMembershipLimited());
1340 $min->setSubmitFormOnEnter(
true);
1342 $min->setMaxLength(4);
1343 $min->setValue($this->object->getSubscriptionMinMembers() ? $this->object->getSubscriptionMinMembers() :
'');
1344 $min->setTitle($this->lng->txt(
'crs_subscription_min_members'));
1345 $min->setInfo($this->lng->txt(
'crs_subscription_min_members_info'));
1346 $lim->addSubItem($min);
1349 $max->setSubmitFormOnEnter(
true);
1351 $max->setMaxLength(4);
1352 $max->setValue($this->object->getSubscriptionMaxMembers() ? $this->object->getSubscriptionMaxMembers() :
'');
1353 $max->setTitle($this->lng->txt(
'crs_subscription_max_members'));
1354 $max->setInfo($this->lng->txt(
'crs_reg_max_info'));
1356 $lim->addSubItem($max);
1378 $wait->addOption($option);
1380 $option =
new ilRadioOption($this->lng->txt(
'crs_waiting_list_no_autofill'), 1);
1381 $option->setInfo($this->lng->txt(
'crs_wait_info'));
1382 $wait->addOption($option);
1384 $option =
new ilRadioOption($this->lng->txt(
'crs_waiting_list_autofill'), 2);
1385 $option->setInfo($this->lng->txt(
'crs_waiting_list_autofill_info'));
1386 $wait->addOption($option);
1388 if($this->object->hasWaitingListAutoFill())
1392 else if($this->object->enabledWaitingList())
1397 $lim->addSubItem($wait);
1399 $form->addItem($lim);
1403 $pres->setTitle($this->lng->txt(
'crs_view_mode'));
1405 $form->addItem($pres);
1409 $view_type->setValue($this->object->getViewMode());
1412 $opts->setInfo($this->lng->txt(
'cntr_view_info_sessions'));
1413 $view_type->addOption($opts);
1418 $sess->setChecked($this->object->isSessionLimitEnabled());
1419 $sess->setInfo($this->lng->txt(
'sess_limit_info'));
1422 #$prev->setSubmitFormOnEnter(true);
1423 $prev->setMinValue(0);
1424 $prev->setValue($this->object->getNumberOfPreviousSessions() == -1 ?
1426 $this->object->getNumberOfPreviousSessions()
1429 $prev->setMaxLength(3);
1430 $sess->addSubItem($prev);
1433 #$next->setSubmitFormOnEnter(true);
1434 $next->setMinValue(0);
1435 $next->setValue($this->object->getNumberOfNextSessions() == -1 ?
1437 $this->object->getNumberOfnextSessions()
1440 $next->setMaxLength(3);
1441 $sess->addSubItem($next);
1443 $opts->addSubItem(
$sess);
1449 $optsi->setInfo($this->lng->txt(
'cntr_view_info_simple'));
1450 $view_type->addOption($optsi);
1453 $optbt->setInfo($this->lng->txt(
'cntr_view_info_by_type'));
1454 $view_type->addOption($optbt);
1457 $opto->setInfo($this->lng->txt(
'crs_view_info_objective'));
1458 $view_type->addOption($opto);
1461 $optt->setInfo($this->lng->txt(
'crs_view_info_timing'));
1462 $view_type->addOption($optt);
1464 $form->addItem($view_type);
1479 include_once(
"Services/Tracking/classes/class.ilObjUserTracking.php");
1482 include_once
'./Services/Object/classes/class.ilObjectLP.php';
1484 if($olp->getCurrentMode())
1487 $lp_status->setTitle($this->lng->txt(
'crs_course_status_of_users'));
1488 $form->addItem($lp_status);
1490 $lp_status_options =
new ilRadioGroupInputGUI($this->lng->txt(
'crs_status_determination'),
"status_dt");
1492 $lp_status_options->setValue($this->object->getStatusDetermination());
1494 $lp_option =
new ilRadioOption($this->lng->txt(
'crs_status_determination_lp'),
1496 $lp_status_options->addOption($lp_option);
1497 $lp_status_options->addOption(
new ilRadioOption($this->lng->txt(
'crs_status_determination_manual'),
1500 $form->addItem($lp_status_options);
1506 $feat->setTitle($this->lng->txt(
'obj_features'));
1507 $form->addItem($feat);
1509 include_once
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
1511 $this->object->getId(),
1523 $mem->setChecked($this->object->getShowMembers());
1524 $mem->setInfo($this->lng->txt(
'crs_show_members_info'));
1525 $form->addItem($mem);
1529 $mail_type->setValue($this->object->getMailToMembersType());
1532 $this->lng->txt(
'crs_mail_tutors_only_info'));
1533 $mail_type->addOption($mail_tutors);
1536 $this->lng->txt(
'crs_mail_all_info'));
1537 $mail_type->addOption($mail_all);
1538 $form->addItem($mail_type);
1546 $not =
new ilCheckboxInputGUI($this->lng->txt(
'crs_auto_notification'),
'auto_notification');
1548 $not->setInfo($this->lng->txt(
'crs_auto_notification_info'));
1549 $not->setChecked( $this->object->getAutoNotification() );
1550 $form->addItem($not);
1558 $desk =
new ilCheckboxInputGUI($this->lng->txt(
'crs_add_remove_from_desktop'),
'abo');
1559 $desk->setChecked($this->object->getAboStatus());
1560 $desk->setInfo($this->lng->txt(
'crs_add_remove_from_desktop_info'));
1561 $form->addItem($desk);
1565 include_once
'Modules/Course/classes/class.ilECSCourseSettings.php';
1567 $ecs->addSettingsToForm($form,
'crs');
1587 $this->tabs_gui->setTabActive(
'settings');
1594 $tpl->setContent($a_form->getHTML());
1599 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
1601 $form->setFormAction($this->ctrl->getFormAction($this));
1606 $form->addCommandButton(
'updateCourseIcons', $this->lng->txt(
'save'));
1613 include_once
'Modules/Course/classes/class.ilCourseFile.php';
1629 if($form->checkInput())
1634 if(
$_POST[
"cont_icon_delete"])
1636 $this->
object->removeCustomIcon();
1638 $this->
object->saveIcons($_FILES[
"cont_icon"][
'tmp_name']);
1642 $this->ctrl->redirect($this,
"editCourseIcons");
1645 $form->setValuesByPost();
1660 $this->tabs_gui->addSubTabTarget(
"crs_settings",
1661 $this->ctrl->getLinkTarget($this,
'edit'),
1662 "edit", get_class($this));
1664 $this->tabs_gui->addSubTabTarget(
"crs_info_settings",
1665 $this->ctrl->getLinkTarget($this,
'editInfo'),
1666 "editInfo", get_class($this));
1668 $this->tabs_gui->addSubTabTarget(
"preconditions",
1669 $this->ctrl->getLinkTargetByClass(
'ilConditionHandlerGUI',
'listConditions'),
1670 "",
"ilConditionHandlerGUI");
1672 $this->tabs_gui->addSubTabTarget(
"crs_start_objects",
1673 $this->ctrl->getLinkTargetByClass(
'ilContainerStartObjectsGUI',
'listStructure'),
1674 "listStructure", get_class($this));
1676 $this->tabs_gui->addSubTabTarget(
'groupings',
1677 $this->ctrl->getLinkTargetByClass(
'ilobjcoursegroupinggui',
'listGroupings'),
1682 if ($this->
ilias->getSetting(
"custom_icons"))
1684 $this->tabs_gui->addSubTabTarget(
"icon_settings",
1685 $this->ctrl->getLinkTarget($this,
'editCourseIcons'),
1686 "editCourseIcons", get_class($this));
1690 include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
1693 $this->tabs_gui->addSubTabTarget(
"crs_map_settings",
1694 $this->ctrl->getLinkTarget($this,
'editMapSettings'),
1695 "editMapSettings", get_class($this));
1699 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1700 include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
1704 $this->tabs_gui->addSubTabTarget(
'crs_custom_user_fields',
1705 $this->ctrl->getLinkTargetByClass(
'ilobjectcustomuserfieldsgui'),
1707 'ilobjectcustomuserfieldsgui');
1711 include_once
"Services/Certificate/classes/class.ilCertificate.php";
1714 $this->tabs_gui->addSubTabTarget(
1716 $this->ctrl->getLinkTargetByClass(
"ilcertificategui",
"certificateeditor"),
1717 "",
"ilcertificategui");
1722 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
1724 $this->tabs_gui->addSubTabTarget(
"crs_member_administration",
1725 $this->ctrl->getLinkTarget($this,
'members'),
1726 "members", get_class($this));
1728 $this->tabs_gui->addSubTabTarget(
"crs_members_groups",
1729 $this->ctrl->getLinkTargetByClass(
"ilCourseParticipantsGroupsGUI",
"show"),
1730 "",
"ilCourseParticipantsGroupsGUI");
1732 $this->tabs_gui->addSubTabTarget(
1733 'crs_members_gallery',
1734 $this->ctrl->getLinkTargetByClass(
'ilUsersGalleryGUI',
'view'),
1740 $this->object->getShowMembers() == $this->object->SHOW_MEMBERS_ENABLED
1743 $this->tabs_gui->addSubTabTarget(
1744 'crs_members_gallery',
1745 $this->ctrl->getLinkTargetByClass(
'ilUsersGalleryGUI',
'view'),
1752 include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
1755 $this->tabs_gui->addSubTabTarget(
"crs_members_map",
1756 $this->ctrl->getLinkTarget($this,
'membersMap'),
1757 "membersMap", get_class($this));
1760 $childs = (array)
$tree->getChildsByType($this->object->getRefId(),
'sess');
1761 if(count($childs) && $ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
1763 $this->tabs_gui->addSubTabTarget(
"events",
1764 $this->ctrl->getLinkTargetByClass(
'ilsessionoverviewgui',
'listSessions'),
1765 "",
'ilsessionoverviewgui');
1768 include_once
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
1771 $this->tabs_gui->addSubTabTarget(
'export_members',
1772 $this->ctrl->getLinkTargetByClass(
'ilmemberexportgui',
'show'),
1773 "",
'ilmemberexportgui');
1788 && !$this->isActiveAdministrationPanel())
1792 parent::showPossibleSubObjects();
1802 $this->
object->removeSmallIcon();
1803 $this->ctrl->redirect($this,
'editCourseIcons');
1813 $this->
object->removeBigIcon();
1814 $this->ctrl->redirect($this,
'editCourseIcons');
1825 $this->
object->removeTinyIcon();
1826 $this->ctrl->redirect($this,
'editCourseIcons');
1838 $a_new_object->getMemberObject()->updateNotification(
$ilUser->getId(),
$ilSetting->get(
'mail_crs_admin_notification',
true));
1840 $a_new_object->getMemberObject()->updateContact(
$ilUser->getId(),1);
1845 require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
1853 $this->ctrl->setParameter($this,
"ref_id", $a_new_object->
getRefId());
1855 $this->ctrl->getLinkTarget($this,
"edit",
"",
false,
false)));
1872 if(!count(
$_POST[
'archives']))
1875 $this->archiveObject();
1879 if(count(
$_POST[
'archives']) > 1)
1882 $this->archiveObject();
1887 $this->
object->initCourseArchiveObject();
1889 $abs_path = $this->
object->archives_obj->getArchiveFile((
int)
$_POST[
'archives'][0]);
1890 $basename = basename($abs_path);
1905 if(isset(
$_GET[
'admin_hide']))
1907 $ilUser->writePref(
'crs_admin_hide',(
int)
$_GET[
'admin_hide']);
1909 if(isset(
$_GET[
'tutor_hide']))
1911 $ilUser->writePref(
'crs_tutor_hide',(
int)
$_GET[
'tutor_hide']);
1913 if(isset(
$_GET[
'member_hide']))
1915 $ilUser->writePref(
'crs_member_hide',(
int)
$_GET[
'member_hide']);
1917 if(isset(
$_GET[
'subscriber_hide']))
1919 $ilUser->writePref(
'crs_subscriber_hide',(
int)
$_GET[
'subscriber_hide']);
1921 if(isset(
$_GET[
'wait_hide']))
1923 $ilUser->writePref(
'crs_wait_hide',(
int)
$_GET[
'wait_hide']);
1925 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
1928 if(isset(
$_GET[
'role_hide_'.$role_id]))
1930 $ilUser->writePref(
'crs_role_hide_'.$role_id,(
int)
$_GET[
'role_hide_'.$role_id]);
1937 if($this->show_tracking)
1939 include_once
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
1944 include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1947 if($privacy->enabledCourseAccessTimes())
1949 include_once(
'./Services/Tracking/classes/class.ilLearningProgress.php');
1953 $do_prtf = (is_array($selected_columns) &&
1954 in_array(
'prtf', $selected_columns) &&
1958 include_once
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
1960 $this->ctrl->getLinkTarget($this,
"members"));
1963 foreach((array) $ids as $usr_id)
1966 $tmp_data[
'firstname'] = $name[
'firstname'];
1967 $tmp_data[
'lastname'] = $name[
'lastname'];
1969 $tmp_data[
'passed'] = $this->
object->getMembersObject()->hasPassed($usr_id) ? 1 : 0;
1972 $tmp_data[
'passed_info'] = $this->
object->getMembersObject()->getPassedInfo($usr_id);
1974 $tmp_data[
'notification'] = $this->
object->getMembersObject()->isNotificationEnabled($usr_id) ? 1 : 0;
1975 $tmp_data[
'blocked'] = $this->
object->getMembersObject()->isBlocked($usr_id) ? 1 : 0;
1977 $tmp_data[
'contact'] = $this->
object->getMembersObject()->isContact($usr_id) ? 1 : 0;
1980 $tmp_data[
'usr_id'] = $usr_id;
1982 if($this->show_tracking)
1984 if(in_array($usr_id,$completed))
1988 elseif(in_array($usr_id,$in_progress))
1992 elseif(in_array($usr_id,
$failed))
2002 if($privacy->enabledCourseAccessTimes())
2004 if(isset($progress[$usr_id][
'ts']) and $progress[$usr_id][
'ts'])
2006 $tmp_data[
'access_ut'] = $progress[$usr_id][
'ts'];
2011 $tmp_data[
'access_ut'] = 0;
2012 $tmp_data[
'access_time'] = $this->lng->txt(
'no_date');
2018 $tmp_data[
'prtf'] = $all_prtf[$usr_id];
2021 $members[$usr_id] = $tmp_data;
2023 return $members ? $members : array();
2039 include_once(
'./Modules/Course/classes/class.ilCourseParticipants.php');
2040 include_once(
'./Modules/Course/classes/class.ilCourseParticipantsTableGUI.php');
2043 if(isset(
$_GET[
'member_table_nav']))
2050 include_once
'./Services/Tracking/classes/class.ilObjUserTracking.php';
2053 if($this->show_tracking)
2055 include_once(
'./Services/Object/classes/class.ilObjectLP.php');
2057 $this->show_tracking = $olp->isActive();
2060 include_once(
'./Services/Object/classes/class.ilObjectActivation.php');
2065 $this->tabs_gui->setTabActive(
'members');
2066 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
2068 $this->tpl->addBlockfile(
'ADM_CONTENT',
'adm_content',
'tpl.crs_edit_members.html',
'Modules/Course');
2069 $this->tpl->setVariable(
'FORMACTION',$this->ctrl->getFormAction($this));
2072 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
2078 'auto_complete_name' =>
$lng->txt(
'user'),
2079 'user_type' => $this->getLocalRoles(),
2080 'submit_name' =>
$lng->txt(
'add')
2085 $ilToolbar->addSeparator();
2088 $ilToolbar->addButton($this->lng->txt(
"crs_search_users"),
2089 $this->ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
'start'));
2092 $ilToolbar->addSeparator();
2095 $ilToolbar->addButton($this->lng->txt(
"crs_print_list"),
2096 $this->ctrl->getLinkTarget($this,
'printMembers'));
2107 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
2109 if(count($wait = $waiting_list->getAllUsers()))
2111 include_once(
'./Services/Membership/classes/class.ilWaitingListTableGUI.php');
2112 if(
$ilUser->getPref(
'crs_wait_hide'))
2115 $this->ctrl->setParameter($this,
'wait_hide',0);
2116 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2117 $this->lng->txt(
'show'));
2118 $this->ctrl->clearParameters($this);
2123 $this->ctrl->setParameter($this,
'wait_hide',1);
2124 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2125 $this->lng->txt(
'hide'));
2126 $this->ctrl->clearParameters($this);
2128 $table_gui->setUsers($wait);
2129 $table_gui->setTitle($this->lng->txt(
'crs_waiting_list'),
'icon_usr.svg',$this->lng->txt(
'crs_waiting_list'));
2130 $this->tpl->setVariable(
'TABLE_WAIT',$table_gui->getHTML());
2136 include_once(
'./Services/Membership/classes/class.ilSubscriberTableGUI.php');
2137 if(
$ilUser->getPref(
'crs_subscriber_hide'))
2140 $this->ctrl->setParameter($this,
'subscriber_hide',0);
2141 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2142 $this->lng->txt(
'show'));
2143 $this->ctrl->clearParameters($this);
2148 $this->ctrl->setParameter($this,
'subscriber_hide',1);
2149 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2150 $this->lng->txt(
'hide'));
2151 $this->ctrl->clearParameters($this);
2153 $table_gui->readSubscriberData();
2154 $table_gui->setTitle($this->lng->txt(
'group_new_registrations'),
'icon_usr.svg',$this->lng->txt(
'group_new_registrations'));
2155 $this->tpl->setVariable(
'TABLE_SUB',$table_gui->getHTML());
2160 if($rbacreview->getNumberOfAssignedUsers(array($this->object->getDefaultAdminRole())))
2166 $ilAccess->checkAccess(
"edit_permission",
'', $this->object->getRefId()) or
2169 if(
$ilUser->getPref(
'crs_admin_hide'))
2176 $this->timings_enabled,
2178 $this->object->getDefaultAdminRole(),
2181 $this->ctrl->setParameter($this,
'admin_hide',0);
2182 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2183 $this->lng->txt(
'show'));
2184 $this->ctrl->clearParameters($this);
2193 $this->timings_enabled,
2195 $this->object->getDefaultAdminRole(),
2198 $this->ctrl->setParameter($this,
'admin_hide',1);
2199 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2200 $this->lng->txt(
'hide'));
2201 $this->ctrl->clearParameters($this);
2203 $table_gui->setTitle($this->lng->txt(
'crs_administrators'),
'icon_usr.svg',$this->lng->txt(
'crs_administrators'));
2204 $table_gui->parse();
2205 $this->tpl->setVariable(
'ADMINS',$table_gui->getHTML());
2207 if($rbacreview->getNumberOfAssignedUsers(array($this->object->getDefaultTutorRole())))
2209 if(
$ilUser->getPref(
'crs_tutor_hide'))
2216 $this->timings_enabled,
2218 $this->object->getDefaultTutorRole(),
2221 $this->ctrl->setParameter($this,
'tutor_hide',0);
2222 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2223 $this->lng->txt(
'show'));
2224 $this->ctrl->clearParameters($this);
2233 $this->timings_enabled,
2235 $this->object->getDefaultTutorRole(),
2238 $this->ctrl->setParameter($this,
'tutor_hide',1);
2239 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2240 $this->lng->txt(
'hide'));
2241 $this->ctrl->clearParameters($this);
2243 $table_gui->setTitle($this->lng->txt(
'crs_tutors'),
'icon_usr.svg',$this->lng->txt(
'crs_tutors'));
2244 $table_gui->parse();
2245 $this->tpl->setVariable(
'TUTORS',$table_gui->getHTML());
2247 if($rbacreview->getNumberOfAssignedUsers(array($this->object->getDefaultMemberRole())))
2249 if(
$ilUser->getPref(
'crs_member_hide'))
2255 $this->show_tracking,
2256 $this->timings_enabled,
2258 $this->object->getDefaultMemberRole(),
2262 $this->ctrl->setParameter($this,
'member_hide',0);
2263 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2264 $this->lng->txt(
'show'));
2265 $this->ctrl->clearParameters($this);
2273 $this->show_tracking,
2274 $this->timings_enabled,
2276 $this->object->getDefaultMemberRole(),
2279 $this->ctrl->setParameter($this,
'member_hide',1);
2280 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
2281 $this->lng->txt(
'hide'));
2282 $this->ctrl->clearParameters($this);
2284 $table_gui->setTitle($this->lng->txt(
'crs_members'),
'icon_usr.svg',$this->lng->txt(
'crs_members'));
2285 $table_gui->parse();
2286 $this->tpl->setCurrentBlock(
'member_block');
2287 $this->tpl->setVariable(
'MEMBERS',$table_gui->getHTML());
2288 $this->tpl->parseCurrentBlock();
2294 if(!(
$GLOBALS[
'rbacreview']->getNumberOfAssignedUsers(array($role_id))))
2298 if(
$ilUser->getPref(
'crs_role_hide_'.$role_id))
2304 $this->show_tracking,
2305 $this->timings_enabled,
2310 $this->ctrl->setParameter($this,
'role_hide_'.$role_id,0);
2311 $table_gui->addHeaderCommand(
2312 $this->ctrl->getLinkTarget($this,
'members'),
2313 $this->lng->txt(
'show')
2315 $this->ctrl->clearParameters($this);
2323 $this->show_tracking,
2324 $this->timings_enabled,
2329 $this->ctrl->setParameter($this,
'role_hide_'.$role_id,1);
2330 $table_gui->addHeaderCommand(
2331 $this->ctrl->getLinkTarget($this,
'members'),
2332 $this->lng->txt(
'hide')
2334 $this->ctrl->clearParameters($this);
2338 $table_gui->parse();
2339 $this->tpl->setCurrentBlock(
'member_block');
2340 $this->tpl->setVariable(
'MEMBERS',$table_gui->getHTML());
2341 $this->tpl->parseCurrentBlock();
2345 $this->tpl->setVariable(
'TXT_SELECTED_USER',$this->lng->txt(
'crs_selected_users'));
2346 $this->tpl->setVariable(
'BTN_FOOTER_EDIT',$this->lng->txt(
'edit'));
2347 $this->tpl->setVariable(
'BTN_FOOTER_VAL',$this->lng->txt(
'remove'));
2348 $this->tpl->setVariable(
'BTN_FOOTER_MAIL',$this->lng->txt(
'crs_mem_send_mail'));
2366 $visible_members = array_intersect(array_unique((array)
$_POST[
'visible_member_ids']),$this->object->getMembersObject()->getAdmins());
2367 $passed = is_array(
$_POST[
'passed']) ?
$_POST[
'passed'] : array();
2368 $notification = is_array(
$_POST[
'notification']) ?
$_POST[
'notification'] : array();
2370 $contact = is_array(
$_POST[
'contact']) ?
$_POST[
'contact'] : array();
2387 $visible_members = array_intersect(array_unique((array)
$_POST[
'visible_member_ids']),$this->object->getMembersObject()->getTutors());
2388 $passed = is_array(
$_POST[
'passed']) ?
$_POST[
'passed'] : array();
2389 $notification = is_array(
$_POST[
'notification']) ?
$_POST[
'notification'] : array();
2391 $contact = is_array(
$_POST[
'contact']) ?
$_POST[
'contact'] : array();
2408 $visible_members = array_intersect(array_unique((array)
$_POST[
'visible_member_ids']),$this->object->getMembersObject()->getMembers());
2409 $passed = is_array(
$_POST[
'passed']) ?
$_POST[
'passed'] : array();
2410 $blocked = is_array(
$_POST[
'blocked']) ?
$_POST[
'blocked'] : array();
2412 $contact = is_array(
$_POST[
'contact']) ?
$_POST[
'contact'] : array();
2428 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
2433 $users = array_merge($users,$rbacreview->assignedUsers($role_id));
2436 $passed = is_array(
$_POST[
'passed']) ?
$_POST[
'passed'] : array();
2437 $blocked = is_array(
$_POST[
'blocked']) ?
$_POST[
'blocked'] : array();
2439 $contact = is_array(
$_POST[
'contact']) ?
$_POST[
'contact'] : array();
2455 include_once(
"Services/Tracking/classes/class.ilObjUserTracking.php");
2459 include_once
'./Services/Object/classes/class.ilObjectLP.php';
2463 include_once
'Services/Tracking/classes/class.ilLPMarks.php';
2464 $marks =
new ilLPMarks($this->object->getId(), $a_member_id);
2467 if($marks->getCompleted() != $a_has_passed)
2469 $marks->setCompleted($a_has_passed);
2473 include_once(
"./Modules/Course/classes/class.ilCourseAppEventListener.php");
2476 include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
2488 foreach($visible_members as $member_id)
2490 $this->
object->getMembersObject()->updatePassed($member_id,in_array($member_id,$passed),
true);
2497 $this->
object->getMembersObject()->updateNotification($member_id,in_array($member_id,$notification));
2499 $this->
object->getMembersObject()->updateContact($member_id,in_array($member_id,$contact) ? TRUE : FALSE);
2501 $this->
object->getMembersObject()->updateBlocked($member_id,
false);
2505 if($this->object->getMembersObject()->isBlocked($member_id) and !in_array($member_id,$blocked))
2507 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_UNBLOCK_MEMBER,$member_id);
2509 if(!$this->object->getMembersObject()->isBlocked($member_id) and in_array($member_id,$blocked))
2511 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_BLOCK_MEMBER,$member_id);
2513 $this->
object->getMembersObject()->updateNotification($member_id,
false);
2518 if(!$this->object->getMembersObject()->isAdmin($member_id) and !$this->object->getMembersObject()->isTutor($member_id))
2520 $this->
object->getMembersObject()->updateContact($member_id,FALSE);
2523 $this->
object->getMembersObject()->updateBlocked($member_id,in_array($member_id,$blocked));
2536 include_once
'./Modules/Course/classes/class.ilObjCourseGrouping.php';
2538 $this->
object->initWaitingList();
2539 if($this->object->waiting_list_obj->getCountUsers())
2542 $f_result = array();
2543 foreach($this->object->waiting_list_obj->getAllUsers() as $waiting_data)
2548 $waiting_list_ids[] = $waiting_data[
'usr_id'];
2552 $this->object->getId()) as $course_data)
2555 if($course_data[
'id'] != $this->object->getId() and
2556 $tmp_members->isGroupingMember($tmp_obj->getId(),$course_data[
'unique']))
2558 $message .= (
'<br /><span class="ilAlert">'.$this->lng->txt(
'crs_member_of').
' ');
2564 $f_result[$counter][] = $tmp_obj->getLastname().
', '.$tmp_obj->getFirstname().$message;
2565 $f_result[$counter][] = $tmp_obj->getLogin();
2586 $_POST[
'members'] = array((
int)
$_GET[
'member_id']);
2602 $post_participants = array_unique(array_merge((array)
$_POST[
'admins'],(array)
$_POST[
'tutors'],(array)
$_POST[
'members'], (array)
$_POST[
'roles']));
2604 $participants = array_intersect((array) $post_participants, (array) $real_participants);
2608 if(!count($participants))
2616 $this->tabs_gui->setTabActive(
'members');
2617 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
2619 include_once(
'./Modules/Course/classes/class.ilCourseEditParticipantsTableGUI.php');
2621 $table_gui->setTitle($this->lng->txt(
'crs_header_edit_members'),
'icon_usr.svg',$this->lng->txt(
'crs_header_edit_members'));
2624 $this->tpl->setContent($table_gui->getHTML());
2637 global $rbacsystem, $rbacreview,
$ilUser, $ilAccess;
2641 if(!count(
$_POST[
'participants']))
2648 $notifications =
$_POST[
'notification'] ?
$_POST[
'notification'] : array();
2649 $passed =
$_POST[
'passed'] ?
$_POST[
'passed'] : array();
2650 $blocked =
$_POST[
'blocked'] ?
$_POST[
'blocked'] : array();
2652 $contact =
$_POST[
'contact'] ?
$_POST[
'contact'] : array();
2656 $hasEditPermissionAccess =
2658 $ilAccess->checkAccess(
'edit_permission',
'',$this->object->getRefId()) or
2664 $assignableLocalCourseRoles = array();
2665 $courseAdminRoleId = $this->
object->getDefaultAdminRole();
2666 foreach ($this->object->getLocalCourseRoles(
false) as $title => $role_id)
2668 $assignableLocalCourseRoles[$role_id] = $title;
2672 foreach(
$_POST[
'participants'] as $usr_id)
2674 $memberIsCourseAdmin = $rbacreview->isAssigned($usr_id, $courseAdminRoleId);
2679 if (! $hasEditPermissionAccess && $memberIsCourseAdmin &&
2680 ! in_array($courseAdminRoleId,
$_POST[
'roles'][$usr_id])
2683 $_POST[
'roles'][$usr_id][] = $courseAdminRoleId;
2687 foreach ((array)
$_POST[
'roles'][$usr_id] as $role_id)
2689 if(!array_key_exists($role_id, $assignableLocalCourseRoles))
2695 if(!$hasEditPermissionAccess &&
2696 $role_id == $courseAdminRoleId &&
2697 !$memberIsCourseAdmin)
2709 if(!isset(
$_POST[
'roles'][$admin_id]))
2714 if(in_array($courseAdminRoleId,
$_POST[
'roles'][$admin_id]))
2729 foreach(
$_POST[
'participants'] as $usr_id)
2731 $this->
object->getMembersObject()->updateRoleAssignments($usr_id,(array)
$_POST[
'roles'][$usr_id]);
2734 $this->
object->getMembersObject()->updateNotification($usr_id,0);
2735 if(($this->object->getMembersObject()->isTutor($usr_id) or $this->object->getMembersObject()->isAdmin($usr_id)) and in_array($usr_id,$notifications))
2737 $this->
object->getMembersObject()->updateNotification($usr_id,1);
2740 $this->
object->getMembersObject()->updateBlocked($usr_id,0);
2741 if((!$this->object->getMembersObject()->isAdmin($usr_id) and !$this->object->getMembersObject()->isTutor($usr_id)) and in_array($usr_id,$blocked))
2743 $this->
object->getMembersObject()->updateBlocked($usr_id,1);
2745 $this->
object->getMembersObject()->updatePassed($usr_id,in_array($usr_id,$passed),
true);
2746 $this->
object->getMembersObject()->sendNotification(
2747 $this->object->getMembersObject()->NOTIFY_STATUS_CHANGED,
2752 (
$GLOBALS[
'rbacreview']->isAssigned($usr_id, $this->object->getDefaultAdminRole()) or
$GLOBALS[
'rbacreview']->isAssigned($usr_id, $this->object->getDefaultTutorRole())) and
2753 in_array($usr_id,$contact)
2756 $this->
object->getMembersObject()->updateContact($usr_id,TRUE);
2760 $this->
object->getMembersObject()->updateContact($usr_id,FALSE);
2767 $this->ctrl->redirect($this,
"members");
2782 if(!isset(
$_GET[
"member_id"]) or !$this->object->getMembersObject()->isAssigned((
int)
$_GET[
"member_id"]))
2784 $this->
ilias->raiseError($this->lng->txt(
"crs_no_valid_member_id_given"),$this->ilias->error_obj->MESSAGE);
2789 $passed = $this->
object->getMembersObject()->hasPassed((
int) $_GET[
'member_id']);
2790 $notify = $this->
object->getMembersObject()->isNotificationEnabled((
int) $_GET[
'member_id']);
2791 $blocked = $this->
object->getMembersObject()->isBlocked((
int) $_GET[
'member_id']);
2793 $this->
object->getMembersObject()->updateRoleAssignments((
int) $_GET[
'member_id'],
$_POST[
'roles']);
2794 $this->
object->getMembersObject()->updatePassed((
int) $_GET[
'member_id'],(
int)
$_POST[
'passed'],
true);
2795 $this->
object->getMembersObject()->updateNotification((
int) $_GET[
'member_id'],(
int)
$_POST[
'notification']);
2796 $this->
object->getMembersObject()->updateBlocked((
int) $_GET[
'member_id'],(
int)
$_POST[
'blocked']);
2798 if($passed != $this->object->getMembersObject()->hasPassed((
int)
$_GET[
'member_id']) or
2799 $notify != $this->object->getMembersObject()->isNotificationEnabled((
int)
$_GET[
'member_id']) or
2800 $blocked != $this->object->getMembersObject()->isBlocked((
int)
$_GET[
'member_id']))
2802 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_STATUS_CHANGED,(
int)
$_GET[
'member_id']);
2826 if(!count($a_usr_ids))
2833 foreach($a_usr_ids as $user_id)
2839 if($this->object->getMembersObject()->isAssigned($user_id))
2845 case $this->
object->getDefaultMemberRole():
2846 $this->
object->getMembersObject()->add($user_id,
IL_CRS_MEMBER);
2848 case $this->
object->getDefaultTutorRole():
2849 $this->
object->getMembersObject()->add($user_id,
IL_CRS_TUTOR);
2851 case $this->
object->getDefaultAdminRole():
2852 $this->
object->getMembersObject()->add($user_id,
IL_CRS_ADMIN);
2855 if(in_array($a_type,$this->object->getLocalCourseRoles(
true)))
2857 $this->
object->getMembersObject()->add($user_id,
IL_CRS_MEMBER);
2858 $this->
object->getMembersObject()->updateRoleAssignments($user_id,(array)$a_type);
2862 $GLOBALS[
'ilLog']->write(__METHOD__.
': Can\'t find role with role id "' . $a_type .
'" to assign users to.');
2868 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_ACCEPT_USER,$user_id);
2870 $this->
object->checkLPStatusSync($user_id);
2879 unset(
$_SESSION[
'crs_usr_search_result']);
2882 $this->ctrl->redirect($this,
'members');
2894 if(!count(
$_POST[
"waiting"]))
2901 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
2905 foreach(
$_POST[
"waiting"] as $user_id)
2911 if($this->object->getMembersObject()->isAssigned($user_id))
2915 $this->
object->getMembersObject()->add($user_id,
IL_CRS_MEMBER);
2916 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_ACCEPT_USER,$user_id);
2917 $waiting_list->removeFromList($user_id);
2919 $this->
object->checkLPStatusSync($user_id);
2950 if(!count(
$_POST[
'waiting']))
2957 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
2960 foreach(
$_POST[
"waiting"] as $user_id)
2962 $waiting_list->removeFromList($user_id);
2963 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_DISMISS_SUBSCRIBER,$user_id);
2984 if(!is_array(
$_SESSION[
"crs_delete_waiting_list_ids"]))
2992 $this->
object->initWaitingList();
2993 foreach(
$_SESSION[
'crs_delete_waiting_list_ids'] as $usr_id)
2995 $this->
object->waiting_list_obj->removeFromList($usr_id);
3006 global $rbacsystem,
$ilErr;
3011 if(!is_array(
$_POST[
"subscribers"]))
3019 if(!$this->object->getMembersObject()->assignSubscribers(
$_POST[
"subscribers"]))
3027 foreach(
$_POST[
"subscribers"] as $usr_id)
3029 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_ACCEPT_SUBSCRIBER,$usr_id);
3031 $this->
object->checkLPStatusSync($usr_id);
3046 if($this->object->isSubscriptionMembershipLimited() and $this->object->getSubscriptionMaxMembers() and
3047 $this->object->getSubscriptionMaxMembers() <= $this->object->getMembersObject()->getCountMembers())
3054 if($number = $this->object->getMembersObject()->autoFillSubscribers())
3072 $this->tabs_gui->setTabActive(
'members');
3082 if(!is_array(
$_POST[
"subscriber"]) or !count(
$_POST[
"subscriber"]))
3092 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.crs_editMembers.html",
'Modules/Course');
3098 $f_result = array();
3100 foreach(
$_POST[
"subscriber"] as $member_id)
3102 $member_data = $this->
object->getMembersObject()->getSubscriberData($member_id);
3107 $f_result[$counter][] = $tmp_obj->getLogin();
3108 $f_result[$counter][] = $tmp_obj->getFirstname();
3109 $f_result[$counter][] = $tmp_obj->getLastname();
3123 $this->tabs_gui->setTabActive(
'members');
3133 if(!is_array(
$_POST[
"waiting_list"]) or !count(
$_POST[
"waiting_list"]))
3143 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.crs_editMembers.html",
'Modules/Course');
3144 $this->
object->initWaitingList();
3150 $f_result = array();
3152 foreach(
$_POST[
"waiting_list"] as $wait_id)
3154 $user_data =& $this->
object->waiting_list_obj->getUser($wait_id);
3158 $f_result[$counter][] = $tmp_obj->getLogin();
3159 $f_result[$counter][] = $tmp_obj->getFirstname();
3160 $f_result[$counter][] = $tmp_obj->getLastname();
3161 #$f_result[$counter][] = strftime("%Y-%m-%d %R",$user_data["time"]);
3177 if($this->object->getMembersObject()->isLastAdmin(
$ilUser->getId()))
3184 $this->tabs_gui->setTabActive(
'crs_unsubscribe');
3186 include_once
"Services/Utilities/classes/class.ilConfirmationGUI.php";
3188 $cgui->setHeaderText($this->lng->txt(
'crs_unsubscribe_sure'));
3189 $cgui->setFormAction($this->ctrl->getFormAction($this));
3190 $cgui->setCancel($this->lng->txt(
"cancel"),
"cancel");
3191 $cgui->setConfirm($this->lng->txt(
"crs_unsubscribe"),
"performUnsubscribe");
3192 $this->tpl->setContent($cgui->getHTML());
3209 $this->
object->getMembersObject()->delete($this->
ilias->account->getId());
3210 $this->
object->getMembersObject()->sendUnsubscribeNotificationToAdmins($this->
ilias->account->getId());
3211 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_UNSUBSCRIBE,
$ilUser->getId());
3215 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $this->tree->getParentId($this->ref_id));
3216 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
3230 $participants = array_merge((array)
$_POST[
'admins'],(array)
$_POST[
'tutors'], (array)
$_POST[
'members'], (array)
$_POST[
'roles']);
3240 if(!$this->object->getMemberObject()->checkLastAdmin($participants))
3250 !$ilAccess->checkAccess(
'edit_permission',
'',$this->object->getRefId()) and
3254 foreach ($participants as $usr_id)
3257 if($part->isAdmin())
3267 $this->tabs_gui->setTabActive(
'members');
3268 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
3270 include_once(
'./Services/Utilities/classes/class.ilConfirmationGUI.php');
3272 $confirm->setFormAction($this->ctrl->getFormAction($this,
'deleteMembers'));
3273 $confirm->setHeaderText($this->lng->txt(
'crs_header_delete_members'));
3274 $confirm->setConfirm($this->lng->txt(
'confirm'),
'removeMembers');
3275 $confirm->setCancel($this->lng->txt(
'cancel'),
'members');
3277 foreach($participants as $usr_id)
3281 $confirm->addItem(
'participants[]',
3283 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
3287 $this->tpl->setContent($confirm->getHTML());
3299 global $rbacreview, $rbacsystem, $ilAccess,
$ilUser;
3303 if(!is_array(
$_POST[
"participants"]) or !count(
$_POST[
"participants"]))
3314 !$ilAccess->checkAccess(
'edit_permission',
'', $this->object->getRefId()) and
3319 $courseAdminRoleId =
null;
3320 foreach ($this->object->getLocalCourseRoles(
false) as $title => $role_id)
3322 if (substr($title, 0, 12) ==
'il_crs_admin')
3324 $courseAdminRoleId = $role_id;
3328 foreach (
$_POST[
'participants'] as $usr_id)
3330 if ($rbacreview->isAssigned($usr_id, $courseAdminRoleId))
3339 if(!$this->object->getMembersObject()->deleteParticipants(
$_POST[
"participants"]))
3349 foreach(
$_POST[
"participants"] as $usr_id)
3351 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_DISMISS_MEMBER,$usr_id);
3355 $this->ctrl->redirect($this,
"members");
3366 if(!
$_POST[
'subscribers'])
3373 if(!$this->object->getMembersObject()->deleteSubscribers(
$_POST[
"subscribers"]))
3381 foreach(
$_POST[
'subscribers'] as $usr_id)
3383 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_DISMISS_SUBSCRIBER,$usr_id);
3398 if ($ilAccess->checkAccess(
'visible',
'',$this->ref_id))
3400 $GLOBALS[
'ilTabs']->addTarget(
"info_short",
3401 $this->ctrl->getLinkTargetByClass(
3402 array(
"ilobjcoursegui",
"ilinfoscreengui"),
"showSummary"),
3406 if($ilAccess->checkAccess(
'leave',
'',$this->object->getRefId()) and $this->object->getMemberObject()->isMember())
3408 $GLOBALS[
'ilTabs']->addTarget(
"crs_unsubscribe",
3409 $this->ctrl->getLinkTarget($this,
"unsubscribe"),
3421 global $rbacsystem,$ilAccess,
$ilUser,
$lng, $ilHelp;
3423 $ilHelp->setScreenIdComponent(
"crs");
3425 $this->ctrl->setParameter($this,
"ref_id",$this->ref_id);
3427 if($ilAccess->checkAccess(
'read',
'',$this->ref_id))
3429 $tabs_gui->addTab(
'view_content',
$lng->txt(
"content"),
3430 $this->ctrl->getLinkTarget($this,
''));
3434 if($ilAccess->checkAccess(
'write',
'',$this->ref_id))
3436 include_once(
'./Modules/Course/classes/class.ilCourseObjective.php');
3439 $tabs_gui->addTarget(
3441 $this->ctrl->getLinkTargetByClass(
'illoeditorgui',
''),
3448 if ($ilAccess->checkAccess(
'visible',
'',$this->ref_id))
3455 $force_active = (strtolower(
$_GET[
"cmdClass"]) ==
"ilinfoscreengui"
3456 || strtolower(
$_GET[
"cmdClass"]) ==
"ilnotegui")
3459 $tabs_gui->addTarget(
"info_short",
3460 $this->ctrl->getLinkTargetByClass(
3461 array(
"ilobjcoursegui",
"ilinfoscreengui"),
"showSummary"),
3463 "",
"", $force_active);
3465 if ($ilAccess->checkAccess(
'write',
'',$this->ref_id))
3467 $force_active = (strtolower(
$_GET[
"cmdClass"]) ==
"ilconditionhandlergui"
3468 &&
$_GET[
"item_id"] ==
"")
3471 $tabs_gui->addTarget(
"settings",
3472 $this->ctrl->getLinkTarget($this,
"edit"),
3473 array(
"edit",
"editMapSettings",
"editCourseIcons",
"listStructure"),
"",
"", $force_active);
3478 include_once
'./Services/Mail/classes/class.ilMail.php';
3482 if($ilAccess->checkAccess(
'write',
'',$this->ref_id))
3484 $tabs_gui->addTarget(
"members",
3485 $this->ctrl->getLinkTarget($this,
"members"),
3490 $this->object->getShowMembers() == $this->object->SHOW_MEMBERS_ENABLED and
3494 $this->tabs_gui->addTarget(
3496 $this->ctrl->getLinkTargetByClass(
'ilUsersGalleryGUI',
'view'),
3503 $GLOBALS[
'rbacsystem']->checkAccess(
'internal_mail',$mail->getMailObjectReferenceId ()) and
3507 $tabs_gui->addTarget(
"members",
3508 $this->ctrl->getLinkTarget($this,
"mailMembersBtn"),
3516 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
3519 $tabs_gui->addTarget(
'learning_progress',
3520 $this->ctrl->getLinkTargetByClass(array(
'ilobjcoursegui',
'illearningprogressgui'),
''),
3522 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui'));
3528 include_once(
"Services/License/classes/class.ilLicenseAccess.php");
3529 if ($ilAccess->checkAccess(
'edit_permission',
'', $this->ref_id)
3532 $tabs_gui->addTarget(
"licenses",
3533 $this->ctrl->getLinkTargetByClass(
'illicenseoverviewgui',
''),
3534 "",
"illicenseoverviewgui");
3538 if ($ilAccess->checkAccess(
'write',
'',$this->ref_id))
3540 include_once
"Services/Object/classes/class.ilObjectMetaDataGUI.php";
3542 $mdtab = $mdgui->getTab();
3545 $tabs_gui->addTarget(
"meta_data",
3548 "ilobjectmetadatagui");
3552 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
3554 $tabs_gui->addTarget(
3556 $this->ctrl->getLinkTargetByClass(
'ilexportgui',
''),
3562 if ($ilAccess->checkAccess(
'edit_permission',
'',$this->ref_id))
3564 $tabs_gui->addTarget(
"perm_settings",
3565 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"),
3566 array(
"perm",
"info",
"owner"),
'ilpermissiongui');
3569 if ($this->ctrl->getTargetScript() ==
"adm_object.php")
3571 $tabs_gui->addTarget(
"show_owner",
3572 $this->ctrl->getLinkTarget($this,
"owner"),
"owner", get_class($this));
3574 if ($this->tree->getSavedNodeData($this->ref_id))
3576 $tabs_gui->addTarget(
"trash",
3577 $this->ctrl->getLinkTarget($this,
"trash"),
"trash", get_class($this));
3581 if($ilAccess->checkAccess(
'join',
'',$this->ref_id)
3582 and !$this->object->getMemberObject()->isAssigned())
3584 include_once
'./Modules/Course/classes/class.ilCourseWaitingList.php';
3589 $this->lng->txt(
'membership_leave'),
3590 $this->ctrl->getLinkTargetByClass(
'ilcourseregistrationgui',
'show',
'')
3597 $tabs_gui->addTarget(
"join",
3598 $this->ctrl->getLinkTargetByClass(
'ilcourseregistrationgui',
"show"),
3603 if($ilAccess->checkAccess(
'leave',
'',$this->object->getRefId())
3604 and $this->object->getMemberObject()->isMember())
3606 $tabs_gui->addTarget(
"crs_unsubscribe",
3607 $this->ctrl->getLinkTarget($this,
"unsubscribe"),
3616 foreach($a_members as $member_id)
3619 $member_data = $this->
object->getMembersObject()->getSubscriberData($member_id);
3623 $print_member[$member_id][
'login'] = $tmp_obj->getLogin();
3624 $print_member[$member_id][
'name'] = $tmp_obj->getLastname().
', '.$tmp_obj->getFirstname();
3646 global $ilAccess,
$lng;
3648 $lng->loadLanguageModule(
'trac');
3650 #$is_admin = (bool) $ilAccess->checkAccess("write",'',$this->object->getRefId());
3653 include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
3656 if($privacy->enabledCourseAccessTimes())
3658 include_once(
'./Services/Tracking/classes/class.ilLearningProgress.php');
3662 if($this->show_tracking)
3664 include_once
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
3670 foreach($a_members as $member_id)
3675 $print_member[$member_id][
'login'] = $tmp_obj->getLogin();
3676 $print_member[$member_id][
'name'] = $tmp_obj->getLastname().
', '.$tmp_obj->getFirstname();
3678 if($this->object->getMembersObject()->isAdmin($member_id))
3680 $print_member[$member_id][
'role'] = $this->lng->txt(
"il_crs_admin");
3682 elseif($this->object->getMembersObject()->isTutor($member_id))
3684 $print_member[$member_id][
'role'] = $this->lng->txt(
"il_crs_tutor");
3686 elseif($this->object->getMembersObject()->isMember($member_id))
3688 $print_member[$member_id][
'role'] = $this->lng->txt(
"il_crs_member");
3690 if($this->object->getMembersObject()->isAdmin($member_id) or $this->object->getMembersObject()->isTutor($member_id))
3692 if($this->object->getMembersObject()->isNotificationEnabled($member_id))
3694 $print_member[$member_id][
'status'] = $this->lng->txt(
"crs_notify");
3698 $print_member[$member_id][
'status'] = $this->lng->txt(
"crs_no_notify");
3703 if($this->object->getMembersObject()->isBlocked($member_id))
3705 $print_member[$member_id][
'status'] = $this->lng->txt(
"crs_blocked");
3709 $print_member[$member_id][
'status'] = $this->lng->txt(
"crs_unblocked");
3715 $print_member[$member_id][
'passed'] = $this->
object->getMembersObject()->hasPassed($member_id) ?
3716 $this->lng->txt(
'crs_member_passed') :
3717 $this->lng->txt(
'crs_member_not_passed');
3720 if($privacy->enabledCourseAccessTimes())
3722 if(isset($progress[$member_id][
'ts']) and $progress[$member_id][
'ts'])
3730 $print_member[$member_id][
'access'] = $this->lng->txt(
'no_date');
3733 if($this->show_tracking)
3735 if(in_array($member_id,$completed))
3739 elseif(in_array($member_id,$in_progress))
3743 elseif(in_array($member_id,
$failed))
3774 case 'notification':
3788 $ilTabs->clearTargets();
3789 $ilTabs->setBackTarget($this->lng->txt(
'back'),
3790 $this->ctrl->getLinkTarget($this,
'members'));
3793 $form = $list->initForm(
'printMembersOutput');
3794 $this->tpl->setContent($form->getHTML());
3799 include_once(
'./Modules/Course/classes/class.ilCourseParticipants.php');
3802 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
3805 include_once
'Services/Membership/classes/class.ilAttendanceList.php';
3807 $list->setId(
'crsmemlst');
3809 $list->setTitle($this->lng->txt(
'crs_members_print_title'),
3810 $this->lng->txt(
'obj_crs').
': '.$this->object->getTitle());
3812 include_once
'./Services/Tracking/classes/class.ilObjUserTracking.php';
3815 if($this->show_tracking)
3817 include_once(
'./Services/Object/classes/class.ilObjectLP.php');
3819 $this->show_tracking = $olp->isActive();
3821 if($this->show_tracking)
3823 $list->addPreset(
'progress', $this->lng->txt(
'learning_progress'),
true);
3826 include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
3828 if($privacy->enabledCourseAccessTimes())
3830 $list->addPreset(
'access', $this->lng->txt(
'last_access'),
true);
3833 $list->addPreset(
'status', $this->lng->txt(
'crs_status'),
true);
3834 $list->addPreset(
'passed', $this->lng->txt(
'crs_passed'),
true);
3841 return $this->members_data[$a_user_id];
3847 $list->initFromForm();
3848 $list->setCallback(array($this,
'getAttendanceListUserData'));
3850 $this->members_data = $this->
fetchPrintMemberData($this->object->getMembersObject()->getParticipants());
3851 $list->getNonMemberUserData($this->members_data);
3853 $list->getFullscreenHTML();
3887 include_once
"./Services/Table/classes/class.ilTableGUI.php";
3898 $offset =
$_GET[
"update_members"] ?
$_GET[
"offset"] : 0;
3899 $order =
$_GET[
"update_members"] ?
$_GET[
"sort_by"] :
'login';
3900 $direction =
$_GET[
"update_members"] ?
$_GET[
"sort_order"] :
'';
3904 $offset =
$_GET[
"update_subscribers"] ?
$_GET[
"offset"] : 0;
3905 $order =
$_GET[
"update_subscribers"] ?
$_GET[
"sort_by"] :
'sub_time';
3906 $direction =
$_GET[
"update_subscribers"] ?
$_GET[
"sort_order"] :
'';
3910 $offset =
$_GET[
"offset"];
3911 $order =
$_GET[
"sort_by"] ?
$_GET[
"sort_by"] :
"title";
3912 $direction =
$_GET[
"sort_order"];
3916 $offset =
$_GET[
"offset"];
3917 $order =
$_GET[
"sort_by"] ?
$_GET[
"sort_by"] :
"title";
3918 $direction =
$_GET[
"sort_order"];
3922 $offset =
$_GET[
"offset"];
3924 if (
$_GET[
"sort_by"] ==
"title" or empty(
$_GET[
"sort_by"]))
3926 $_GET[
"sort_by"] =
"login";
3928 $order =
$_GET[
"sort_by"];
3929 $direction =
$_GET[
"sort_order"];
3933 $tbl->setOrderColumn($order);
3934 $tbl->setOrderDirection($direction);
3935 $tbl->setOffset($offset);
3937 $tbl->setMaxCount(count($result_set));
3938 $tbl->setFooter(
"tblfooter",$this->lng->txt(
"previous"),$this->lng->txt(
"next"));
3939 $tbl->setData($result_set);
3948 $tpl->setCurrentBlock(
"tbl_form_header");
3949 $tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
3950 $tpl->parseCurrentBlock();
3951 $tpl->setCurrentBlock(
"tbl_action_btn");
3952 $tpl->setVariable(
"BTN_NAME",
"cancelMember");
3953 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"cancel"));
3954 $tpl->parseCurrentBlock();
3955 $tpl->setCurrentBlock(
"tbl_action_btn");
3956 $tpl->setVariable(
"BTN_NAME",
"performRemoveFromWaitingList");
3957 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"delete"));
3958 $tpl->parseCurrentBlock();
3959 $tpl->setCurrentBlock(
"tbl_action_row");
3960 $tpl->setVariable(
"COLUMN_COUNTS",4);
3962 $tpl->parseCurrentBlock();
3964 $tbl->setTitle($this->lng->txt(
"crs_header_remove_from_waiting_list"),
"icon_usr.svg",
3965 $this->lng->txt(
"crs_header_remove_from_waiting_list"));
3966 $tbl->setHeaderNames(array($this->lng->txt(
"username"),
3967 $this->lng->txt(
"firstname"),
3968 $this->lng->txt(
"lastname"),
3969 $this->lng->txt(
"crs_time")));
3970 $tbl->setHeaderVars(array(
"login",
3974 array(
"ref_id" => $this->object->getRefId(),
3976 "cmdClass" =>
"ilobjcoursegui",
3977 "cmdNode" =>
$_GET[
"cmdNode"]));
3979 $tbl->setColumnWidth(array(
"25%",
"25%",
"25%",
"25%"));
3984 $this->tpl->setVariable(
"EDIT_MEMBER_TABLE",
$tbl->tpl->get());
3994 $tpl->setCurrentBlock(
"tbl_form_header");
3995 $tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
3996 $tpl->parseCurrentBlock();
3997 $tpl->setCurrentBlock(
"tbl_action_btn");
3998 $tpl->setVariable(
"BTN_NAME",
"removeSubscribers");
3999 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"delete"));
4000 $tpl->parseCurrentBlock();
4001 $tpl->setCurrentBlock(
"tbl_action_btn");
4002 $tpl->setVariable(
"BTN_NAME",
"cancelMember");
4003 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"cancel"));
4004 $tpl->parseCurrentBlock();
4005 $tpl->setCurrentBlock(
"tbl_action_row");
4006 $tpl->setVariable(
"COLUMN_COUNTS",4);
4008 $tpl->parseCurrentBlock();
4010 $tbl->setTitle($this->lng->txt(
"crs_header_delete_subscribers"),
"icon_usr.svg",$this->lng->txt(
"crs_header_delete_members"));
4011 $tbl->setHeaderNames(array($this->lng->txt(
"username"),
4012 $this->lng->txt(
"firstname"),
4013 $this->lng->txt(
"lastname"),
4014 $this->lng->txt(
"crs_time")));
4015 $tbl->setHeaderVars(array(
"login",
4019 array(
"ref_id" => $this->object->getRefId(),
4021 "cmdClass" =>
"ilobjcoursegui",
4022 "cmdNode" =>
$_GET[
"cmdNode"]));
4024 $tbl->setColumnWidth(array(
"25%",
"25%",
"25%",
"25%"));
4029 $this->tpl->setVariable(
"EDIT_MEMBER_TABLE",
$tbl->tpl->get());
4038 $actions = array(
"addFromWaitingList" => $this->lng->txt(
"crs_add_subscribers"),
4039 "removeFromWaitingList" => $this->lng->txt(
"crs_delete_from_waiting_list"));
4044 $tbl->enable(
'select_all');
4045 $tbl->setFormName(
"wait_form");
4046 $tbl->setSelectAllCheckbox(
"waiting_list");
4050 $tpl->setCurrentBlock(
"tbl_action_row");
4052 $tpl->setVariable(
"COLUMN_COUNTS",5);
4056 $tpl->setCurrentBlock(
"tbl_action_select");
4058 $tpl->setVariable(
"BTN_NAME",
"gateway");
4059 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"execute"));
4060 $tpl->parseCurrentBlock();
4062 $tpl->setCurrentBlock(
"tbl_action_row");
4063 $tpl->setVariable(
"TPLPATH",$this->tpl->tplPath);
4064 $tpl->parseCurrentBlock();
4067 $tbl->setTitle($this->lng->txt(
"crs_waiting_list"),
"icon_usr.svg",$this->lng->txt(
"crs_waiting_list"));
4068 $tbl->setHeaderNames(array(
'',
4069 $this->lng->txt(
"name"),
4070 $this->lng->txt(
"login"),
4071 $this->lng->txt(
"crs_time")));
4072 $tbl->setHeaderVars(array(
"",
4076 array(
"ref_id" => $this->object->getRefId(),
4078 "update_subscribers" => 1,
4079 "cmdClass" =>
"ilobjcoursegui",
4080 "cmdNode" =>
$_GET[
"cmdNode"]));
4081 $tbl->setColumnWidth(array(
'1%'));
4086 $this->tpl->setCurrentBlock(
'sub_wait_table');
4087 $this->tpl->setVariable(
'SUB_WAIT_NAME',
'wait_form');
4088 $this->tpl->setVariable(
'SUB_WAIT_FORMACTION',$this->ctrl->getFormAction($this));
4089 $this->tpl->setVariable(
"SUB_WAIT_TABLE_CONTENT",
$tbl->tpl->get());
4090 $this->tpl->parseCurrentBlock();
4102 for($i=0;$i<=60;$i++)
4104 $days[$i] = $i < 10 ?
"0".$i : $i;
4109 for($i=0;$i<24;$i++)
4111 $days[$i] = $i < 10 ?
"0".$i : $i;
4116 for($i=1;$i<32;$i++)
4118 $days[$i] = $i < 10 ?
"0".$i : $i;
4123 for($i=1;$i<13;$i++)
4125 $month[$i] = $i < 10 ?
"0".$i : $i;
4130 for($i = date(
"Y",time());$i < date(
"Y",time()) + 3;++$i)
4140 return mktime($a_time_arr[
"hour"],
4141 $a_time_arr[
"minute"],
4142 $a_time_arr[
"second"],
4143 $a_time_arr[
"month"],
4145 $a_time_arr[
"year"]);
4149 unset(
$_SESSION[
"crs_delete_member_ids"]);
4150 unset(
$_SESSION[
"crs_delete_subscriber_ids"]);
4162 $next_class = $this->ctrl->getNextClass($this);
4163 $cmd = $this->ctrl->getCmd();
4172 $ilAccess->checkAccess(
'read',
'',
$_GET[
'ref_id']))
4174 include_once(
"./Services/Link/classes/class.ilLink.php");
4175 $ilNavigationHistory->addItem(
$_GET[
"ref_id"],
4181 if(IS_PAYMENT_ENABLED)
4183 include_once
'Services/Payment/classes/class.ilPaymentObject.php';
4186 $ilTabs->setTabActive(
'info_short');
4188 include_once
'Services/Payment/classes/class.ilShopPurchaseGUI.php';
4189 $this->ctrl->setReturn($this,
'');
4191 $this->ctrl->forwardCommand($pp_gui);
4199 case "ilinfoscreengui":
4203 case 'ilobjectmetadatagui';
4204 if(!$ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
4206 $ilErr->raiseError($this->lng->txt(
'permission_denied'),
$ilErr->WARNING);
4208 $this->tabs_gui->setTabActive(
'meta_data');
4209 include_once
'Services/Object/classes/class.ilObjectMetaDataGUI.php';
4211 $this->ctrl->forwardCommand($md_gui);
4214 case 'ilcourseregistrationgui':
4215 $this->ctrl->setReturn($this,
'');
4216 $this->tabs_gui->setTabActive(
'join');
4217 include_once(
'./Modules/Course/classes/class.ilCourseRegistrationGUI.php');
4219 $this->ctrl->forwardCommand($registration);
4222 case 'ilobjectcustomuserfieldsgui':
4223 include_once
'./Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
4227 $this->ctrl->setReturn($this,
'members');
4232 $this->tabs_gui->setTabActive(
'settings');
4233 $this->ctrl->forwardCommand($cdf_gui);
4236 case "ilcourseobjectivesgui":
4237 include_once
'./Modules/Course/classes/class.ilCourseObjectivesGUI.php';
4239 $this->ctrl->setReturn($this,
"");
4241 $ret =& $this->ctrl->forwardCommand($reg_gui);
4244 case 'ilobjcoursegroupinggui':
4245 include_once
'./Modules/Course/classes/class.ilObjCourseGroupingGUI.php';
4247 $this->ctrl->setReturn($this,
'edit');
4250 $this->ctrl->forwardCommand($crs_grp_gui);
4251 $this->tabs_gui->setTabActive(
'settings');
4252 $this->tabs_gui->setSubTabActive(
'groupings');
4256 $this->tabs_gui->setTabActive(
'none');
4266 case "ilconditionhandlergui":
4267 include_once
'./Services/AccessControl/classes/class.ilConditionHandlerGUI.php';
4270 $this->tabs_gui->setTabActive(
'settings');
4272 $this->ctrl->forwardCommand($new_gui);
4275 case "illearningprogressgui":
4276 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
4279 $this->object->getRefId(),
4281 $this->ctrl->forwardCommand($new_gui);
4282 $this->tabs_gui->setTabActive(
'learning_progress');
4285 case 'ilusersgallerygui':
4286 $is_admin = (bool)$ilAccess->checkAccess(
'write',
'', $this->object->ref_id);
4291 $this->object->getShowMembers() == $this->
object->SHOW_MEMBERS_DISABLED ||
4296 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'),
$ilErr->MESSAGE);
4301 require_once
'Services/User/classes/class.ilUsersGalleryGUI.php';
4302 require_once
'Services/User/classes/class.ilUsersGalleryParticipants.php';
4304 $this->tabs_gui->setTabActive(
'members');
4305 $this->tabs_gui->setSubTabActive(
'crs_members_gallery');
4309 $this->ctrl->forwardCommand($gallery_gui);
4312 case 'illicenseoverviewgui':
4313 include_once(
"./Services/License/classes/class.ilLicenseOverviewGUI.php");
4315 $ret =& $this->ctrl->forwardCommand($license_gui);
4316 $this->tabs_gui->setTabActive(
'licenses');
4319 case 'ilpermissiongui':
4320 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
4321 $this->tabs_gui->setTabActive(
'perm_settings');
4323 $ret =& $this->ctrl->forwardCommand($perm_gui);
4326 case 'ilrepositorysearchgui':
4332 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
4336 $rep_search->setCallback($this,
4337 'assignMembersObject',
4344 $rep_search->setCallback($this,
4345 'assignMembersObject',
4346 $this->
getLocalRoles(array($this->object->getDefaultAdminRole()))
4355 $this->ctrl->setReturn($this,
'members');
4356 $ret =& $this->ctrl->forwardCommand($rep_search);
4358 $this->tabs_gui->setTabActive(
'members');
4359 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
4362 case 'ilcoursecontentinterface':
4364 $this->initCourseContentInterface();
4365 $this->cci_obj->cci_setContainer($this);
4367 $this->ctrl->forwardCommand($this->cci_obj);
4369 $this->tabs_gui->setTabActive(
'content');
4372 case 'ilcoursecontentgui':
4373 $this->ctrl->setReturn($this,
'members');
4374 include_once
'./Modules/Course/classes/class.ilCourseContentGUI.php';
4376 $this->ctrl->forwardCommand($course_content_obj);
4379 case 'ilpublicuserprofilegui':
4380 $this->tpl->enableDragDropFileUpload(
null);
4381 require_once
'./Services/User/classes/class.ilPublicUserProfileGUI.php';
4383 $this->tabs_gui->setTabActive(
'members');
4385 $profile_gui->setBackUrl($this->ctrl->getLinkTargetByClass(
"ilUsersGalleryGUI",
'view'));
4386 $this->tabs_gui->setSubTabActive(
'crs_members_gallery');
4387 $html = $this->ctrl->forwardCommand($profile_gui);
4388 $this->tpl->setVariable(
"ADM_CONTENT",
$html);
4391 case 'ilmemberexportgui':
4392 include_once(
'./Services/Membership/classes/Export/class.ilMemberExportGUI.php');
4395 $this->tabs_gui->setTabActive(
'members');
4396 $this->tabs_gui->setSubTabActive(
'export_members');
4398 $this->ctrl->forwardCommand($export);
4401 case 'ilmemberagreementgui':
4402 include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
4403 $this->tabs_gui->clearTargets();
4405 $this->ctrl->setReturn($this,
'');
4407 $this->ctrl->forwardCommand($agreement);
4410 case 'ilsessionoverviewgui':
4412 $this->tabs_gui->setTabActive(
'members');
4413 $this->tabs_gui->setSubTabActive(
'events');
4415 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
4418 include_once(
'./Modules/Session/classes/class.ilSessionOverviewGUI.php');
4420 $this->ctrl->forwardCommand($overview);
4424 case "ilcontainerpagegui":
4428 $this->tpl->setContent(
$ret);
4432 case "ilcontainerstartobjectspagegui":
4434 include_once
"Services/Container/classes/class.ilContainerStartObjectsPageGUI.php";
4436 $ret = $this->ctrl->forwardCommand($pgui);
4439 $this->tpl->setContent(
$ret);
4443 case 'ilobjectcopygui':
4444 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
4446 $cp->setType(
'crs');
4447 $this->ctrl->forwardCommand($cp);
4450 case "ilobjstylesheetgui":
4454 case 'ilcourseparticipantsgroupsgui':
4455 include_once
'./Modules/Course/classes/class.ilCourseParticipantsGroupsGUI.php';
4464 $this->tabs_gui->setTabActive(
'members');
4465 $this->ctrl->forwardCommand($cmg_gui);
4469 $this->tabs_gui->setTabActive(
'export');
4470 include_once
'./Services/Export/classes/class.ilExportGUI.php';
4472 $exp->addFormat(
'xml');
4473 $this->ctrl->forwardCommand($exp);
4476 case "ilcommonactiondispatchergui":
4477 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
4479 $this->ctrl->forwardCommand($gui);
4482 case 'ildidactictemplategui':
4483 $this->ctrl->setReturn($this,
'edit');
4484 include_once
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateGUI.php';
4486 $this->ctrl->forwardCommand($did);
4489 case "ilcertificategui":
4490 $this->tabs_gui->activateTab(
"settings");
4493 include_once
"./Services/Certificate/classes/class.ilCertificateGUI.php";
4494 include_once
"./Modules/Course/classes/class.ilCourseCertificateAdapter.php";
4496 $this->ctrl->forwardCommand($output_gui);
4499 case 'ilobjectservicesettingsgui':
4500 $this->ctrl->setReturn($this,
'edit');
4502 $this->tabs_gui->activateTab(
'settings');
4503 $this->tabs_gui->acltivateSubTab(
'tool_settings');
4505 include_once
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
4508 $this->object->getId(),
4512 $this->ctrl->forwardCommand($service);
4515 case 'illoeditorgui':
4516 #$this->tabs_gui->clearTargets();
4517 #$this->tabs_gui->setBackTarget($this->lng->txt('back'),$this->ctrl->getLinkTarget($this,''));
4518 $this->tabs_gui->activateTab(
'crs_objectives');
4520 include_once
'./Modules/Course/classes/Objectives/class.ilLOEditorGUI.php';
4522 $this->ctrl->forwardCommand($editor);
4525 case 'ilcontainerstartobjectsgui':
4526 $this->ctrl->setReturn($this,
'edit');
4527 $this->tabs_gui->clearTargets();
4528 $this->tabs_gui->setBackTarget($this->lng->txt(
"back_to_crs_content"),
4529 $this->ctrl->getLinkTarget($this,
"edit"));
4530 $this->tabs_gui->addTab(
"start",
4531 $this->lng->txt(
"crs_start_objects"),
4532 $this->ctrl->getLinkTargetByClass(
"ilcontainerstartobjectsgui",
"listStructure"));
4534 $ilHelp->setScreenIdComponent(
"crs");
4536 include_once
'./Services/Container/classes/class.ilContainerStartObjectsGUI.php';
4538 $this->ctrl->forwardCommand($stgui);
4541 case 'illomembertestresultgui':
4542 include_once
'./Modules/Course/classes/Objectives/class.ilLOMemberTestResultGUI.php';
4543 $GLOBALS[
'ilCtrl']->setReturn($this,
'members');
4544 $GLOBALS[
'ilTabs']->clearTargets();
4547 $GLOBALS[
'ilCtrl']->getLinkTarget($this,
'members')
4551 $this->ctrl->forwardCommand($result_view);
4554 case 'ilmailmembersearchgui':
4555 include_once
'Services/Mail/classes/class.ilMail.php';
4559 $ilAccess->checkAccess(
'write',
"",$this->object->getRefId())) &&
4560 $rbacsystem->checkAccess(
'internal_mail',$mail->getMailObjectReferenceId()))
4562 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"),
$ilErr->MESSAGE);
4565 $this->tabs_gui->setTabActive(
'members');
4567 include_once
'./Services/Contact/classes/class.ilMailMemberSearchGUI.php';
4568 include_once
'./Services/Contact/classes/class.ilMailMemberCourseRoles.php';
4572 $this->ctrl->forwardCommand($mail_search);
4587 if(
$cmd ==
'infoScreenGoto')
4596 $cmd =
'infoScreen';
4600 if(!$this->creation_mode)
4602 if (
$cmd ==
"infoScreen")
4613 if( !$this->creation_mode
4614 &&
$cmd !=
'infoScreen'
4615 &&
$cmd !=
'sendfile'
4616 &&
$cmd !=
'unsubscribe'
4617 &&
$cmd !=
'performUnsubscribe'
4618 && !$ilAccess->checkAccess(
"read",
'',$this->object->getRefId())
4620 ||
$cmd ==
'subscribe')
4622 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
4623 if($rbacsystem->checkAccess(
'join',$this->object->getRefId()) &&
4626 include_once(
'./Modules/Course/classes/class.ilCourseRegistrationGUI.php');
4627 $this->ctrl->redirectByClass(
"ilCourseRegistrationGUI");
4636 if(
$cmd ==
'listObjectives')
4638 include_once
'./Modules/Course/classes/class.ilCourseObjectivesGUI.php';
4640 $this->ctrl->setReturn($this,
"");
4642 $ret =& $this->ctrl->forwardCommand($obj_gui);
4677 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
4683 if(!$this->object->getMemberObject()->isAssigned())
4688 include_once
'./Services/Container/classes/class.ilMemberViewSettings.php';
4694 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
4695 include_once(
'Services/Membership/classes/class.ilMemberAgreement.php');
4702 $GLOBALS[
'ilLog']->write(__METHOD__.
': Missing course confirmation.');
4706 include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
4709 $GLOBALS[
'ilLog']->write(__METHOD__.
': Missing required fields');
4727 include_once(
"Services/License/classes/class.ilLicenseAccess.php");
4731 $buffer = $lic_set->get(
"license_warning");
4733 include_once(
"./Services/License/classes/class.ilLicense.php");
4735 foreach ($licensed_items as $item)
4737 $license =&
new ilLicense($item[
'obj_id']);
4738 $remaining = $license->getRemainingLicenses();
4739 if ($remaining <= $buffer)
4741 $lng->loadlanguageModule(
"license");
4742 ilUtil::sendInfo(sprintf($this->lng->txt(
"course_licenses_rare"), $remaining), $a_keep);
4752 return array(
"ilCourseRegisterGUI",
'ilConditionHandlerGUI');
4758 switch ($this->ctrl->getCmd())
4761 #$ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, ""));
4769 public static function _goto($a_target, $a_add =
"")
4773 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
4774 if(substr($a_add,0,5) ==
'rcode')
4776 if(
$ilUser->getId() == ANONYMOUS_USER_ID)
4780 "login.php?target=".
$_GET[
"target"].
"&cmd=force_login&lang=".
4793 if ($a_add ==
"mem" && $ilAccess->checkAccess(
"write",
"", $a_target))
4798 if ($ilAccess->checkAccess(
"read",
"", $a_target))
4805 if ($ilAccess->checkAccess(
"visible",
"", $a_target))
4811 if ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID))
4825 return mktime($time[
'h'],$time[
'm'],0,$date[
'm'],$date[
'd'],$date[
'y']);
4830 return array(
'y' => date(
'Y',$a_unix_time),
4831 'm' => date(
'n',$a_unix_time),
4832 'd' => date(
'd',$a_unix_time));
4837 return array(
'h' => date(
'G',$a_unix_time),
4838 'm' => date(
'i',$a_unix_time),
4839 's' => date(
's',$a_unix_time));
4852 $this->tabs_gui->setTabActive(
'settings');
4855 !$ilAccess->checkAccess(
"write",
"", $this->object->getRefId()))
4860 $latitude = $this->
object->getLatitude();
4861 $longitude = $this->
object->getLongitude();
4862 $zoom = $this->
object->getLocationZoom();
4865 if ($latitude == 0 && $longitude == 0 && $zoom == 0)
4868 $latitude = $def[
"latitude"];
4869 $longitude = $def[
"longitude"];
4870 $zoom = $def[
"zoom"];
4873 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
4875 $form->setFormAction(
$ilCtrl->getFormAction($this));
4877 $form->setTitle($this->lng->txt(
"crs_map_settings"));
4882 $public->setValue(
"1");
4883 $public->setChecked($this->object->getEnableCourseMap());
4884 $form->addItem($public);
4889 $loc_prop->setLatitude($latitude);
4890 $loc_prop->setLongitude($longitude);
4891 $loc_prop->setZoom($zoom);
4892 $form->addItem($loc_prop);
4894 $form->addCommandButton(
"saveMapSettings", $this->lng->txt(
"save"));
4896 $this->tpl->setVariable(
"ADM_CONTENT", $form->getHTML());
4908 $this->
object->update();
4910 $ilCtrl->redirect($this,
"editMapSettings");
4920 $this->tabs_gui->setTabActive(
"members");
4922 $this->tabs_gui->setSubTabActive(
"crs_members_map");
4924 include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
4931 $map->setMapId(
"course_map")
4933 ->setHeight(
"500px")
4934 ->setLatitude($this->object->getLatitude())
4935 ->setLongitude($this->object->getLongitude())
4936 ->setZoom($this->object->getLocationZoom())
4937 ->setEnableTypeControl(
true)
4938 ->setEnableNavigationControl(
true)
4939 ->setEnableCentralMarker(
true);
4941 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
4945 foreach($members as $user_id)
4947 $map->addUserMarker($user_id);
4951 $tpl->setContent($map->getHTML());
4952 $tpl->setLeftContent($map->getUserListHTML());
4961 $this->object->getAboStatus(), $this->object->getRefId(), $this->object->getId());
4967 static function _modifyItemGUI($a_item_list_gui, $a_cmd_class, $a_item_data, $a_show_path,
4968 $a_abo_status, $a_course_ref_id, $a_course_obj_id, $a_parent_ref_id = 0)
4970 global
$lng, $ilAccess;
4973 if ($a_parent_ref_id == 0)
4975 $a_parent_ref_id = $a_course_ref_id;
4979 if($a_item_data[
'type'] ==
'tst' and
4982 $a_item_list_gui->addCommandLinkParameter(array(
'crs_show_result' => $a_course_ref_id));
4985 $a_item_list_gui->enableSubscribe($a_abo_status);
4987 $is_tutor = ($ilAccess->checkAccess(
'write',
'',
4988 $a_course_ref_id,
'crs', $a_course_obj_id));
4990 if($a_show_path and $is_tutor)
4992 $a_item_list_gui->addCustomProperty(
$lng->txt(
'path'),
4993 ilContainer::_buildPath($a_item_data[
'ref_id'], $a_course_ref_id),
5006 if ($this->object->getType() !=
'crs')
5010 if (!$ilAccess->checkAccess(
'write',
'',
5011 $this->object->getRefId(),
'crs',$this->object->getId()))
5015 if($this->object->enabledObjectiveView())
5029 if(!
$_SESSION[
'crs_timings_panel'][$this->object->getId()] or 1)
5033 $this->tabs_gui->addSubTab(
"view_content",
$lng->txt(
"view"),
$ilCtrl->getLinkTargetByClass(
"ilobjcoursegui",
"view"));
5037 $this->tabs_gui->addSubTab(
"view_content",
$lng->txt(
"view"),
$ilCtrl->getLinkTargetByClass(
"ilobjcoursegui",
"disableAdministrationPanel"));
5042 $this->tabs_gui->addSubTabTarget(
'timings_timings',
5043 $this->ctrl->getLinkTargetByClass(
'ilcoursecontentgui',
'editUserTimings'));
5063 include_once(
'./Services/Calendar/classes/class.ilDateTime.php');
5066 if(is_array(
$_POST[$a_field][
'date']))
5068 $dt[
'year'] = (int)
$_POST[$a_field][
'date'][
'y'];
5069 $dt[
'mon'] = (int)
$_POST[$a_field][
'date'][
'm'];
5070 $dt[
'mday'] = (int)
$_POST[$a_field][
'date'][
'd'];
5071 $dt[
'hours'] = (int)
$_POST[$a_field][
'time'][
'h'];
5072 $dt[
'minutes'] = (int)
$_POST[$a_field][
'time'][
'm'];
5073 $dt[
'seconds'] = (int)
$_POST[$a_field][
'time'][
's'];
5077 $date = date_parse(
$_POST[$a_field][
'date'].
" ".
$_POST[$a_field][
'time']);
5078 $dt[
'year'] = (int) $date[
'year'];
5079 $dt[
'mon'] = (int) $date[
'month'];
5080 $dt[
'mday'] = (int) $date[
'day'];
5081 $dt[
'hours'] = (int) $date[
'hour'];
5082 $dt[
'minutes'] = (int) $date[
'minute'];
5083 $dt[
'seconds'] = (int) $date[
'second'];
5101 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
5103 $confirm->setFormAction($this->ctrl->getFormAction($this));
5104 $confirm->setConfirm($this->lng->txt(
'reset'),
'reset');
5105 $confirm->setCancel($this->lng->txt(
'cancel'),
'cancel');
5107 $GLOBALS[
'tpl']->setContent($confirm->getHTML());
5115 include_once
'./Modules/Course/classes/Objectives/class.ilLOUserResults.php';
5117 $usr_results->delete();
5120 include_once
'./Modules/Course/classes/Objectives/class.ilLOTestRun.php';
5121 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
5123 $this->object->getId(),
5127 include_once
'./Modules/Course/classes/class.ilCourseObjectiveResult.php';
5130 $tmp_obj_res->reset($this->object->getId());
5132 $ilUser->deletePref(
'crs_objectives_force_details_'.$this->object->getId());
5142 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
5147 include_once
'./Services/Container/classes/class.ilContainerStartObjects.php';
5149 $this->object->getId());
5150 if(count($this->start_obj->getStartObjects()) &&
5151 !$this->start_obj->allFullfilled(
$ilUser->getId()))
5168 include_once
'./Services/Container/classes/class.ilMemberViewSettings.php';
5170 if($settings->isActive() and $settings->getContainer() != $this->object->getRefId())
5172 $settings->setContainer($this->object->getRefId());
5173 $rbacsystem->initMemberView();
5176 parent::prepareOutput();
5185 $link = chr(13).chr(10).chr(13).chr(10);
5186 $link .= $this->lng->txt(
'crs_mail_permanent_link');
5187 $link .= chr(13).chr(10).chr(13).chr(10);
5188 include_once
'./Services/Link/classes/class.ilLink.php';
5190 return rawurlencode(base64_encode($link));
5197 $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
5202 include_once
"Services/Certificate/classes/class.ilCertificate.php";
5207 $cert_url = $this->ctrl->getLinkTarget($this,
"deliverCertificate");
5209 $this->lng->loadLanguageModule(
"certificate");
5210 $lg->addCustomCommand($cert_url,
"download_certificate");
5212 $lg->addHeaderIcon(
"cert_icon",
5214 $this->lng->txt(
"download_certificate"),
5221 include_once
"Services/Membership/classes/class.ilMembershipNotifications.php";
5225 if(!$noti->isCurrentUserActive())
5227 $lg->addHeaderIcon(
"not_icon",
5229 $this->lng->txt(
"crs_notification_deactivated"));
5231 $this->ctrl->setParameter($this,
"crs_ntf", 1);
5232 $caption =
"crs_activate_notification";
5236 $lg->addHeaderIcon(
"not_icon",
5238 $this->lng->txt(
"crs_notification_activated"));
5240 $this->ctrl->setParameter($this,
"crs_ntf", 0);
5241 $caption =
"crs_deactivate_notification";
5244 if($noti->canCurrentUserEdit())
5246 $lg->addCustomCommand($this->ctrl->getLinkTarget($this,
"saveNotification"),
5250 $this->ctrl->setParameter($this,
"crs_ntf",
"");
5262 if ($ilAccess->checkAccess(
'write',
'',$this->ref_id))
5271 include_once
"Services/Certificate/classes/class.ilCertificate.php";
5277 $this->ctrl->redirect($this);
5280 include_once
"./Modules/Course/classes/class.ilCourseCertificateAdapter.php";
5282 $certificate->outCertificate(array(
"user_id" => $user_id),
true);
5288 $this->ctrl->redirectByClass(array(
'ilrepositorygui',
'ilobjcoursegui',
'illoeditorgui'),
'materials');
5293 if(isset(
$_POST[
'position'][
"lobj"]))
5295 $lobj =
$_POST[
'position'][
"lobj"];
5296 unset(
$_POST[
'position'][
"lobj"]);
5298 $objective_order = array();
5299 foreach($lobj as $objective_id => $materials)
5301 $objective_order[$objective_id] = $materials[0];
5302 unset($lobj[$objective_id][0]);
5306 include_once
"Modules/Course/classes/class.ilCourseObjective.php";
5307 asort($objective_order);
5309 foreach(array_keys($objective_order) as $objective_id)
5312 $obj->writePosition(++$pos);
5316 include_once
"Modules/Course/classes/class.ilCourseObjectiveMaterials.php";
5317 foreach($lobj as $objective_id => $materials)
5323 foreach(array_keys($materials) as $ass_id)
5325 $objmat->writePosition($ass_id, ++$pos);
5330 return parent::saveSortingObject();
5339 include_once
'./Services/Link/classes/class.ilLink.php';
5350 $objective_id = (int)
$_REQUEST[
'objective_id'];
5353 include_once
'./Modules/Course/classes/Objectives/class.ilLOUserResults.php';
5354 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
5355 include_once
'./Modules/Course/classes/Objectives/class.ilLOTestAssignments.php';
5359 $this->object->getId(),
5361 $passed =
$res->getCompletedObjectiveIds();
5363 $has_completed = FALSE;
5366 $objective_ids = array($objective_id);
5367 if(in_array($objective_id, $passed))
5369 $has_completed = TRUE;
5375 include_once
'./Modules/Course/classes/class.ilCourseObjective.php';
5379 if(count($objective_ids) == count($passed))
5381 $has_completed = TRUE;
5393 include_once
'./Services/Link/classes/class.ilLink.php';
5406 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
5412 $question = $this->lng->txt(
'crs_loc_objective_passed_confirmation');
5416 $question = $this->lng->txt(
'crs_loc_objectives_passed_confirmation');
5419 $confirm->addHiddenItem(
'objective_id', $a_objective_id);
5420 $confirm->addHiddenItem(
'tid', $a_test_id);
5421 $confirm->setConfirm($this->lng->txt(
'crs_loc_tst_start'),
'redirectLocToTestConfirmed');
5422 $confirm->setCancel($this->lng->txt(
'cancel'),
'view');
5426 $GLOBALS[
'tpl']->setContent($confirm->getHTML());
5439 $crs_admin = $this->
object->getDefaultAdminRole();
5440 $crs_member = $this->
object->getDefaultMemberRole();
5441 $local_roles = $this->
object->getLocalCourseRoles(
false);
5442 $crs_roles = array();
5445 if(in_array($crs_member, $local_roles))
5448 unset($local_roles[$crs_roles[$crs_member]]);
5451 foreach($local_roles as $title => $role_id)
5461 if(count($a_exclude) > 0)
5463 foreach($a_exclude as $excluded_role)
5465 if(isset($crs_roles[$excluded_role]))
5467 unset($crs_roles[$excluded_role]);
5490 $this->tabs_gui->setTabActive(
'members');
5504 global
$ilUser, $rbacsystem, $ilAccess;
5505 include_once
'Services/Mail/classes/class.ilMail.php';
5510 $ilAccess->checkAccess(
'write',
"",$this->object->getRefId())) and
5511 $rbacsystem->checkAccess(
'internal_mail',$mail->getMailObjectReferenceId()))
5516 $ilToolbar->addSeparator();
5521 $this->ctrl->setParameter($this,
"back_cmd", $back_cmd);
5524 $ilToolbar->addButton($this->lng->txt(
"mail_members"),
5525 $this->ctrl->getLinkTargetByClass(
'ilMailMemberSearchGUI',
'')
5535 $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
5540 if(!is_array(
$_POST[
"subscribers"]))
5548 $this->lng->loadLanguageModule(
'mmbr');
5552 $this->tabs_gui->setTabActive(
'members');
5553 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
5555 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
5559 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"refuseSubscribers"));
5560 $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
5561 $c_gui->setCancel($this->lng->txt(
"cancel"),
"members");
5562 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"refuseSubscribers");
5564 foreach(
$_POST[
"subscribers"] as $subscribers)
5568 $c_gui->addItem(
'subscribers[]',
5570 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
5574 $this->tpl->setContent($c_gui->getHTML());
5580 if(!is_array(
$_POST[
"subscribers"]))
5589 $this->tabs_gui->setTabActive(
'members');
5590 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
5592 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
5596 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"assignSubscribers"));
5597 $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
5598 $c_gui->setCancel($this->lng->txt(
"cancel"),
"members");
5599 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"assignSubscribers");
5601 foreach(
$_POST[
"subscribers"] as $subscribers)
5605 $c_gui->addItem(
'subscribers[]',
5607 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
5611 $this->tpl->setContent($c_gui->getHTML());
5617 if(!is_array(
$_POST[
"waiting"]))
5625 $this->lng->loadLanguageModule(
'mmbr');
5629 $this->tabs_gui->setTabActive(
'members');
5630 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
5632 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
5636 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"refuseFromList"));
5637 $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
5638 $c_gui->setCancel($this->lng->txt(
"cancel"),
"members");
5639 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"refuseFromList");
5641 foreach(
$_POST[
"waiting"] as $waiting)
5645 $c_gui->addItem(
'waiting[]',
5647 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
5651 $this->tpl->setContent($c_gui->getHTML());
5657 if(!is_array(
$_POST[
"waiting"]))
5666 $this->tabs_gui->setTabActive(
'members');
5667 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
5669 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
5673 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"assignFromWaitingList"));
5674 $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
5675 $c_gui->setCancel($this->lng->txt(
"cancel"),
"members");
5676 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"assignFromWaitingList");
5678 foreach(
$_POST[
"waiting"] as $waiting)
5682 $c_gui->addItem(
'waiting[]',
5684 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
5688 $this->tpl->setContent($c_gui->getHTML());
const IL_CRS_SUBSCRIPTION_LIMITED
const IL_CRS_VIEW_SESSIONS
const IL_CRS_ACTIVATION_UNLIMITED
const IL_CRS_VIEW_OBJECTIVE
const IL_CRS_VIEW_BY_TYPE
const IL_CRS_SUBSCRIPTION_PASSWORD
const IL_CRS_ARCHIVE_NONE
const IL_CRS_SUBSCRIPTION_CONFIRMATION
const IL_CRS_VIEW_ARCHIVE
const IL_CRS_SUBSCRIPTION_UNLIMITED
const IL_CRS_ACTIVATION_LIMITED
const IL_CRS_SUBSCRIPTION_DEACTIVATED
const IL_CRS_SUBSCRIPTION_DIRECT
const IL_CRS_ADMIN
Base class for course and group participants.
Base class for attendance lists.
GUI class to create PDF certificates.
static isObjectActive($a_obj_id)
_recordWriteEvent($obj_id, $usr_id, $action, $parent_obj_id=null)
Records a write event.
_catchupWriteEvents($obj_id, $usr_id, $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
class ilConditionHandlerGUI
Confirmation screen class.
afterUpdate()
Post (successful) object update hook.
isActiveAdministrationPanel()
& forwardToPageObject()
forward command to page object
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
addStandardContainerSubTabs($a_include_view=true)
Add standar container subtabs for view, manage, oderdering and text/media editor link.
ilContainerGUI($a_data, $a_id, $a_call_by_reference=true, $a_prepare_output=true)
Constructor @access public.
forwardToStyleSheet()
Forward to style object.
showCustomIconsEditing($a_input_colspan=1, ilPropertyFormGUI $a_form=null, $a_as_section=true)
show edit section of custom icons for container
saveSortingSettings(ilPropertyFormGUI $form)
Save sorting settings.
Class ilContainerStartObjectsContentGUI.
Class ilContainerStartObjectsGUI.
Container start objects page GUI class.
static setBlockedForLP($a_status)
Toggle LP blocking property status.
Test certificate adapter.
const MAIL_ALLOWED_TUTORS
Class ilCourseContentGUI.
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
static _hasFields($a_container_id)
Check if there are any define fields.
static _fieldsToInfoString($a_obj_id)
Fields to info string.
& _readFilesByCourse($a_course_id)
class ilCourseObjectiveMaterials
static _getCountObjectives($a_obj_id, $a_activated_only=false)
get count objectives
static _getObjectiveIds($course_id, $a_activated_only=false)
class ilobjcourseobjectivesgui
static _getInstanceByObjId($a_obj_id, $a_usr_id)
Get singleton instance.
Class ilCourseParticipantsGroupsGUI.
static getDateTimeOfPassed($a_obj_id, $a_usr_id)
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static getMemberRoles($a_ref_id)
Get member roles.
GUI class for course registrations.
static _checkRequired($a_usr_id, $a_obj_id)
Check required fields.
static formatPeriod(ilDateTime $start, ilDateTime $end)
Format a period of two date Shows: 14.
static setUseRelativeDates($a_status)
set use relative dates
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
GUI class for didactic template settings inside repository objects.
Class ilECSCourseSettings.
static _getInstanceByType($a_type)
Get Singleton Instance.
Export User Interface Class.
static deleteRuns($a_container_id, $a_user_id)
Delete runs @global type $ilDB.
const LP_MODE_MANUAL_BY_TUTOR
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_force_raise=false)
Update status.
static _lookupCompletedForObject($a_obj_id, $a_user_ids=null)
Get completed users for object.
static _lookupFailedForObject($a_obj_id, $a_user_ids=null)
Get failed users for object.
static _lookupInProgressForObject($a_obj_id, $a_user_ids=null)
Get in progress users for object.
const LP_STATUS_COMPLETED
const LP_STATUS_NOT_ATTEMPTED
const LP_STATUS_IN_PROGRESS
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')
static _lookupProgressByObjId($a_obj_id)
lookup progress for a specific object
static _isEnabled()
Check, if licencing is enabled This check is called from the ilAccessHandler class.
const LIC_MODE_REPOSITORY
_getLicensedChildObjects($a_ref_id)
Get a list of all sub objects with activated licensing.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static _fillHTMLMetaTags($a_rbac_id, $a_obj_id, $a_type)
Fill html meta tags.
Class ilMailMemberCourseRoles.
Class ilMailMemberSearchGUI.
Class Mail this class handles base functions for mail handling.
static isActivated()
Checks whether Map feature is activated.
static getMapGUI()
Get an instance of the GUI class.
static getDefaultSettings()
Get default longitude, latitude and zoom.
static _hasAccepted($a_usr_id, $a_obj_id)
Check if user has accepted agreement.
static getInstance()
Get instance.
Membership notification settings.
static isActive()
Is feature active?
static handleCode($a_ref_id, $a_type, $a_code)
Handle target parameter.
static generateCode()
Generate new registration key.
static lookupRegistrationInfo($a_obj_id)
Lookup registration info @global ilDB $ilDB @global ilObjUser $ilUser @global ilLanguage $lng.
confirmRefuseFromListObject()
updateRoleStatusObject()
Update status of additional course roles.
printMembersOutputObject()
removeSmallIconObject()
remove small icon
confirmAssignFromWaitingListObject()
static _modifyItemGUI($a_item_list_gui, $a_cmd_class, $a_item_data, $a_show_path, $a_abo_status, $a_course_ref_id, $a_course_obj_id, $a_parent_ref_id=0)
We need a static version of this, e.g.
checkAgreement()
Check agreement and redirect if it is not accepted.
deliverCertificateObject()
setContentSubTabs()
Set content sub tabs.
__getDateSelect($a_type, $a_varname, $a_selected)
refuseFromListObject()
refuse from waiting list
afterSave(ilObject $a_new_object)
save object @access public
membersObject()
Member administration.
modifyItemGUI($a_item_list_gui, $a_item_data, $a_show_path)
Modify Item ListGUI for presentation in container.
initHeaderAction($a_sub_type=null, $a_sub_id=null)
Add file manager link.
hasAdminPermission()
user has admin permission or "edit permission" permission on this course
editCourseIconsObject($a_form=null)
edit container icons
refuseSubscribersObject()
updateTutorStatusObject()
update tuto status
executeCommand()
execute command note: this method is overwritten in all container objects
updateLPFromStatus($a_member_id, $a_has_passed)
sync course status and lp status
saveNotificationObject()
:TEMP: Save notification setting (from infoscreen)
afterImport(ilObject $a_new_object)
add course admin after import file
toUnix($date, $time=array())
initInfoEditor()
init info editor
cancelMemberObject()
canceledObject is called when operation is canceled, method links back @access public
deleteMembersObject()
Delete members @global ilAccessHandler $ilAccess.
updateMemberStatusObject()
updateMemberStatus
assignFromWaitingListObject()
sendMailToSelectedUsersObject()
editMapSettingsObject()
Edit Map Settings.
static _goto($a_target, $a_add="")
goto target course
__showWaitingListTable($a_result_set, $a_waiting_list_ids=NULL)
setSubTabs($a_tab)
set sub tabs
editInfoObject(ilPropertyFormGUI $a_form=null)
Edit info page informations.
confirmRefuseSubscribersObject()
__prepareDateSelect($a_unix_time)
prepareOutput()
Handle member view.
getAttendanceListUserData($a_user_id)
getLocalRoles($a_exclude=array())
createMailSignature()
Create a course mail signature.
redirectLocToTestConfirmedObject()
checkLicenses($a_keep=false)
Check the remaining licenses of course objects and generate a message if raare.
getTabs(&$tabs_gui)
Get tabs.
saveSortingObject()
Save Sorting.
assignMembersObject(array $a_usr_ids, $a_type)
callback from repository search gui @global ilRbacSystem $rbacsystem
loadDate($a_field)
load date
updateMembersObject()
update members
addLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
__setTableGUIBasicData(&$tbl, &$result_set, $from="")
standard implementation for tables use 'from' variable use different initial setting of table
assignSubscribersObject()
__showDeleteSubscriberTable($a_result_set)
confirmAssignSubscribersObject()
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
fetchPrintMemberData($a_members)
updateCourseIconsObject()
update container icons
redirectLocToTestObject($a_force_new_run=NULL)
Test redirection will be moved lo adapter.
removeBigIconObject()
remove big icon
updateObject()
updates object entry in object_data
addMailToMemberButton($ilToolbar, $back_cmd=null, $a_separator=false)
add Mail to Member button to toolbar
memberGatewayObject()
Gateway for member administration commands.
readMemberData($ids, $role='admin', $selected_columns=null)
editMemberObject()
edit member
askResetObject()
ask reset test results
ilObjCourseGUI()
Constructor @access public.
__showRemoveFromWaitingListTable($a_result_set)
editMembersObject()
edit members
getAgreementTabs()
Get tabs for member agreement.
infoScreen()
show information screen
performRemoveFromWaitingListObject()
updateAdminStatusObject()
update admin status
removeMembersObject()
Remove members @global ilRbacReview $rbacreview @global ilRbacSystem $rbacsystem.
setShowHidePrefs()
set preferences (show/hide tabel content)
jump2UsersGalleryObject()
unsubscribeObject()
DEPRECATED?
confirmDeleteInfoFilesObject()
show info file donfimation table
fetchPrintSubscriberData($a_members)
removeTinyIconObject()
remove small icon
__prepareTimeSelect($a_unix_time)
viewObject()
list childs of current object
deleteInfoFilesObject()
Delete info files.
redirectLocToTestConfirmation($a_objective_id, $a_test_id)
Show confirmation whether user wants to start a new run or resume a previous run.
showPossibleSubObjects()
show possible sub objects selection list
__unsetSessionVariables()
renderObject()
render the object
performUnsubscribeObject()
getEditFormValues()
Get values for edit form.
updateParticipantsStatus($type, $visible_members, $passed, $notification, $blocked, $contact)
membersMapObject()
Members map.
Class ilObjCourseGroupingGUI.
_getGroupingCourseIds($a_course_ref_id, $a_course_id)
Get all ids of courses that are grouped with another course @access static.
_isActivated($a_obj_id)
Is activated.
const STATUS_DETERMINATION_MANUAL
const STATUS_DETERMINATION_LP
_registrationEnabled($a_obj_id)
Registration enabled? Method is in Access class, since it is needed by Access/ListGUI.
static getAvailablePortfolioLinksForUserIds(array $a_owner_ids, $a_back_url=null)
_getTranslation($a_role_title)
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _enabledUserRelatedData()
check wether user related tracking is enabled or not
static _lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
static hasTimings($a_ref_id)
Check if there is any active timing (in subtree)
GUI class for the workflow of copying objects.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
getFormAction($a_cmd, $a_formaction="")
get form action for command (command is method name without "Object", e.g.
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
getCreationMode()
get creation mode
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
initDidacticTemplate(ilPropertyFormGUI $form)
Show didactic template types.
addHeaderAction()
Add header action menu.
static getInstance($a_obj_id)
GUI class for service settings (calendar, notes, comments)
const AUTO_RATING_NEW_OBJECTS
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
const CALENDAR_VISIBILITY
Class ilObject Basic functions for all objects.
static _lookupObjId($a_id)
const TITLE_LENGTH
max length of object title
update()
update object in db
static _lookupTitle($a_id)
lookup object title
getRefId()
get reference id @access public
getId()
get object id @access public
static _lookupType($a_id, $a_reference=false)
lookup object type
static getInstanceByObjId($a_obj_id)
Get instance by obj type.
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
static lookupSubscribers($a_obj_id)
static _requiresPurchaseToAccess($a_ref_id, $a_purchasetype='')
this function should be used by all buyable repository objects !!
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static _getInstance()
Get instance of ilPrivacySettings.
GUI class for public user profile presentation.
This class represents an option in a radio group.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
GUI class for course/group subscriptions.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
@ilCtrl_Calls ilUsersGalleryGUI: ilPublicUserProfileGUI @ilCtrl_isCalledBy ilUsersGalleryGUI: ilObjCo...
Class ilUsersGalleryParticipants.
static formCheckbox($checked, $varname, $value, $disabled=false)
??? @access public
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static formSelect($selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
GUI class for course/group waiting list.
static _isOnList($a_usr_id, $a_obj_id)
Check if a user on the waiting list.
if(@file_exists(dirname(__FILE__).'/lang/eng.php')) $certificate
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
redirection script todo: (a better solution should control the processing via a xml file)
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']