5 require_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'],
111 (array) $_POST[
'tutors'],
112 (array) $_POST[
'admins'],
113 (array) $_POST[
'waiting'],
114 (array) $_POST[
'subscribers'],
115 (array) $_POST[
'roles']
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');
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');
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']);
855 $ilErr->setMessage(
'');
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'));
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";
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');
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";
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); 1424 $prev->setValue($this->object->getNumberOfPreviousSessions() == -1 ?
1426 $this->
object->getNumberOfPreviousSessions()
1429 $prev->setMaxLength(3);
1430 $sess->addSubItem($prev);
1433 #$next->setSubmitFormOnEnter(true); 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())
1632 if ($ilSetting->get(
"custom_icons"))
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');
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');
1837 $a_new_object->getMemberObject()->add($ilUser->getId(),
IL_CRS_ADMIN);
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'),
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);
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);
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);
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);
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);
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);
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);
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);
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)
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]))
2724 $_POST[
'members'] = $_POST[
'participants'];
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);
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)
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"));
4042 $tpl =& $tbl->getTemplateObject();
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(),
4280 $_GET[
'user_id'] ? $_GET[
'user_id'] : $ilUser->getId());
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';
4556 $mail =
new ilMail($ilUser->getId());
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=".
4781 $ilUser->getCurrentLanguage()
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))
4819 $ilErr->raiseError($lng->txt(
"msg_no_perm_read"), $ilErr->FATAL);
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"));
4883 $public->setChecked($this->object->getEnableCourseMap());
4884 $form->addItem($public);
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';
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))
5268 $user_id = $ilUser->getId();
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';
5506 $mail =
new ilMail($ilUser->getId());
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());
updateMemberStatusObject()
updateMemberStatus
confirmRefuseFromListObject()
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.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
confirmAssignSubscribersObject()
setSubmitFormOnEnter($a_val)
Set submit form on enter.
static _lookupLogin($a_user_id)
lookup login
__getDateSelect($a_type, $a_varname, $a_selected)
static _lookupName($a_user_id)
lookup user name
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
redirectLocToTestConfirmedObject()
This class represents an option in a radio group.
unsubscribeObject()
DEPRECATED?
const IL_CRS_ACTIVATION_LIMITED
Class ilCourseParticipantsGroupsGUI.
showPossibleSubObjects()
show possible sub objects selection list
class ilConditionHandlerGUI
static isActive()
Is feature active?
const IL_CRS_SUBSCRIPTION_LIMITED
__showRemoveFromWaitingListTable($a_result_set)
Container start objects page GUI class.
setObjParticipants($objParticipants)
const IL_CRS_VIEW_OBJECTIVE
editMemberObject()
edit member
const CALENDAR_VISIBILITY
membersMapObject()
Members map.
redirectLocToTestObject($a_force_new_run=NULL)
Test redirection will be moved lo adapter.
loadDate($a_field)
load date
refuseSubscribersObject()
const LP_MODE_MANUAL_BY_TUTOR
static _fieldsToInfoString($a_obj_id)
Fields to info string.
saveSortingSettings(ilPropertyFormGUI $form)
Save sorting settings.
hasAdminPermission()
user has admin permission or "edit permission" permission on this course
updateLPFromStatus($a_member_id, $a_has_passed)
sync course status and lp status
GUI class for the workflow of copying objects.
static lookupSubscribers($a_obj_id)
setPropertyForm($form)
set property form object
const TITLE_LENGTH
max length of object title
static getDateTimeOfPassed($a_obj_id, $a_usr_id)
confirmDeleteInfoFilesObject()
show info file donfimation table
static hasTimings($a_ref_id)
Check if there is any active timing (in subtree)
sendMailToSelectedUsersObject()
_registrationEnabled($a_obj_id)
Registration enabled? Method is in Access class, since it is needed by Access/ListGUI.
__showDeleteSubscriberTable($a_result_set)
jump2UsersGalleryObject()
const LP_STATUS_NOT_ATTEMPTED
Class ilObject Basic functions for all objects.
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_force_raise=false)
Update status.
static _isEnabled()
Check, if licencing is enabled This check is called from the ilAccessHandler class.
delete()
Delete for user and course type $ilDB.
updateRoleStatusObject()
Update status of additional course roles.
static formatPeriod(ilDateTime $start, ilDateTime $end)
Format a period of two date Shows: 14.
_getTranslation($a_role_title)
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static _requiresPurchaseToAccess($a_ref_id, $a_purchasetype='')
this function should be used by all buyable repository objects !!
getLocalRoles($a_exclude=array())
setValue($a_value)
Set Value.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _getObjectiveIds($course_id, $a_activated_only=false)
ilUsersGalleryGUI: ilPublicUserProfileGUI ilUsersGalleryGUI: ilObjCourseGUI, ilObjGroupGUI ...
performRemoveFromWaitingListObject()
static _lookupFailedForObject($a_obj_id, $a_user_ids=null)
Get failed users for object.
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')
updateMembersObject()
update members
setShowHidePrefs()
set preferences (show/hide tabel content)
static setUseRelativeDates($a_status)
set use relative dates
removeTinyIconObject()
remove small icon
static _lookupTitle($a_id)
lookup object title
__unsetSessionVariables()
Class ilMailMemberSearchGUI.
removeFromList($a_usr_id)
Remove from waiting list and raise event.
static getMemberRoles($a_ref_id)
Get member roles.
const IL_CRS_SUBSCRIPTION_CONFIRMATION
static _goto($a_target, $a_add="")
goto target course
__prepareTimeSelect($a_unix_time)
static handleCode($a_ref_id, $a_type, $a_code)
Handle target parameter.
const STATUS_DETERMINATION_LP
setInfo($a_info)
Set Info.
ilObjCourseGUI()
Constructor public.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
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)
fetchPrintSubscriberData($a_members)
const IL_CRS_ARCHIVE_NONE
static _hasAccepted($a_usr_id, $a_obj_id)
Check if user has accepted agreement.
isActiveAdministrationPanel()
const LP_STATUS_IN_PROGRESS
deliverCertificateObject()
Base class for attendance lists.
addHeaderCommand($a_href, $a_text, $a_target="", $a_img="")
Add Header Command (Link) (Image needed for now)
const IL_CRS_VIEW_BY_TYPE
__setTableGUIBasicData(&$tbl, &$result_set, $from="")
cancelMemberObject()
canceledObject is called when operation is canceled, method links back public
refuseFromListObject()
refuse from waiting list
static deleteRuns($a_container_id, $a_user_id)
Delete runs type $ilDB.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if(@file_exists(dirname(__FILE__).'/lang/eng.php')) $certificate
Test certificate adapter.
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
static _enabledUserRelatedData()
check wether user related tracking is enabled or not
class ilCourseObjectiveMaterials
performUnsubscribeObject()
const LIC_MODE_REPOSITORY
GUI class for public user profile presentation.
static _enabledLearningProgress()
check wether learing progress is enabled or not
const IL_CRS_SUBSCRIPTION_PASSWORD
afterSave(ilObject $a_new_object)
save object public
static getMapGUI()
Get an instance of the GUI class.
Class ilMailMemberCourseRoles.
class ilobjcourseobjectivesgui
updateCourseIconsObject()
update container icons
setValue($a_value)
Set Value.
GUI class for didactic template settings inside repository objects.
printMembersOutputObject()
static _lookupProgressByObjId($a_obj_id)
lookup progress for a specific object
const IL_CRS_VIEW_SESSIONS
confirmRefuseSubscribersObject()
setInfoObject($info)
get info sections
const MAIL_ALLOWED_TUTORS
getId()
get object id public
createMailSignature()
Create a course mail signature.
_isActivated($a_obj_id)
Is activated.
editMembersObject()
edit members
showCustomIconsEditing($a_input_colspan=1, ilPropertyFormGUI $a_form=null, $a_as_section=true)
show edit section of custom icons for container
static _getInstanceByType($a_type)
Get Singleton Instance.
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
fetchPrintMemberData($a_members)
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
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.
Class Mail this class handles base functions for mail handling.
initDidacticTemplate(ilPropertyFormGUI $form)
Show didactic template types.
static _lookupObjId($a_id)
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen
editMapSettingsObject()
Edit Map Settings.
special template class to simplify handling of ITX/PEAR
static getDefaultSettings()
Get default longitude, latitude and zoom.
readMemberData($ids, $role='admin', $selected_columns=null)
This class represents a text property in a property form.
const IL_CRS_SUBSCRIPTION_UNLIMITED
static formatDate(ilDateTime $date)
Format a date public.
getAgreementTabs()
Get tabs for member agreement.
GUI class to create PDF certificates.
static lookupRegistrationInfo($a_obj_id)
Lookup registration info ilDB $ilDB ilObjUser $ilUser ilLanguage $lng.
const IL_CRS_VIEW_ARCHIVE
GUI class for course/group subscriptions.
forwardToStyleSheet()
Forward to style object.
& forwardToPageObject()
forward command to page object
prepareOutput()
Handle member view.
redirection script todo: (a better solution should control the processing via a xml file) ...
membersObject()
Member administration.
assignSubscribersObject()
const IL_CRS_ADMIN
Base class for course and group participants.
getAttendanceListUserData($a_user_id)
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
updateParticipantsStatus($type, $visible_members, $passed, $notification, $blocked, $contact)
redirectLocToTestConfirmation($a_objective_id, $a_test_id)
Show confirmation whether user wants to start a new run or resume a previous run. ...
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
askResetObject()
ask reset test results
const STATUS_DETERMINATION_MANUAL
static getAvailablePortfolioLinksForUserIds(array $a_owner_ids, $a_back_url=null)
static _getInstanceByObjId($a_obj_id, $a_usr_id)
Get singleton instance.
removeSmallIconObject()
remove small icon
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
static _checkRequired($a_usr_id, $a_obj_id)
Check required fields.
static _isOnList($a_usr_id, $a_obj_id)
Check if a user on the waiting list.
toUnix($date, $time=array())
Class ilUsersGalleryParticipants.
addMailToMemberButton($ilToolbar, $back_cmd=null, $a_separator=false)
add Mail to Member button to toolbar
static _lookupType($a_id, $a_reference=false)
lookup object type
const AUTO_RATING_NEW_OBJECTS
Class ilObjCourseGroupingGUI.
afterImport(ilObject $a_new_object)
add course admin after import file
static _hasFields($a_container_id)
Check if there are any define fields.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static _lookupInProgressForObject($a_obj_id, $a_user_ids=null)
Get in progress users for object.
GUI class for course registrations.
__showWaitingListTable($a_result_set, $a_waiting_list_ids=NULL)
confirmAssignFromWaitingListObject()
static isActivated()
Checks whether Map feature is activated.
removeBigIconObject()
remove big icon
updateTutorStatusObject()
update tuto status
setSubTabs($a_tab)
set sub tabs
static isObjectActive($a_obj_id)
static generateCode()
Generate new registration key.
checkLicenses($a_keep=false)
Check the remaining licenses of course objects and generate a message if raare.
static _getCountObjectives($a_obj_id, $a_activated_only=false)
get count objectives
static _fillHTMLMetaTags($a_rbac_id, $a_obj_id, $a_type)
Fill html meta tags.
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
_getLicensedChildObjects($a_ref_id)
Get a list of all sub objects with activated licensing.
static getInstance()
Get instance.
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
ilContainerGUI($a_data, $a_id, $a_call_by_reference=true, $a_prepare_output=true)
Constructor public.
Class ilCourseContentGUI.
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
GUI class for course/group waiting list.
getCreationMode()
get creation mode
getRefId()
get reference id public
Class ilContainerStartObjectsContentGUI.
deleteInfoFilesObject()
Delete info files.
checkAgreement()
Check agreement and redirect if it is not accepted.
& _readFilesByCourse($a_course_id)
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
const IL_CRS_SUBSCRIPTION_DIRECT
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
static _getInstance()
Get instance of ilPrivacySettings.
editInfoObject(ilPropertyFormGUI $a_form=null)
Edit info page informations.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
GUI class for service settings (calendar, notes, comments)
static _lookupCompletedForObject($a_obj_id, $a_user_ids=null)
Get completed users for object.
update()
update object in db
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
__prepareDateSelect($a_unix_time)
memberGatewayObject()
Gateway for member administration commands.
_catchupWriteEvents($obj_id, $usr_id, $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
static redirect($a_script)
http redirect to other script
const LP_STATUS_COMPLETED
getFormAction($a_cmd, $a_formaction="")
get form action for command (command is method name without "Object", e.g.
getTabs(&$tabs_gui)
Get tabs.
editCourseIconsObject($a_form=null)
edit container icons
static getInstance($a_obj_id)
addHeaderAction()
Add header action menu.
infoScreen()
show information screen
Membership notification settings.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Class ilObjUserTrackingGUI.
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
deleteMembersObject()
Delete members ilAccessHandler $ilAccess.
assignMembersObject(array $a_usr_ids, $a_type)
callback from repository search gui ilRbacSystem $rbacsystem
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static getInstanceByObjId($a_obj_id)
Get instance by obj type.
_recordWriteEvent($obj_id, $usr_id, $action, $parent_obj_id=null)
Records a write event.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Class ilContainerStartObjectsGUI.
saveNotificationObject()
:TEMP: Save notification setting (from infoscreen)
static formCheckbox($checked, $varname, $value, $disabled=false)
??? public
Class ilECSCourseSettings.
setContentSubTabs()
Set content sub tabs.
assignFromWaitingListObject()
initInfoEditor()
init info editor
const IL_CRS_SUBSCRIPTION_DEACTIVATED
removeMembersObject()
Remove members ilRbacReview $rbacreview ilRbacSystem $rbacsystem.
const IL_CRS_ACTIVATION_UNLIMITED
addStandardContainerSubTabs($a_include_view=true)
Add standar container subtabs for view, manage, oderdering and text/media editor link.
Confirmation screen class.
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
updateAdminStatusObject()
update admin status
_getGroupingCourseIds($a_course_ref_id, $a_course_id)
Get all ids of courses that are grouped with another course static.
static setBlockedForLP($a_status)
Toggle LP blocking property status.