5 require_once
"./Services/Container/classes/class.ilContainerGUI.php";
39 $this->ctrl->saveParameter($this,array(
"ref_id",
"cmdClass"));
44 $this->lng->loadLanguageModule(
'crs');
46 $this->SEARCH_USER = 1;
47 $this->SEARCH_GROUP = 2;
48 $this->SEARCH_COURSE = 3;
56 case "deleteSubscribers":
60 case "addSubscribers":
61 $this->addSubscribers();
64 case "addFromWaitingList":
65 $this->addFromWaitingList();
68 case "removeFromWaitingList":
87 if(isset(
$_POST[
'btn_pressed'][
'deleteMembers']))
91 elseif(
$_POST[
'btn_pressed'][
'sendMailToSelectedUsers'])
103 if(isset(
$_GET[
'member_id']))
109 $_POST[
'member'] = array_unique(array_merge((array)
$_POST[
'members'],
110 (array) $_POST[
'tutors'],
111 (array) $_POST[
'admins'],
112 (array) $_POST[
'waiting'],
113 (array) $_POST[
'subscribers'],
114 (array) $_POST[
'roles']
119 if (!count(
$_POST[
"member"]))
125 foreach(
$_POST[
"member"] as $usr_id)
129 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
149 #ilUtil::sendSuccess($this->lng->txt("action_aborted"),true); 162 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
165 $part->updateNotification($ilUser->getId(), 1);
167 parent::afterImport($a_new_object);
172 $this->ctrl->setCmd(
"view");
190 include_once
'./Modules/Course/classes/class.ilCourseContentGUI.php';
192 $this->ctrl->setCmdClass(get_class($course_content_obj));
193 $this->ctrl->setCmd(
'editUserTimings');
194 $this->ctrl->forwardCommand($course_content_obj);
215 if (strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui")
217 parent::viewObject();
222 include_once(
'Services/MetaData/classes/class.ilMDUtils.php');
226 if ($ilCtrl->getNextClass() !=
"ilcolumngui")
228 include_once
'Services/Tracking/classes/class.ilLearningProgress.php';
230 $this->
object->getRefId(),
'crs');
235 include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
236 $this->tabs_gui->clearTargets();
237 $this->ctrl->setReturn($this,
'view_content');
239 $this->ctrl->setCmdClass(get_class($agreement));
240 $this->ctrl->forwardCommand($agreement);
246 include_once
"Services/Container/classes/class.ilContainerStartObjectsContentGUI.php";
248 $stgui->enableDesktop($this->object->getAboStatus(), $this);
249 return $stgui->getHTML();
260 $ret = parent::renderObject();
265 include_once
'./Modules/Course/classes/class.ilCourseContentGUI.php';
268 $this->ctrl->setCmdClass(get_class($course_content_obj));
269 $this->ctrl->forwardCommand($course_content_obj);
277 return parent::renderObject();
287 $this->ctrl->setCmd(
"showSummary");
288 $this->ctrl->setCmdClass(
"ilinfoscreengui");
302 include_once(
'Services/MetaData/classes/class.ilMDUtils.php');
305 $this->tabs_gui->setTabActive(
'info_short');
307 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
308 include_once
'Modules/Course/classes/class.ilCourseFile.php';
313 $info->enablePrivateNotes();
314 $info->enableFeedback();
316 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"]))
318 $info->enableNewsEditing();
321 if(strlen($this->object->getImportantInformation()) or
322 strlen($this->object->getSyllabus()) or
325 $info->addSection($this->lng->txt(
'crs_general_informations'));
328 if(strlen($this->object->getImportantInformation()))
330 $info->addProperty($this->lng->txt(
'crs_important_info'),
334 if(strlen($this->object->getSyllabus()))
336 $info->addProperty($this->lng->txt(
'crs_syllabus'), nl2br(
342 $tpl =
new ilTemplate(
'tpl.event_info_file.html',
true,
true,
'Modules/Course');
344 foreach($files as
$file)
346 $tpl->setCurrentBlock(
"files");
347 $this->ctrl->setParameter($this,
'file_id',$file->getFileId());
348 $tpl->setVariable(
"DOWN_LINK",$this->ctrl->getLinkTarget($this,
'sendfile'));
349 $tpl->setVariable(
"DOWN_NAME",$file->getFileName());
350 $tpl->setVariable(
"DOWN_INFO_TXT",$this->lng->txt(
'crs_file_size_info'));
351 $tpl->setVariable(
"DOWN_SIZE",$file->getFileSize());
352 $tpl->setVariable(
"TXT_BYTES",$this->lng->txt(
'bytes'));
353 $tpl->parseCurrentBlock();
355 $info->addProperty($this->lng->txt(
'crs_file_download'),
359 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
362 $record_gui->parse();
365 $info->addMetaDataSections($this->object->getId(),0, $this->
object->getType());
368 if($this->object->hasContactData())
370 $info->addSection($this->lng->txt(
"crs_contact"));
372 if(strlen($this->object->getContactName()))
374 $info->addProperty($this->lng->txt(
"crs_contact_name"),
375 $this->
object->getContactName());
377 if(strlen($this->object->getContactResponsibility()))
379 $info->addProperty($this->lng->txt(
"crs_contact_responsibility"),
380 $this->
object->getContactResponsibility());
382 if(strlen($this->object->getContactPhone()))
384 $info->addProperty($this->lng->txt(
"crs_contact_phone"),
385 $this->
object->getContactPhone());
387 if($this->object->getContactEmail())
389 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
390 $emails = split(
",",$this->object->getContactEmail());
391 foreach ($emails as $email) {
392 $email = trim($email);
393 $etpl =
new ilTemplate(
"tpl.crs_contact_email.html",
true,
true ,
'Modules/Course');
396 $etpl->setVariable(
"CONTACT_EMAIL", $email);
397 $mailString .= $etpl->get().
"<br />";
399 $info->addProperty($this->lng->txt(
"crs_contact_email"), $mailString);
401 if(strlen($this->object->getContactConsultation()))
403 $info->addProperty($this->lng->txt(
"crs_contact_consultation"),
404 nl2br($this->object->getContactConsultation()));
411 $this->lng->loadLanguageModule(
"rep");
412 $info->addSection($this->lng->txt(
"rep_activation_availability"));
413 $info->showLDAPRoleGroupMappingInfo();
416 if($this->object->getActivationUnlimitedStatus())
418 $info->addProperty($this->lng->txt(
"rep_activation_access"),
419 $this->lng->txt(
'crs_visibility_limitless'));
423 $info->addProperty($this->lng->txt(
'rep_activation_access'),
429 switch($this->object->getSubscriptionLimitationType())
432 $txt = $this->lng->txt(
"crs_info_reg_deactivated");
436 switch($this->object->getSubscriptionType())
439 $txt = $this->lng->txt(
"crs_info_reg_confirmation");
442 $txt = $this->lng->txt(
"crs_info_reg_direct");
445 $txt = $this->lng->txt(
"crs_info_reg_password");
451 $info->addProperty($this->lng->txt(
"crs_info_reg"),
$txt);
456 if($this->object->getSubscriptionUnlimitedStatus())
458 $info->addProperty($this->lng->txt(
"crs_reg_until"),
459 $this->lng->txt(
'crs_unlimited'));
461 elseif($this->object->getSubscriptionStart() < time())
463 $info->addProperty($this->lng->txt(
"crs_reg_until"),
464 $this->lng->txt(
'crs_to').
' '.
467 elseif($this->object->getSubscriptionStart() > time())
469 $info->addProperty($this->lng->txt(
"crs_reg_until"),
470 $this->lng->txt(
'crs_from').
' '.
473 if ($this->object->isSubscriptionMembershipLimited())
475 include_once
'./Modules/Course/classes/class.ilObjCourseAccess.php';
479 $this->lng->txt(
'mem_free_places'),
480 $reg_info[
'reg_info_free_places']
490 $info->addProperty($this->lng->txt(
"crs_archive"),
497 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
500 include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
503 include_once(
'Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php');
507 $this->lng->loadLanguageModule(
'ps');
508 $info->addSection($this->lng->txt(
'crs_user_agreement_info'));
509 $info->addProperty($this->lng->txt(
'ps_export_data'),$field_info->exportableFieldsToInfoString());
513 $info->addProperty($this->lng->txt(
'ps_crs_user_fields'),$fields);
517 $info->enableLearningProgress(
true);
520 $this->ctrl->forwardCommand($info);
530 $ilUser->setPref(
"grpcrs_ntf_".$this->ref_id, (
bool)
$_REQUEST[
"crs_ntf"]);
531 $ilUser->writePrefs();
534 $this->ctrl->redirect($this,
"");
545 include_once
'Modules/Course/classes/class.ilCourseFile.php';
557 $this->tabs_gui->setTabActive(
'settings');
558 $this->tabs_gui->setSubTabActive(
'crs_info_settings');
564 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.edit_info.html',
'Modules/Course');
565 $this->tpl->setVariable(
'INFO_TABLE',$a_form->getHTML());
572 foreach($files as
$file)
574 $table_data[
'id'] = $file->getFileId();
575 $table_data[
'filename'] = $file->getFileName();
576 $table_data[
'filetype'] = $file->getFileType();
577 $table_data[
'filesize'] = $file->getFileSize();
579 $rows[] = $table_data;
582 include_once(
"./Modules/Course/classes/class.ilCourseInfoFileTableGUI.php");
584 $table_gui->setTitle($this->lng->txt(
"crs_info_download"));
585 $table_gui->setData($rows);
586 $table_gui->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
587 $table_gui->addMultiCommand(
"confirmDeleteInfoFiles", $this->lng->txt(
"delete"));
588 $table_gui->setSelectAllCheckbox(
"file_id");
589 $this->tpl->setVariable(
'INFO_FILE_TABLE',$table_gui->getHTML());
604 if(!count(
$_POST[
'file_id']))
612 $this->tabs_gui->setTabActive(
'settings');
613 $this->tabs_gui->setSubTabActive(
'crs_info_settings');
615 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
619 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"deleteInfoFiles"));
620 $c_gui->setHeaderText($this->lng->txt(
"info_delete_sure"));
621 $c_gui->setCancel($this->lng->txt(
"cancel"),
"editInfo");
622 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"deleteInfoFiles");
625 include_once(
'Modules/Course/classes/class.ilCourseFile.php');
626 foreach(
$_POST[
"file_id"] as $file_id)
629 $c_gui->addItem(
"file_id[]", $file_id,
$file->getFileName());
632 $this->tpl->setContent($c_gui->getHTML());
643 if(!count(
$_POST[
'file_id']))
649 include_once(
'Modules/Course/classes/class.ilCourseFile.php');
651 foreach(
$_POST[
'file_id'] as $file_id)
654 if($this->object->getId() ==
$file->getCourseId())
673 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
675 $form->setFormAction($this->ctrl->getFormAction($this,
'updateInfo'));
676 $form->setMultipart(
true);
677 $form->setTitle($this->lng->txt(
'crs_general_info'));
678 $form->addCommandButton(
'updateInfo',$this->lng->txt(
'save'));
679 $form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
682 $area->
setValue($this->object->getImportantInformation());
685 $form->addItem($area);
688 $area->
setValue($this->object->getSyllabus());
691 $form->addItem($area);
694 $section->setTitle($this->lng->txt(
'crs_info_download'));
698 $file->enableFileNameSelection(
'file_name');
699 $form->addItem(
$file);
702 $section->setTitle($this->lng->txt(
'crs_contact'));
705 $text =
new ilTextInputGUI($this->lng->txt(
'crs_contact_name'),
'contact_name');
706 $text->
setValue($this->object->getContactName());
708 $text->setMaxLength(70);
709 $form->addItem($text);
711 $text =
new ilTextInputGUI($this->lng->txt(
'crs_contact_responsibility'),
'contact_responsibility');
712 $text->
setValue($this->object->getContactResponsibility());
714 $text->setMaxLength(70);
715 $form->addItem($text);
717 $text =
new ilTextInputGUI($this->lng->txt(
'crs_contact_phone'),
'contact_phone');
718 $text->
setValue($this->object->getContactPhone());
720 $text->setMaxLength(40);
721 $form->addItem($text);
723 $text =
new ilTextInputGUI($this->lng->txt(
'crs_contact_email'),
'contact_email');
724 $text->
setValue($this->object->getContactEmail());
725 $text->setInfo($this->lng->txt(
'crs_contact_email_info'));
727 $text->setMaxLength(255);
728 $form->addItem($text);
730 $area =
new ilTextAreaInputGUI($this->lng->txt(
'crs_contact_consultation'),
'contact_consultation');
731 $area->
setValue($this->object->getContactConsultation());
734 $form->addItem($area);
736 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
739 $this->record_gui->parse();
750 include_once
'Modules/Course/classes/class.ilCourseFile.php';
752 $file_obj->setCourseId($this->object->getId());
753 $file_obj->setFileName(strlen(
$_POST[
'file_name']) ?
755 $_FILES[
'file'][
'name']);
756 $file_obj->setFileSize($_FILES[
'file'][
'size']);
757 $file_obj->setFileType($_FILES[
'file'][
'type']);
758 $file_obj->setTemporaryName($_FILES[
'file'][
'tmp_name']);
759 $file_obj->setErrorCode($_FILES[
'file'][
'error']);
773 $ilErr->setMessage(
'');
775 $file_obj->validate();
776 $this->
object->validateInfoSettings();
777 if(strlen($ilErr->getMessage()))
779 $error = $ilErr->getMessage();
785 if(!$this->record_gui->importEditFormPostValues())
800 $this->
object->update();
802 $this->record_gui->writeEditForm();
806 include_once
'Modules/Course/classes/class.ilECSCourseSettings.php';
808 $ecs->handleContentUpdate();
827 $period = $form->getItemByPostVar(
"access_period");
828 $sub_period = $form->getItemByPostVar(
"subscription_period");
830 if((
int)
$_POST[
'activation_type'])
838 $this->
object->setOfflineStatus(!(
bool)$_POST[
'activation_online']);
839 $this->
object->setActivationStart($period->getStart()->get(
IL_CAL_UNIX));
840 $this->
object->setActivationEnd($period->getEnd()->get(
IL_CAL_UNIX));
841 $this->
object->setActivationVisibility((
int)$_POST[
'activation_visibility']);
843 $sub_type = (int)$_POST[
'subscription_type'];
846 $this->
object->setSubscriptionType($sub_type);
848 if((
int)$_POST[
'subscription_limitation_type'])
865 $this->
object->setSubscriptionStart($sub_period->getStart()->get(
IL_CAL_UNIX));
866 $this->
object->setSubscriptionEnd($sub_period->getEnd()->get(
IL_CAL_UNIX));
868 $this->
object->enableSubscriptionMembershipLimitation((
int) $_POST[
'subscription_membership_limitation']);
869 $this->
object->setSubscriptionMaxMembers((
int) $_POST[
'subscription_max']);
871 $this->
object->enableRegistrationAccessCode((
int) $_POST[
'reg_code_enabled']);
874 $this->
object->enableWaitingList((
int) $_POST[
'waiting_list']);
875 #$this->object->setSubscriptionNotify((int) $_POST['subscription_notification']); 876 $this->
object->setViewMode((
int) $_POST[
'view_mode']);
884 $this->
object->setOrderType($form->getInput(
'sorting'));
893 $this->
object->setAboStatus((
int) $_POST[
'abo']);
894 $this->
object->setShowMembers((
int) $_POST[
'show_members']);
895 $this->
object->setMailToMembersType((
int) $_POST[
'mail_type']);
897 $this->
object->enableSessionLimit((
int) $_POST[
'sl']);
898 $this->
object->setNumberOfPreviousSessions(is_numeric($_POST[
'sp']) ? (
int) $_POST[
'sp'] : -1 );
899 $this->
object->setNumberOfnextSessions(is_numeric($_POST[
'sn']) ? (
int) $_POST[
'sn'] : -1 );
901 $this->
object->setAutoNotification($_POST[
'auto_notification'] == 1 ?
true :
false);
904 $show_lp_sync_confirmation =
false;
907 if(isset($_POST[
'status_dt']))
912 $show_lp_sync_confirmation =
true;
916 $this->
object->setStatusDetermination((
int)$_POST[
'status_dt']);
921 if($this->object->validate())
923 $this->
object->update();
926 require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
933 include_once
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
935 $this->object->getId(),
946 include_once
'Modules/Course/classes/class.ilECSCourseSettings.php';
948 if(!$ecs->handleSettingsUpdate())
954 if($show_lp_sync_confirmation)
973 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
975 $cgui->setFormAction($this->ctrl->getFormAction($this,
"setLPSync"));
976 $cgui->setHeaderText($this->lng->txt(
"crs_status_determination_sync"));
977 $cgui->setCancel($this->lng->txt(
"cancel"),
"edit");
978 $cgui->setConfirm($this->lng->txt(
"confirm"),
"setLPSync");
980 $tpl->setContent($cgui->getHTML());
986 $this->
object->update();
988 $this->
object->syncMembersStatusWithLP();
991 $this->ctrl->redirect($this,
"edit");
1002 parent::editObject();
1005 $this->tabs_gui->setSubTabActive(
'crs_settings');
1017 include_once(
'./Services/Form/classes/class.ilPropertyFormGUI.php');
1018 include_once(
'./Services/Calendar/classes/class.ilDateTime.php');
1021 $form->setTitle($this->lng->txt(
'crs_edit'));
1023 $form->addCommandButton(
'update',$this->lng->txt(
'save'));
1024 $form->addCommandButton(
'cancel',$this->lng->txt(
'cancel'));
1026 $form->setFormAction($this->ctrl->getFormAction($this,
'update'));
1031 $title->setValue($this->object->getTitle());
1034 $title->setRequired(
true);
1035 $form->addItem($title);
1039 $desc->
setValue($this->object->getLongDescription());
1042 $form->addItem($desc);
1050 $this->lng->loadLanguageModule(
'rep');
1053 $section->setTitle($this->lng->txt(
'rep_activation_availability'));
1056 $online =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_online'),
'activation_online');
1057 $online->
setChecked(!$this->object->getOfflineStatus());
1058 $online->setInfo($this->lng->txt(
'crs_activation_online_info'));
1059 $form->addItem($online);
1061 $act_type =
new ilCheckboxInputGUI($this->lng->txt(
'crs_visibility_until'),
'activation_type');
1065 $this->tpl->addJavaScript(
'./Services/Form/js/date_duration.js');
1066 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
1070 $dur->setStartText($this->lng->txt(
'rep_activation_limited_start'));
1072 $dur->setEndText($this->lng->txt(
'rep_activation_limited_end'));
1073 $act_type->addSubItem($dur);
1075 $visible =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_limited_visibility'),
'activation_visibility');
1076 $visible->
setInfo($this->lng->txt(
'crs_activation_limited_visibility_info'));
1077 $visible->setChecked($this->object->getActivationVisibility());
1078 $act_type->addSubItem($visible);
1080 $form->addItem($act_type);
1084 $section->setTitle($this->lng->txt(
'crs_reg'));
1087 $reg_proc =
new ilRadioGroupInputGUI($this->lng->txt(
'crs_registration_type'),
'subscription_type');
1090 ? $this->object->getSubscriptionType()
1095 $reg_proc->addOption($opt);
1100 $pass->
setInfo($this->lng->txt(
'crs_reg_password_info'));
1101 $pass->setSubmitFormOnEnter(
true);
1103 $pass->setMaxLength(12);
1104 $pass->
setValue($this->object->getSubscriptionPassword());
1106 $opt->addSubItem($pass);
1107 $reg_proc->addOption($opt);
1110 $opt->
setInfo($this->lng->txt(
'crs_registration_confirmation_info'));
1111 $reg_proc->addOption($opt);
1114 $opt->
setInfo($this->lng->txt(
'crs_registration_deactivated'));
1115 $reg_proc->addOption($opt);
1117 $form->addItem($reg_proc);
1121 $reg_code =
new ilCheckboxInputGUI($this->lng->txt(
'crs_reg_code'),
'reg_code_enabled');
1122 $reg_code->
setChecked($this->object->isRegistrationAccessCodeEnabled());
1123 $reg_code->setValue(1);
1124 $reg_code->setInfo($this->lng->txt(
'crs_reg_code_enabled_info'));
1132 #$link = new ilNonEditableValueGUI($this->lng->txt('crs_reg_code_link')); 1134 if(!$this->object->getRegistrationAccessCode())
1136 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
1140 $reg_link->setValue($this->object->getRegistrationAccessCode());
1141 $form->addItem($reg_link);
1144 include_once
'./Services/Link/classes/class.ilLink.php';
1145 $val =
ilLink::_getLink($this->object->getRefId(),$this->
object->getType(),array(),
'_rcode'.$this->object->getRegistrationAccessCode());
1146 $link->setHTML(
'<font class="small">'.$val.
'</font>');
1147 $reg_code->addSubItem($link);
1149 $form->addItem($reg_code);
1153 $time_limit =
new ilCheckboxInputGUI($this->lng->txt(
'crs_registration_limited'),
'subscription_limitation_type');
1156 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
1160 $sdur->setStartText($this->lng->txt(
'crs_start'));
1162 $sdur->setEndText($this->lng->txt(
'crs_end'));
1164 $time_limit->addSubItem($sdur);
1165 $form->addItem($time_limit);
1169 $lim =
new ilCheckboxInputGUI($this->lng->txt(
'crs_subscription_max_members_short'),
'subscription_membership_limitation');
1171 $lim->setChecked($this->object->isSubscriptionMembershipLimited());
1174 $max->setSubmitFormOnEnter(
true);
1176 $max->setMaxLength(4);
1177 $max->setValue($this->object->getSubscriptionMaxMembers() ? $this->
object->getSubscriptionMaxMembers() :
'');
1178 $max->setTitle($this->lng->txt(
'crs_subscription_max_members'));
1179 $max->setInfo($this->lng->txt(
'crs_reg_max_info'));
1181 $lim->addSubItem($max);
1184 $wait->
setChecked($this->object->enabledWaitingList());
1185 $wait->setInfo($this->lng->txt(
'crs_wait_info'));
1186 $lim->addSubItem($wait);
1188 $form->addItem($lim);
1192 $pres->setTitle($this->lng->txt(
'crs_view_mode'));
1194 $form->addItem($pres);
1198 $view_type->
setValue($this->object->getViewMode());
1201 $opts->
setInfo($this->lng->txt(
'cntr_view_info_sessions'));
1202 $view_type->addOption($opts);
1207 $sess->setChecked($this->object->isSessionLimitEnabled());
1208 $sess->setInfo($this->lng->txt(
'sess_limit_info'));
1211 #$prev->setSubmitFormOnEnter(true); 1213 $prev->setValue($this->object->getNumberOfPreviousSessions() == -1 ?
1215 $this->
object->getNumberOfPreviousSessions()
1218 $prev->setMaxLength(3);
1219 $sess->addSubItem($prev);
1222 #$next->setSubmitFormOnEnter(true); 1224 $next->setValue($this->object->getNumberOfNextSessions() == -1 ?
1226 $this->
object->getNumberOfnextSessions()
1229 $next->setMaxLength(3);
1230 $sess->addSubItem($next);
1232 $opts->addSubItem(
$sess);
1238 $optsi->
setInfo($this->lng->txt(
'cntr_view_info_simple'));
1239 $view_type->addOption($optsi);
1242 $optbt->
setInfo($this->lng->txt(
'cntr_view_info_by_type'));
1243 $view_type->addOption($optbt);
1246 $opto->
setInfo($this->lng->txt(
'crs_view_info_objective'));
1247 $view_type->addOption($opto);
1250 $optt->
setInfo($this->lng->txt(
'crs_view_info_timing'));
1251 $view_type->addOption($optt);
1253 $form->addItem($view_type);
1268 include_once(
"Services/Tracking/classes/class.ilObjUserTracking.php");
1271 include_once
'./Services/Object/classes/class.ilObjectLP.php';
1273 if($olp->getCurrentMode())
1276 $lp_status->setTitle($this->lng->txt(
'crs_course_status_of_users'));
1277 $form->addItem($lp_status);
1279 $lp_status_options =
new ilRadioGroupInputGUI($this->lng->txt(
'crs_status_determination'),
"status_dt");
1281 $lp_status_options->
setValue($this->object->getStatusDetermination());
1283 $lp_option =
new ilRadioOption($this->lng->txt(
'crs_status_determination_lp'),
1285 $lp_status_options->addOption($lp_option);
1286 $lp_status_options->addOption(
new ilRadioOption($this->lng->txt(
'crs_status_determination_manual'),
1289 $form->addItem($lp_status_options);
1295 $feat->setTitle($this->lng->txt(
'obj_features'));
1296 $form->addItem($feat);
1298 include_once
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
1300 $this->object->getId(),
1311 $mem->
setChecked($this->object->getShowMembers());
1312 $mem->setInfo($this->lng->txt(
'crs_show_members_info'));
1313 $form->addItem($mem);
1317 $mail_type->
setValue($this->object->getMailToMembersType());
1320 $this->lng->txt(
'crs_mail_tutors_only_info'));
1321 $mail_type->addOption($mail_tutors);
1324 $this->lng->txt(
'crs_mail_all_info'));
1325 $mail_type->addOption($mail_all);
1326 $form->addItem($mail_type);
1334 $not =
new ilCheckboxInputGUI($this->lng->txt(
'crs_auto_notification'),
'auto_notification');
1336 $not->setInfo($this->lng->txt(
'crs_auto_notification_info'));
1337 $not->setChecked( $this->object->getAutoNotification() );
1338 $form->addItem($not);
1346 $desk =
new ilCheckboxInputGUI($this->lng->txt(
'crs_add_remove_from_desktop'),
'abo');
1347 $desk->
setChecked($this->object->getAboStatus());
1348 $desk->setInfo($this->lng->txt(
'crs_add_remove_from_desktop_info'));
1349 $form->addItem($desk);
1353 include_once
'Modules/Course/classes/class.ilECSCourseSettings.php';
1355 $ecs->addSettingsToForm($form,
'crs');
1375 $this->tabs_gui->setTabActive(
'settings');
1382 $tpl->setContent($a_form->getHTML());
1387 include_once
"Services/Form/classes/class.ilPropertyFormGUI.php";
1389 $form->setFormAction($this->ctrl->getFormAction($this));
1394 $form->addCommandButton(
'updateCourseIcons', $this->lng->txt(
'save'));
1401 include_once
'Modules/Course/classes/class.ilCourseFile.php';
1417 if($form->checkInput())
1420 if ($ilSetting->get(
"custom_icons"))
1422 if(
$_POST[
"cont_icon_delete"])
1424 $this->
object->removeCustomIcon();
1426 $this->
object->saveIcons($_FILES[
"cont_icon"][
'tmp_name']);
1430 $this->ctrl->redirect($this,
"editCourseIcons");
1433 $form->setValuesByPost();
1448 $this->tabs_gui->addSubTabTarget(
"crs_settings",
1449 $this->ctrl->getLinkTarget($this,
'edit'),
1450 "edit", get_class($this));
1452 $this->tabs_gui->addSubTabTarget(
"crs_info_settings",
1453 $this->ctrl->getLinkTarget($this,
'editInfo'),
1454 "editInfo", get_class($this));
1456 $this->tabs_gui->addSubTabTarget(
"preconditions",
1457 $this->ctrl->getLinkTargetByClass(
'ilConditionHandlerGUI',
'listConditions'),
1458 "",
"ilConditionHandlerGUI");
1460 $this->tabs_gui->addSubTabTarget(
"crs_start_objects",
1461 $this->ctrl->getLinkTargetByClass(
'ilContainerStartObjectsGUI',
'listStructure'),
1462 "listStructure", get_class($this));
1464 $this->tabs_gui->addSubTabTarget(
'groupings',
1465 $this->ctrl->getLinkTargetByClass(
'ilobjcoursegroupinggui',
'listGroupings'),
1470 if ($this->
ilias->getSetting(
"custom_icons"))
1472 $this->tabs_gui->addSubTabTarget(
"icon_settings",
1473 $this->ctrl->getLinkTarget($this,
'editCourseIcons'),
1474 "editCourseIcons", get_class($this));
1478 include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
1481 $this->tabs_gui->addSubTabTarget(
"crs_map_settings",
1482 $this->ctrl->getLinkTarget($this,
'editMapSettings'),
1483 "editMapSettings", get_class($this));
1487 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1488 include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
1492 $this->tabs_gui->addSubTabTarget(
'crs_custom_user_fields',
1493 $this->ctrl->getLinkTargetByClass(
'ilobjectcustomuserfieldsgui'),
1495 'ilobjectcustomuserfieldsgui');
1499 include_once
"Services/Certificate/classes/class.ilCertificate.php";
1502 $this->tabs_gui->addSubTabTarget(
1504 $this->ctrl->getLinkTargetByClass(
"ilcertificategui",
"certificateeditor"),
1505 "",
"ilcertificategui");
1510 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
1512 $this->tabs_gui->addSubTabTarget(
"crs_member_administration",
1513 $this->ctrl->getLinkTarget($this,
'members'),
1514 "members", get_class($this));
1516 $this->tabs_gui->addSubTabTarget(
"crs_members_groups",
1517 $this->ctrl->getLinkTargetByClass(
"ilCourseParticipantsGroupsGUI",
"show"),
1518 "",
"ilCourseParticipantsGroupsGUI");
1520 $this->tabs_gui->addSubTabTarget(
"crs_members_gallery",
1521 $this->ctrl->getLinkTarget($this,
'membersGallery'),
1522 "membersGallery", get_class($this));
1525 $this->object->getShowMembers() == $this->
object->SHOW_MEMBERS_ENABLED
1528 $this->tabs_gui->addSubTabTarget(
"crs_members_gallery",
1529 $this->ctrl->getLinkTarget($this,
'membersGallery'),
1530 "membersGallery", get_class($this));
1534 include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
1537 $this->tabs_gui->addSubTabTarget(
"crs_members_map",
1538 $this->ctrl->getLinkTarget($this,
'membersMap'),
1539 "membersMap", get_class($this));
1542 $childs = (array) $tree->getChildsByType($this->object->getRefId(),
'sess');
1543 if(count($childs) && $ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
1545 $this->tabs_gui->addSubTabTarget(
"events",
1546 $this->ctrl->getLinkTargetByClass(
'ilsessionoverviewgui',
'listSessions'),
1547 "",
'ilsessionoverviewgui');
1550 include_once
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
1553 $this->tabs_gui->addSubTabTarget(
'export_members',
1554 $this->ctrl->getLinkTargetByClass(
'ilmemberexportgui',
'show'),
1555 "",
'ilmemberexportgui');
1574 parent::showPossibleSubObjects();
1584 $this->
object->removeSmallIcon();
1585 $this->ctrl->redirect($this,
'editCourseIcons');
1595 $this->
object->removeBigIcon();
1596 $this->ctrl->redirect($this,
'editCourseIcons');
1607 $this->
object->removeTinyIcon();
1608 $this->ctrl->redirect($this,
'editCourseIcons');
1619 $a_new_object->getMemberObject()->add($ilUser->getId(),
IL_CRS_ADMIN);
1620 $a_new_object->getMemberObject()->updateNotification($ilUser->getId(),1);
1624 require_once(
'Services/Tracking/classes/class.ilChangeEvent.php');
1632 $this->ctrl->setParameter($this,
"ref_id", $a_new_object->
getRefId());
1634 $this->ctrl->getLinkTarget($this,
"edit",
"",
false,
false)));
1651 if(!count(
$_POST[
'archives']))
1654 $this->archiveObject();
1658 if(count(
$_POST[
'archives']) > 1)
1661 $this->archiveObject();
1666 $this->
object->initCourseArchiveObject();
1668 $abs_path = $this->
object->archives_obj->getArchiveFile((
int)
$_POST[
'archives'][0]);
1669 $basename = basename($abs_path);
1684 if(isset(
$_GET[
'admin_hide']))
1686 $ilUser->writePref(
'crs_admin_hide',(
int)
$_GET[
'admin_hide']);
1688 if(isset(
$_GET[
'tutor_hide']))
1690 $ilUser->writePref(
'crs_tutor_hide',(
int)
$_GET[
'tutor_hide']);
1692 if(isset(
$_GET[
'member_hide']))
1694 $ilUser->writePref(
'crs_member_hide',(
int)
$_GET[
'member_hide']);
1696 if(isset(
$_GET[
'subscriber_hide']))
1698 $ilUser->writePref(
'crs_subscriber_hide',(
int)
$_GET[
'subscriber_hide']);
1700 if(isset(
$_GET[
'wait_hide']))
1702 $ilUser->writePref(
'crs_wait_hide',(
int)
$_GET[
'wait_hide']);
1704 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
1707 if(isset(
$_GET[
'role_hide_'.$role_id]))
1709 $ilUser->writePref(
'crs_role_hide_'.$role_id,(
int)
$_GET[
'role_hide_'.$role_id]);
1716 if($this->show_tracking)
1718 include_once
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
1723 include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1726 if($privacy->enabledCourseAccessTimes())
1728 include_once(
'./Services/Tracking/classes/class.ilLearningProgress.php');
1732 $do_prtf = (is_array($selected_columns) &&
1733 in_array(
'prtf', $selected_columns) &&
1737 include_once
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
1739 $this->ctrl->getLinkTarget($this,
"members"));
1742 foreach((array) $ids as $usr_id)
1745 $tmp_data[
'firstname'] = $name[
'firstname'];
1746 $tmp_data[
'lastname'] = $name[
'lastname'];
1748 $tmp_data[
'passed'] = $this->
object->getMembersObject()->hasPassed($usr_id) ? 1 : 0;
1751 $tmp_data[
'passed_info'] = $this->
object->getMembersObject()->getPassedInfo($usr_id);
1753 $tmp_data[
'notification'] = $this->
object->getMembersObject()->isNotificationEnabled($usr_id) ? 1 : 0;
1754 $tmp_data[
'blocked'] = $this->
object->getMembersObject()->isBlocked($usr_id) ? 1 : 0;
1755 $tmp_data[
'usr_id'] = $usr_id;
1757 if($this->show_tracking)
1759 if(in_array($usr_id,$completed))
1763 elseif(in_array($usr_id,$in_progress))
1767 elseif(in_array($usr_id,
$failed))
1777 if($privacy->enabledCourseAccessTimes())
1779 if(isset($progress[$usr_id][
'ts']) and $progress[$usr_id][
'ts'])
1781 $tmp_data[
'access_ut'] = $progress[$usr_id][
'ts'];
1786 $tmp_data[
'access_ut'] = 0;
1787 $tmp_data[
'access_time'] = $this->lng->txt(
'no_date');
1793 $tmp_data[
'prtf'] = $all_prtf[$usr_id];
1796 $members[$usr_id] = $tmp_data;
1798 return $members ? $members : array();
1814 include_once(
'./Modules/Course/classes/class.ilCourseParticipants.php');
1815 include_once(
'./Modules/Course/classes/class.ilCourseParticipantsTableGUI.php');
1818 if(isset(
$_GET[
'member_table_nav']))
1825 include_once
'./Services/Tracking/classes/class.ilObjUserTracking.php';
1828 if($this->show_tracking)
1830 include_once(
'./Services/Object/classes/class.ilObjectLP.php');
1832 $this->show_tracking = $olp->isActive();
1835 include_once(
'./Services/Object/classes/class.ilObjectActivation.php');
1840 $this->tabs_gui->setTabActive(
'members');
1841 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
1843 $this->tpl->addBlockfile(
'ADM_CONTENT',
'adm_content',
'tpl.crs_edit_members.html',
'Modules/Course');
1844 $this->tpl->setVariable(
'FORMACTION',$this->ctrl->getFormAction($this));
1847 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
1853 'auto_complete_name' => $lng->txt(
'user'),
1855 'submit_name' => $lng->txt(
'add')
1860 $ilToolbar->addSeparator();
1863 $ilToolbar->addButton($this->lng->txt(
"crs_search_users"),
1864 $this->ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
'start'));
1867 $ilToolbar->addSeparator();
1870 $ilToolbar->addButton($this->lng->txt(
"crs_print_list"),
1871 $this->ctrl->getLinkTarget($this,
'printMembers'));
1882 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
1884 if(count($wait = $waiting_list->getAllUsers()))
1886 include_once(
'./Services/Membership/classes/class.ilWaitingListTableGUI.php');
1887 if($ilUser->getPref(
'crs_wait_hide'))
1890 $this->ctrl->setParameter($this,
'wait_hide',0);
1891 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1892 $this->lng->txt(
'show'));
1893 $this->ctrl->clearParameters($this);
1898 $this->ctrl->setParameter($this,
'wait_hide',1);
1899 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1900 $this->lng->txt(
'hide'));
1901 $this->ctrl->clearParameters($this);
1903 $table_gui->setUsers($wait);
1904 $table_gui->setTitle($this->lng->txt(
'crs_waiting_list'),
'icon_usr.svg',$this->lng->txt(
'crs_waiting_list'));
1905 $this->tpl->setVariable(
'TABLE_WAIT',$table_gui->getHTML());
1911 include_once(
'./Services/Membership/classes/class.ilSubscriberTableGUI.php');
1912 if($ilUser->getPref(
'crs_subscriber_hide'))
1915 $this->ctrl->setParameter($this,
'subscriber_hide',0);
1916 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1917 $this->lng->txt(
'show'));
1918 $this->ctrl->clearParameters($this);
1923 $this->ctrl->setParameter($this,
'subscriber_hide',1);
1924 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
1925 $this->lng->txt(
'hide'));
1926 $this->ctrl->clearParameters($this);
1928 $table_gui->readSubscriberData();
1929 $table_gui->setTitle($this->lng->txt(
'group_new_registrations'),
'icon_usr.svg',$this->lng->txt(
'group_new_registrations'));
1930 $this->tpl->setVariable(
'TABLE_SUB',$table_gui->getHTML());
1935 if($rbacreview->getNumberOfAssignedUsers(array($this->object->getDefaultAdminRole())))
1941 $ilAccess->checkAccess(
"edit_permission",
'', $this->object->getRefId()) or
1944 if($ilUser->getPref(
'crs_admin_hide'))
1951 $this->timings_enabled,
1953 $this->object->getDefaultAdminRole(),
1956 $this->ctrl->setParameter($this,
'admin_hide',0);
1958 $this->lng->txt(
'show'));
1959 $this->ctrl->clearParameters($this);
1968 $this->timings_enabled,
1970 $this->object->getDefaultAdminRole(),
1973 $this->ctrl->setParameter($this,
'admin_hide',1);
1975 $this->lng->txt(
'hide'));
1976 $this->ctrl->clearParameters($this);
1978 $table_gui->setTitle($this->lng->txt(
'crs_administrators'),
'icon_usr.svg',$this->lng->txt(
'crs_administrators'));
1979 $table_gui->parse();
1980 $this->tpl->setVariable(
'ADMINS',$table_gui->getHTML());
1982 if($rbacreview->getNumberOfAssignedUsers(array($this->object->getDefaultTutorRole())))
1984 if($ilUser->getPref(
'crs_tutor_hide'))
1991 $this->timings_enabled,
1993 $this->object->getDefaultTutorRole(),
1996 $this->ctrl->setParameter($this,
'tutor_hide',0);
1998 $this->lng->txt(
'show'));
1999 $this->ctrl->clearParameters($this);
2008 $this->timings_enabled,
2010 $this->object->getDefaultTutorRole(),
2013 $this->ctrl->setParameter($this,
'tutor_hide',1);
2015 $this->lng->txt(
'hide'));
2016 $this->ctrl->clearParameters($this);
2018 $table_gui->setTitle($this->lng->txt(
'crs_tutors'),
'icon_usr.svg',$this->lng->txt(
'crs_tutors'));
2019 $table_gui->parse();
2020 $this->tpl->setVariable(
'TUTORS',$table_gui->getHTML());
2022 if($rbacreview->getNumberOfAssignedUsers(array($this->object->getDefaultMemberRole())))
2024 if($ilUser->getPref(
'crs_member_hide'))
2030 $this->show_tracking,
2031 $this->timings_enabled,
2033 $this->object->getDefaultMemberRole(),
2037 $this->ctrl->setParameter($this,
'member_hide',0);
2039 $this->lng->txt(
'show'));
2040 $this->ctrl->clearParameters($this);
2048 $this->show_tracking,
2049 $this->timings_enabled,
2051 $this->object->getDefaultMemberRole(),
2054 $this->ctrl->setParameter($this,
'member_hide',1);
2056 $this->lng->txt(
'hide'));
2057 $this->ctrl->clearParameters($this);
2059 $table_gui->setTitle($this->lng->txt(
'crs_members'),
'icon_usr.svg',$this->lng->txt(
'crs_members'));
2060 $table_gui->parse();
2061 $this->tpl->setCurrentBlock(
'member_block');
2062 $this->tpl->setVariable(
'MEMBERS',$table_gui->getHTML());
2063 $this->tpl->parseCurrentBlock();
2069 if(!(
$GLOBALS[
'rbacreview']->getNumberOfAssignedUsers(array($role_id))))
2073 if($ilUser->getPref(
'crs_role_hide_'.$role_id))
2079 $this->show_tracking,
2080 $this->timings_enabled,
2085 $this->ctrl->setParameter($this,
'role_hide_'.$role_id,0);
2087 $this->ctrl->getLinkTarget($this,
'members'),
2088 $this->lng->txt(
'show')
2090 $this->ctrl->clearParameters($this);
2098 $this->show_tracking,
2099 $this->timings_enabled,
2104 $this->ctrl->setParameter($this,
'role_hide_'.$role_id,1);
2106 $this->ctrl->getLinkTarget($this,
'members'),
2107 $this->lng->txt(
'hide')
2109 $this->ctrl->clearParameters($this);
2113 $table_gui->parse();
2114 $this->tpl->setCurrentBlock(
'member_block');
2115 $this->tpl->setVariable(
'MEMBERS',$table_gui->getHTML());
2116 $this->tpl->parseCurrentBlock();
2120 $this->tpl->setVariable(
'TXT_SELECTED_USER',$this->lng->txt(
'crs_selected_users'));
2121 $this->tpl->setVariable(
'BTN_FOOTER_EDIT',$this->lng->txt(
'edit'));
2122 $this->tpl->setVariable(
'BTN_FOOTER_VAL',$this->lng->txt(
'remove'));
2123 $this->tpl->setVariable(
'BTN_FOOTER_MAIL',$this->lng->txt(
'crs_mem_send_mail'));
2141 $visible_members = array_intersect(array_unique((array)
$_POST[
'visible_member_ids']),$this->object->getMembersObject()->getAdmins());
2142 $passed = is_array($_POST[
'passed']) ? $_POST[
'passed'] : array();
2143 $notification = is_array($_POST[
'notification']) ? $_POST[
'notification'] : array();
2159 $visible_members = array_intersect(array_unique((array)
$_POST[
'visible_member_ids']),$this->object->getMembersObject()->getTutors());
2160 $passed = is_array($_POST[
'passed']) ? $_POST[
'passed'] : array();
2161 $notification = is_array($_POST[
'notification']) ? $_POST[
'notification'] : array();
2177 $visible_members = array_intersect(array_unique((array)
$_POST[
'visible_member_ids']),$this->object->getMembersObject()->getMembers());
2178 $passed = is_array($_POST[
'passed']) ? $_POST[
'passed'] : array();
2179 $blocked = is_array($_POST[
'blocked']) ? $_POST[
'blocked'] : array();
2194 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
2199 $users = array_merge($users,$rbacreview->assignedUsers($role_id));
2202 $passed = is_array(
$_POST[
'passed']) ?
$_POST[
'passed'] : array();
2203 $blocked = is_array(
$_POST[
'blocked']) ?
$_POST[
'blocked'] : array();
2218 include_once(
"Services/Tracking/classes/class.ilObjUserTracking.php");
2222 include_once
'./Services/Object/classes/class.ilObjectLP.php';
2226 include_once
'Services/Tracking/classes/class.ilLPMarks.php';
2227 $marks =
new ilLPMarks($this->object->getId(), $a_member_id);
2230 if($marks->getCompleted() != $a_has_passed)
2235 include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
2246 foreach($visible_members as $member_id)
2248 $this->
object->getMembersObject()->updatePassed($member_id,in_array($member_id,$passed),
true);
2255 $this->
object->getMembersObject()->updateNotification($member_id,in_array($member_id,$notification));
2256 $this->
object->getMembersObject()->updateBlocked($member_id,
false);
2260 if($this->object->getMembersObject()->isBlocked($member_id) and !in_array($member_id,$blocked))
2262 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_UNBLOCK_MEMBER,$member_id);
2264 if(!$this->object->getMembersObject()->isBlocked($member_id) and in_array($member_id,$blocked))
2266 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_BLOCK_MEMBER,$member_id);
2268 $this->
object->getMembersObject()->updateNotification($member_id,
false);
2269 $this->
object->getMembersObject()->updateBlocked($member_id,in_array($member_id,$blocked));
2283 include_once
'./Modules/Course/classes/class.ilObjCourseGrouping.php';
2285 $this->
object->initWaitingList();
2286 if($this->object->waiting_list_obj->getCountUsers())
2289 $f_result = array();
2290 foreach($this->object->waiting_list_obj->getAllUsers() as $waiting_data)
2295 $waiting_list_ids[] = $waiting_data[
'usr_id'];
2299 $this->
object->getId()) as $course_data)
2302 if($course_data[
'id'] != $this->object->getId() and
2303 $tmp_members->isGroupingMember($tmp_obj->getId(),$course_data[
'unique']))
2305 $message .= (
'<br /><span class="ilAlert">'.$this->lng->txt(
'crs_member_of').
' ');
2311 $f_result[$counter][] = $tmp_obj->getLastname().
', '.$tmp_obj->getFirstname().$message;
2312 $f_result[$counter][] = $tmp_obj->getLogin();
2333 $_POST[
'members'] = array((
int)
$_GET[
'member_id']);
2349 $post_participants = array_unique(array_merge((array)
$_POST[
'admins'],(array) $_POST[
'tutors'],(array) $_POST[
'members'], (array) $_POST[
'roles']));
2351 $participants = array_intersect((array) $post_participants, (array) $real_participants);
2355 if(!count($participants))
2363 $this->tabs_gui->setTabActive(
'members');
2364 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
2366 include_once(
'./Modules/Course/classes/class.ilCourseEditParticipantsTableGUI.php');
2368 $table_gui->setTitle($this->lng->txt(
'crs_header_edit_members'),
'icon_usr.svg',$this->lng->txt(
'crs_header_edit_members'));
2371 $this->tpl->setContent($table_gui->getHTML());
2384 global $rbacsystem, $rbacreview,
$ilUser, $ilAccess;
2388 if(!count(
$_POST[
'participants']))
2395 $notifications =
$_POST[
'notification'] ?
$_POST[
'notification'] : array();
2396 $passed =
$_POST[
'passed'] ?
$_POST[
'passed'] : array();
2397 $blocked =
$_POST[
'blocked'] ?
$_POST[
'blocked'] : array();
2400 $hasEditPermissionAccess =
2402 $ilAccess->checkAccess(
'edit_permission',
'',$this->object->getRefId()) or
2408 $assignableLocalCourseRoles = array();
2409 $courseAdminRoleId = $this->
object->getDefaultAdminRole();
2410 foreach ($this->object->getLocalCourseRoles(
false) as $title => $role_id)
2412 $assignableLocalCourseRoles[$role_id] = $title;
2416 foreach(
$_POST[
'participants'] as $usr_id)
2418 $memberIsCourseAdmin = $rbacreview->isAssigned($usr_id, $courseAdminRoleId);
2423 if (! $hasEditPermissionAccess && $memberIsCourseAdmin &&
2424 ! in_array($courseAdminRoleId,
$_POST[
'roles'][$usr_id])
2427 $_POST[
'roles'][$usr_id][] = $courseAdminRoleId;
2431 foreach ((array)
$_POST[
'roles'][$usr_id] as $role_id)
2433 if(!array_key_exists($role_id, $assignableLocalCourseRoles))
2439 if(!$hasEditPermissionAccess &&
2440 $role_id == $courseAdminRoleId &&
2441 !$memberIsCourseAdmin)
2453 if(!isset(
$_POST[
'roles'][$admin_id]))
2458 if(in_array($courseAdminRoleId,
$_POST[
'roles'][$admin_id]))
2468 $_POST[
'members'] = $_POST[
'participants'];
2473 foreach(
$_POST[
'participants'] as $usr_id)
2475 $this->
object->getMembersObject()->updateRoleAssignments($usr_id,(array)
$_POST[
'roles'][$usr_id]);
2478 $this->
object->getMembersObject()->updateNotification($usr_id,0);
2479 if(($this->object->getMembersObject()->isTutor($usr_id) or $this->
object->getMembersObject()->isAdmin($usr_id)) and in_array($usr_id,$notifications))
2481 $this->
object->getMembersObject()->updateNotification($usr_id,1);
2484 $this->
object->getMembersObject()->updateBlocked($usr_id,0);
2485 if((!$this->object->getMembersObject()->isAdmin($usr_id) and !$this->
object->getMembersObject()->isTutor($usr_id)) and in_array($usr_id,$blocked))
2487 $this->
object->getMembersObject()->updateBlocked($usr_id,1);
2489 $this->
object->getMembersObject()->updatePassed($usr_id,in_array($usr_id,$passed),
true);
2490 $this->
object->getMembersObject()->sendNotification(
2491 $this->object->getMembersObject()->NOTIFY_STATUS_CHANGED,
2497 $this->ctrl->redirect($this,
"members");
2512 if(!isset(
$_GET[
"member_id"]) or !$this->object->getMembersObject()->isAssigned((
int)
$_GET[
"member_id"]))
2514 $this->
ilias->raiseError($this->lng->txt(
"crs_no_valid_member_id_given"),$this->
ilias->error_obj->MESSAGE);
2519 $passed = $this->
object->getMembersObject()->hasPassed((
int) $_GET[
'member_id']);
2520 $notify = $this->
object->getMembersObject()->isNotificationEnabled((
int) $_GET[
'member_id']);
2521 $blocked = $this->
object->getMembersObject()->isBlocked((
int) $_GET[
'member_id']);
2523 $this->
object->getMembersObject()->updateRoleAssignments((
int) $_GET[
'member_id'],
$_POST[
'roles']);
2524 $this->
object->getMembersObject()->updatePassed((
int) $_GET[
'member_id'],(
int)
$_POST[
'passed'],
true);
2525 $this->
object->getMembersObject()->updateNotification((
int) $_GET[
'member_id'],(
int) $_POST[
'notification']);
2526 $this->
object->getMembersObject()->updateBlocked((
int) $_GET[
'member_id'],(
int) $_POST[
'blocked']);
2528 if($passed != $this->object->getMembersObject()->hasPassed((
int) $_GET[
'member_id']) or
2529 $notify != $this->
object->getMembersObject()->isNotificationEnabled((
int) $_GET[
'member_id']) or
2530 $blocked != $this->
object->getMembersObject()->isBlocked((
int) $_GET[
'member_id']))
2532 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_STATUS_CHANGED,(int) $_GET[
'member_id']);
2556 if(!count($a_usr_ids))
2563 foreach($a_usr_ids as $user_id)
2569 if($this->object->getMembersObject()->isAssigned($user_id))
2575 case $this->
object->getDefaultMemberRole():
2576 $this->
object->getMembersObject()->add($user_id,
IL_CRS_MEMBER);
2578 case $this->
object->getDefaultTutorRole():
2579 $this->
object->getMembersObject()->add($user_id,
IL_CRS_TUTOR);
2581 case $this->
object->getDefaultAdminRole():
2582 $this->
object->getMembersObject()->add($user_id,
IL_CRS_ADMIN);
2585 if(in_array($a_type,$this->object->getLocalCourseRoles(
true)))
2587 $this->
object->getMembersObject()->add($user_id,
IL_CRS_MEMBER);
2588 $this->
object->getMembersObject()->updateRoleAssignments($user_id,(array)$a_type);
2592 $GLOBALS[
'ilLog']->write(__METHOD__.
': Can\'t find role with role id "' . $a_type .
'" to assign users to.');
2598 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_ACCEPT_USER,$user_id);
2600 $this->
object->checkLPStatusSync($user_id);
2609 unset(
$_SESSION[
'crs_usr_search_result']);
2612 $this->ctrl->redirect($this,
'members');
2624 if(!count(
$_POST[
"waiting"]))
2631 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
2635 foreach(
$_POST[
"waiting"] as $user_id)
2641 if($this->object->getMembersObject()->isAssigned($user_id))
2645 $this->
object->getMembersObject()->add($user_id,
IL_CRS_MEMBER);
2646 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_ACCEPT_USER,$user_id);
2649 $this->
object->checkLPStatusSync($user_id);
2680 if(!count(
$_POST[
'waiting']))
2687 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
2690 foreach(
$_POST[
"waiting"] as $user_id)
2693 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_DISMISS_SUBSCRIBER,$user_id);
2714 if(!is_array(
$_SESSION[
"crs_delete_waiting_list_ids"]))
2722 $this->
object->initWaitingList();
2723 foreach(
$_SESSION[
'crs_delete_waiting_list_ids'] as $usr_id)
2725 $this->
object->waiting_list_obj->removeFromList($usr_id);
2736 global $rbacsystem,
$ilErr;
2741 if(!is_array(
$_POST[
"subscribers"]))
2749 if(!$this->object->getMembersObject()->assignSubscribers(
$_POST[
"subscribers"]))
2757 foreach(
$_POST[
"subscribers"] as $usr_id)
2759 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_ACCEPT_SUBSCRIBER,$usr_id);
2761 $this->
object->checkLPStatusSync($usr_id);
2776 if($this->object->isSubscriptionMembershipLimited() and $this->
object->getSubscriptionMaxMembers() and
2777 $this->
object->getSubscriptionMaxMembers() <= $this->
object->getMembersObject()->getCountMembers())
2784 if($number = $this->object->getMembersObject()->autoFillSubscribers())
2802 $this->tabs_gui->setTabActive(
'members');
2812 if(!is_array(
$_POST[
"subscriber"]) or !count(
$_POST[
"subscriber"]))
2822 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.crs_editMembers.html",
'Modules/Course');
2828 $f_result = array();
2830 foreach(
$_POST[
"subscriber"] as $member_id)
2832 $member_data = $this->
object->getMembersObject()->getSubscriberData($member_id);
2837 $f_result[$counter][] = $tmp_obj->getLogin();
2838 $f_result[$counter][] = $tmp_obj->getFirstname();
2839 $f_result[$counter][] = $tmp_obj->getLastname();
2853 $this->tabs_gui->setTabActive(
'members');
2863 if(!is_array(
$_POST[
"waiting_list"]) or !count(
$_POST[
"waiting_list"]))
2873 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.crs_editMembers.html",
'Modules/Course');
2874 $this->
object->initWaitingList();
2880 $f_result = array();
2882 foreach(
$_POST[
"waiting_list"] as $wait_id)
2884 $user_data =& $this->
object->waiting_list_obj->getUser($wait_id);
2888 $f_result[$counter][] = $tmp_obj->getLogin();
2889 $f_result[$counter][] = $tmp_obj->getFirstname();
2890 $f_result[$counter][] = $tmp_obj->getLastname();
2891 #$f_result[$counter][] = strftime("%Y-%m-%d %R",$user_data["time"]); 2907 if($this->object->getMembersObject()->isLastAdmin($ilUser->getId()))
2914 $this->tabs_gui->setTabActive(
'crs_unsubscribe');
2916 include_once
"Services/Utilities/classes/class.ilConfirmationGUI.php";
2918 $cgui->setHeaderText($this->lng->txt(
'crs_unsubscribe_sure'));
2919 $cgui->setFormAction($this->ctrl->getFormAction($this));
2920 $cgui->setCancel($this->lng->txt(
"cancel"),
"cancel");
2921 $cgui->setConfirm($this->lng->txt(
"crs_unsubscribe"),
"performUnsubscribe");
2922 $this->tpl->setContent($cgui->getHTML());
2939 $this->
object->getMembersObject()->delete($this->
ilias->account->getId());
2940 $this->
object->getMembersObject()->sendUnsubscribeNotificationToAdmins($this->
ilias->account->getId());
2941 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_UNSUBSCRIBE,$ilUser->getId());
2945 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id", $this->tree->getParentId($this->ref_id));
2946 $ilCtrl->redirectByClass(
"ilrepositorygui",
"");
2960 $participants = array_merge((array)
$_POST[
'admins'],(array) $_POST[
'tutors'], (array) $_POST[
'members'], (array) $_POST[
'roles']);
2970 if(!$this->object->getMemberObject()->checkLastAdmin($participants))
2980 !$ilAccess->checkAccess(
'edit_permission',
'',$this->object->getRefId()) and
2984 foreach ($participants as $usr_id)
2987 if($part->isAdmin())
2997 $this->tabs_gui->setTabActive(
'members');
2998 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
3000 include_once(
'./Services/Utilities/classes/class.ilConfirmationGUI.php');
3002 $confirm->setFormAction($this->ctrl->getFormAction($this,
'deleteMembers'));
3003 $confirm->setHeaderText($this->lng->txt(
'crs_header_delete_members'));
3004 $confirm->setConfirm($this->lng->txt(
'confirm'),
'removeMembers');
3005 $confirm->setCancel($this->lng->txt(
'cancel'),
'members');
3007 foreach($participants as $usr_id)
3011 $confirm->addItem(
'participants[]',
3013 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
3017 $this->tpl->setContent($confirm->getHTML());
3029 global $rbacreview, $rbacsystem, $ilAccess,
$ilUser;
3033 if(!is_array(
$_POST[
"participants"]) or !count(
$_POST[
"participants"]))
3044 !$ilAccess->checkAccess(
'edit_permission',
'', $this->object->getRefId()) and
3049 $courseAdminRoleId = null;
3050 foreach ($this->object->getLocalCourseRoles(
false) as $title => $role_id)
3052 if (substr($title, 0, 12) ==
'il_crs_admin')
3054 $courseAdminRoleId = $role_id;
3058 foreach (
$_POST[
'participants'] as $usr_id)
3060 if ($rbacreview->isAssigned($usr_id, $courseAdminRoleId))
3069 if(!$this->object->getMembersObject()->deleteParticipants(
$_POST[
"participants"]))
3079 foreach(
$_POST[
"participants"] as $usr_id)
3081 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_DISMISS_MEMBER,$usr_id);
3085 $this->ctrl->redirect($this,
"members");
3096 if(!
$_POST[
'subscribers'])
3103 if(!$this->object->getMembersObject()->deleteSubscribers(
$_POST[
"subscribers"]))
3111 foreach(
$_POST[
'subscribers'] as $usr_id)
3113 $this->
object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_DISMISS_SUBSCRIBER,$usr_id);
3128 if ($ilAccess->checkAccess(
'visible',
'',$this->ref_id))
3130 $GLOBALS[
'ilTabs']->addTarget(
"info_short",
3131 $this->ctrl->getLinkTargetByClass(
3132 array(
"ilobjcoursegui",
"ilinfoscreengui"),
"showSummary"),
3136 if($ilAccess->checkAccess(
'leave',
'',$this->object->getRefId()) and $this->object->getMemberObject()->isMember())
3138 $GLOBALS[
'ilTabs']->addTarget(
"crs_unsubscribe",
3139 $this->ctrl->getLinkTarget($this,
"unsubscribe"),
3151 global $rbacsystem,$ilAccess,
$ilUser,
$lng, $ilHelp;
3153 $ilHelp->setScreenIdComponent(
"crs");
3155 $this->ctrl->setParameter($this,
"ref_id",$this->ref_id);
3157 if($ilAccess->checkAccess(
'read',
'',$this->ref_id))
3159 $tabs_gui->addTab(
'view_content', $lng->txt(
"content"),
3160 $this->ctrl->getLinkTarget($this,
''));
3164 if($ilAccess->checkAccess(
'write',
'',$this->ref_id))
3166 include_once(
'./Modules/Course/classes/class.ilCourseObjective.php');
3169 $tabs_gui->addTarget(
3171 $this->ctrl->getLinkTargetByClass(
'illoeditorgui',
''),
3178 if ($ilAccess->checkAccess(
'visible',
'',$this->ref_id))
3185 $force_active = (strtolower(
$_GET[
"cmdClass"]) ==
"ilinfoscreengui" 3186 || strtolower(
$_GET[
"cmdClass"]) ==
"ilnotegui")
3189 $tabs_gui->addTarget(
"info_short",
3190 $this->ctrl->getLinkTargetByClass(
3191 array(
"ilobjcoursegui",
"ilinfoscreengui"),
"showSummary"),
3193 "",
"", $force_active);
3195 if ($ilAccess->checkAccess(
'write',
'',$this->ref_id))
3197 $force_active = (strtolower(
$_GET[
"cmdClass"]) ==
"ilconditionhandlergui" 3198 &&
$_GET[
"item_id"] ==
"")
3201 $tabs_gui->addTarget(
"settings",
3202 $this->ctrl->getLinkTarget($this,
"edit"),
3203 array(
"edit",
"editMapSettings",
"editCourseIcons",
"listStructure"),
"",
"", $force_active);
3208 include_once
'./Services/Mail/classes/class.ilMail.php';
3212 if($ilAccess->checkAccess(
'write',
'',$this->ref_id))
3214 $tabs_gui->addTarget(
"members",
3215 $this->ctrl->getLinkTarget($this,
"members"),
3220 $this->object->getShowMembers() == $this->
object->SHOW_MEMBERS_ENABLED and
3224 $tabs_gui->addTarget(
"members",
3225 $this->ctrl->getLinkTarget($this,
"membersGallery"),
3231 $GLOBALS[
'rbacsystem']->checkAccess(
'internal_mail',$mail->getMailObjectReferenceId ()) and
3235 $tabs_gui->addTarget(
"members",
3236 $this->ctrl->getLinkTarget($this,
"mailMembersBtn"),
3244 include_once
'./Services/Tracking/classes/class.ilLearningProgressAccess.php';
3247 $tabs_gui->addTarget(
'learning_progress',
3248 $this->ctrl->getLinkTargetByClass(array(
'ilobjcoursegui',
'illearningprogressgui'),
''),
3250 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui'));
3256 include_once(
"Services/License/classes/class.ilLicenseAccess.php");
3257 if ($ilAccess->checkAccess(
'edit_permission',
'', $this->ref_id)
3260 $tabs_gui->addTarget(
"licenses",
3261 $this->ctrl->getLinkTargetByClass(
'illicenseoverviewgui',
''),
3262 "",
"illicenseoverviewgui");
3266 if ($ilAccess->checkAccess(
'write',
'',$this->ref_id))
3268 $tabs_gui->addTarget(
"meta_data",
3269 $this->ctrl->getLinkTargetByClass(array(
'ilobjcoursegui',
'ilmdeditorgui'),
'listSection'),
3274 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
3276 $tabs_gui->addTarget(
3278 $this->ctrl->getLinkTargetByClass(
'ilexportgui',
''),
3284 if ($ilAccess->checkAccess(
'edit_permission',
'',$this->ref_id))
3286 $tabs_gui->addTarget(
"perm_settings",
3287 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"),
3288 array(
"perm",
"info",
"owner"),
'ilpermissiongui');
3291 if ($this->ctrl->getTargetScript() ==
"adm_object.php")
3293 $tabs_gui->addTarget(
"show_owner",
3294 $this->ctrl->getLinkTarget($this,
"owner"),
"owner", get_class($this));
3296 if ($this->tree->getSavedNodeData($this->ref_id))
3298 $tabs_gui->addTarget(
"trash",
3299 $this->ctrl->getLinkTarget($this,
"trash"),
"trash", get_class($this));
3303 if($ilAccess->checkAccess(
'join',
'',$this->ref_id)
3304 and !$this->
object->getMemberObject()->isAssigned())
3306 include_once
'./Modules/Course/classes/class.ilCourseWaitingList.php';
3311 $this->lng->txt(
'membership_leave'),
3312 $this->ctrl->getLinkTargetByClass(
'ilcourseregistrationgui',
'show',
'')
3319 $tabs_gui->addTarget(
"join",
3320 $this->ctrl->getLinkTargetByClass(
'ilcourseregistrationgui',
"show"),
3325 if($ilAccess->checkAccess(
'leave',
'',$this->object->getRefId())
3326 and $this->object->getMemberObject()->isMember())
3328 $tabs_gui->addTarget(
"crs_unsubscribe",
3329 $this->ctrl->getLinkTarget($this,
"unsubscribe"),
3338 foreach($a_members as $member_id)
3341 $member_data = $this->
object->getMembersObject()->getSubscriberData($member_id);
3345 $print_member[$member_id][
'login'] = $tmp_obj->getLogin();
3346 $print_member[$member_id][
'name'] = $tmp_obj->getLastname().
', '.$tmp_obj->getFirstname();
3368 global $ilAccess,
$lng;
3370 $lng->loadLanguageModule(
'trac');
3372 #$is_admin = (bool) $ilAccess->checkAccess("write",'',$this->object->getRefId()); 3375 include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
3378 if($privacy->enabledCourseAccessTimes())
3380 include_once(
'./Services/Tracking/classes/class.ilLearningProgress.php');
3384 if($this->show_tracking)
3386 include_once
'Services/Tracking/classes/class.ilLPStatusWrapper.php';
3392 foreach($a_members as $member_id)
3397 $print_member[$member_id][
'login'] = $tmp_obj->getLogin();
3398 $print_member[$member_id][
'name'] = $tmp_obj->getLastname().
', '.$tmp_obj->getFirstname();
3400 if($this->object->getMembersObject()->isAdmin($member_id))
3402 $print_member[$member_id][
'role'] = $this->lng->txt(
"il_crs_admin");
3404 elseif($this->object->getMembersObject()->isTutor($member_id))
3406 $print_member[$member_id][
'role'] = $this->lng->txt(
"il_crs_tutor");
3408 elseif($this->object->getMembersObject()->isMember($member_id))
3410 $print_member[$member_id][
'role'] = $this->lng->txt(
"il_crs_member");
3412 if($this->object->getMembersObject()->isAdmin($member_id) or $this->
object->getMembersObject()->isTutor($member_id))
3414 if($this->object->getMembersObject()->isNotificationEnabled($member_id))
3416 $print_member[$member_id][
'status'] = $this->lng->txt(
"crs_notify");
3420 $print_member[$member_id][
'status'] = $this->lng->txt(
"crs_no_notify");
3425 if($this->object->getMembersObject()->isBlocked($member_id))
3427 $print_member[$member_id][
'status'] = $this->lng->txt(
"crs_blocked");
3431 $print_member[$member_id][
'status'] = $this->lng->txt(
"crs_unblocked");
3437 $print_member[$member_id][
'passed'] = $this->
object->getMembersObject()->hasPassed($member_id) ?
3438 $this->lng->txt(
'crs_member_passed') :
3439 $this->lng->txt(
'crs_member_not_passed');
3442 if($privacy->enabledCourseAccessTimes())
3444 if(isset($progress[$member_id][
'ts']) and $progress[$member_id][
'ts'])
3452 $print_member[$member_id][
'access'] = $this->lng->txt(
'no_date');
3455 if($this->show_tracking)
3457 if(in_array($member_id,$completed))
3461 elseif(in_array($member_id,$in_progress))
3465 elseif(in_array($member_id,
$failed))
3496 case 'notification':
3510 $ilTabs->clearTargets();
3511 $ilTabs->setBackTarget($this->lng->txt(
'back'),
3512 $this->ctrl->getLinkTarget($this,
'members'));
3515 $form = $list->initForm(
'printMembersOutput');
3516 $this->tpl->setContent($form->getHTML());
3521 include_once(
'./Modules/Course/classes/class.ilCourseParticipants.php');
3524 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
3527 include_once
'Services/Membership/classes/class.ilAttendanceList.php';
3529 $list->setId(
'crsmemlst');
3531 $list->setTitle($this->lng->txt(
'crs_members_print_title'),
3532 $this->lng->txt(
'obj_crs').
': '.$this->
object->getTitle());
3534 include_once
'./Services/Tracking/classes/class.ilObjUserTracking.php';
3537 if($this->show_tracking)
3539 include_once(
'./Services/Object/classes/class.ilObjectLP.php');
3541 $this->show_tracking = $olp->isActive();
3543 if($this->show_tracking)
3545 $list->addPreset(
'progress', $this->lng->txt(
'learning_progress'),
true);
3548 include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
3550 if($privacy->enabledCourseAccessTimes())
3552 $list->addPreset(
'access', $this->lng->txt(
'last_access'),
true);
3555 $list->addPreset(
'status', $this->lng->txt(
'crs_status'),
true);
3556 $list->addPreset(
'passed', $this->lng->txt(
'crs_passed'),
true);
3563 return $this->members_data[$a_user_id];
3569 $list->initFromForm();
3570 $list->setCallback(array($this,
'getAttendanceListUserData'));
3572 $this->members_data = $this->
fetchPrintMemberData($this->object->getMembersObject()->getParticipants());
3573 $list->getNonMemberUserData($this->members_data);
3575 $list->getFullscreenHTML();
3616 $is_admin = (bool) $ilAccess->checkAccess(
"write",
"", $this->object->getRefId());
3619 $this->object->getShowMembers() == $this->
object->SHOW_MEMBERS_DISABLED)
3621 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"),$ilErr->MESSAGE);
3625 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.crs_members_gallery.html',
'Modules/Course');
3628 $this->tabs_gui->setTabActive(
'members');
3629 $this->tabs_gui->setSubTabActive(
'crs_members_gallery');
3634 if(count($members = $this->object->getMembersObject()->getParticipants()))
3636 $ordered_members = array();
3638 foreach($members as $member_id)
3648 array_push($ordered_members,array(
"id" => $member_id,
3649 "login" => $usr_obj->getLogin(),
3650 "lastname" => $usr_obj->getLastName(),
3651 "firstname" => $usr_obj->getFirstName(),
3652 "sortlastname" => strtoupper($usr_obj->getLastName()).strtoupper($usr_obj->getFirstName()),
3653 "usr_obj" => $usr_obj));
3658 foreach($ordered_members as $member)
3660 $usr_obj = $member[
"usr_obj"];
3662 if(!$usr_obj->getActive())
3667 $public_profile = in_array($usr_obj->getPref(
"public_profile"), array(
"y",
"g")) ?
"y" :
"";
3670 $this->ctrl->setParameterByClass(
"ilpublicuserprofilegui",
"user", $member[
"id"]);
3671 $profile_target = $this->ctrl->getLinkTargetByClass(
"ilpublicuserprofilegui",
"getHTML");
3674 $file = $usr_obj->getPersonalPicturePath(
"xsmall");
3692 if ($public_profile ==
"y") {
3693 $this->tpl->setCurrentBlock(
"member_linked");
3694 $this->tpl->setVariable(
"LINK_PROFILE", $profile_target);
3695 $this->tpl->setVariable(
"SRC_USR_IMAGE",
$file);
3696 $this->tpl->parseCurrentBlock();
3715 $this->tpl->setCurrentBlock(
"member_not_linked");
3716 $this->tpl->setVariable(
"SRC_USR_IMAGE",
$file);
3717 $this->tpl->parseCurrentBlock();
3719 $this->tpl->setCurrentBlock(
"member");
3721 if ($this->object->getMembersObject()->isAdmin($member[
"id"])) {
3722 $this->tpl->setVariable(
"MEMBER_CLASS",
"il_Admin");
3724 elseif ($this->object->getMembersObject()->isTutor($member[
"id"])) {
3725 $this->tpl->setVariable(
"MEMBER_CLASS",
"il_Tutor");
3728 $this->tpl->setVariable(
"MEMBER_CLASS",
"il_Member");
3734 if ($public_profile ==
"y")
3736 $this->tpl->setVariable(
"FIRSTNAME", $member[
"firstname"]);
3737 $this->tpl->setVariable(
"LASTNAME", $member[
"lastname"]);
3739 $this->tpl->setVariable(
"LOGIN", $member[
"login"]);
3740 $this->tpl->parseCurrentBlock();
3742 $this->tpl->setCurrentBlock(
"members");
3743 $this->tpl->setVariable(
"MEMBERS_TABLE_HEADER",$this->lng->txt(
'crs_members_title'));
3744 $this->tpl->parseCurrentBlock();
3747 $this->tpl->setVariable(
"TITLE",$this->lng->txt(
'crs_members_print_title'));
3750 $headline = $this->
object->getTitle().
"<br/>".$this->
object->getDescription();
3752 $this->tpl->setVariable(
"HEADLINE",$headline);
3761 include_once
"./Services/Table/classes/class.ilTableGUI.php";
3772 $offset =
$_GET[
"update_members"] ?
$_GET[
"offset"] : 0;
3773 $order =
$_GET[
"update_members"] ?
$_GET[
"sort_by"] :
'login';
3774 $direction =
$_GET[
"update_members"] ?
$_GET[
"sort_order"] :
'';
3778 $offset =
$_GET[
"update_subscribers"] ?
$_GET[
"offset"] : 0;
3779 $order =
$_GET[
"update_subscribers"] ?
$_GET[
"sort_by"] :
'sub_time';
3780 $direction =
$_GET[
"update_subscribers"] ?
$_GET[
"sort_order"] :
'';
3784 $offset =
$_GET[
"offset"];
3785 $order =
$_GET[
"sort_by"] ?
$_GET[
"sort_by"] :
"title";
3786 $direction =
$_GET[
"sort_order"];
3790 $offset =
$_GET[
"offset"];
3791 $order =
$_GET[
"sort_by"] ?
$_GET[
"sort_by"] :
"title";
3792 $direction =
$_GET[
"sort_order"];
3796 $offset =
$_GET[
"offset"];
3798 if (
$_GET[
"sort_by"] ==
"title" or empty(
$_GET[
"sort_by"]))
3800 $_GET[
"sort_by"] =
"login";
3802 $order =
$_GET[
"sort_by"];
3803 $direction =
$_GET[
"sort_order"];
3807 $tbl->setOrderColumn($order);
3808 $tbl->setOrderDirection($direction);
3809 $tbl->setOffset($offset);
3810 $tbl->setLimit(
$_GET[
"limit"]);
3811 $tbl->setMaxCount(count($result_set));
3812 $tbl->setFooter(
"tblfooter",$this->lng->txt(
"previous"),$this->lng->txt(
"next"));
3813 $tbl->setData($result_set);
3820 $tpl =& $tbl->getTemplateObject();
3822 $tpl->setCurrentBlock(
"tbl_form_header");
3823 $tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
3824 $tpl->parseCurrentBlock();
3825 $tpl->setCurrentBlock(
"tbl_action_btn");
3826 $tpl->setVariable(
"BTN_NAME",
"cancelMember");
3827 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"cancel"));
3828 $tpl->parseCurrentBlock();
3829 $tpl->setCurrentBlock(
"tbl_action_btn");
3830 $tpl->setVariable(
"BTN_NAME",
"performRemoveFromWaitingList");
3831 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"delete"));
3832 $tpl->parseCurrentBlock();
3833 $tpl->setCurrentBlock(
"tbl_action_row");
3834 $tpl->setVariable(
"COLUMN_COUNTS",4);
3836 $tpl->parseCurrentBlock();
3838 $tbl->setTitle($this->lng->txt(
"crs_header_remove_from_waiting_list"),
"icon_usr.svg",
3839 $this->lng->txt(
"crs_header_remove_from_waiting_list"));
3840 $tbl->setHeaderNames(array($this->lng->txt(
"username"),
3841 $this->lng->txt(
"firstname"),
3842 $this->lng->txt(
"lastname"),
3843 $this->lng->txt(
"crs_time")));
3844 $tbl->setHeaderVars(array(
"login",
3848 array(
"ref_id" => $this->object->getRefId(),
3850 "cmdClass" =>
"ilobjcoursegui",
3851 "cmdNode" =>
$_GET[
"cmdNode"]));
3853 $tbl->setColumnWidth(array(
"25%",
"25%",
"25%",
"25%"));
3858 $this->tpl->setVariable(
"EDIT_MEMBER_TABLE",$tbl->tpl->get());
3866 $tpl =& $tbl->getTemplateObject();
3868 $tpl->setCurrentBlock(
"tbl_form_header");
3869 $tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
3870 $tpl->parseCurrentBlock();
3871 $tpl->setCurrentBlock(
"tbl_action_btn");
3872 $tpl->setVariable(
"BTN_NAME",
"removeSubscribers");
3873 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"delete"));
3874 $tpl->parseCurrentBlock();
3875 $tpl->setCurrentBlock(
"tbl_action_btn");
3876 $tpl->setVariable(
"BTN_NAME",
"cancelMember");
3877 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"cancel"));
3878 $tpl->parseCurrentBlock();
3879 $tpl->setCurrentBlock(
"tbl_action_row");
3880 $tpl->setVariable(
"COLUMN_COUNTS",4);
3882 $tpl->parseCurrentBlock();
3884 $tbl->setTitle($this->lng->txt(
"crs_header_delete_subscribers"),
"icon_usr.svg",$this->lng->txt(
"crs_header_delete_members"));
3885 $tbl->setHeaderNames(array($this->lng->txt(
"username"),
3886 $this->lng->txt(
"firstname"),
3887 $this->lng->txt(
"lastname"),
3888 $this->lng->txt(
"crs_time")));
3889 $tbl->setHeaderVars(array(
"login",
3893 array(
"ref_id" => $this->object->getRefId(),
3895 "cmdClass" =>
"ilobjcoursegui",
3896 "cmdNode" =>
$_GET[
"cmdNode"]));
3898 $tbl->setColumnWidth(array(
"25%",
"25%",
"25%",
"25%"));
3903 $this->tpl->setVariable(
"EDIT_MEMBER_TABLE",$tbl->tpl->get());
3912 $actions = array(
"addFromWaitingList" => $this->lng->txt(
"crs_add_subscribers"),
3913 "removeFromWaitingList" => $this->lng->txt(
"crs_delete_from_waiting_list"));
3916 $tpl =& $tbl->getTemplateObject();
3918 $tbl->enable(
'select_all');
3919 $tbl->setFormName(
"wait_form");
3920 $tbl->setSelectAllCheckbox(
"waiting_list");
3924 $tpl->setCurrentBlock(
"tbl_action_row");
3926 $tpl->setVariable(
"COLUMN_COUNTS",5);
3930 $tpl->setCurrentBlock(
"tbl_action_select");
3932 $tpl->setVariable(
"BTN_NAME",
"gateway");
3933 $tpl->setVariable(
"BTN_VALUE",$this->lng->txt(
"execute"));
3934 $tpl->parseCurrentBlock();
3936 $tpl->setCurrentBlock(
"tbl_action_row");
3937 $tpl->setVariable(
"TPLPATH",$this->tpl->tplPath);
3938 $tpl->parseCurrentBlock();
3941 $tbl->setTitle($this->lng->txt(
"crs_waiting_list"),
"icon_usr.svg",$this->lng->txt(
"crs_waiting_list"));
3942 $tbl->setHeaderNames(array(
'',
3943 $this->lng->txt(
"name"),
3944 $this->lng->txt(
"login"),
3945 $this->lng->txt(
"crs_time")));
3946 $tbl->setHeaderVars(array(
"",
3950 array(
"ref_id" => $this->object->getRefId(),
3952 "update_subscribers" => 1,
3953 "cmdClass" =>
"ilobjcoursegui",
3954 "cmdNode" =>
$_GET[
"cmdNode"]));
3955 $tbl->setColumnWidth(array(
'1%'));
3960 $this->tpl->setCurrentBlock(
'sub_wait_table');
3961 $this->tpl->setVariable(
'SUB_WAIT_NAME',
'wait_form');
3962 $this->tpl->setVariable(
'SUB_WAIT_FORMACTION',$this->ctrl->getFormAction($this));
3963 $this->tpl->setVariable(
"SUB_WAIT_TABLE_CONTENT",$tbl->tpl->get());
3964 $this->tpl->parseCurrentBlock();
3976 for($i=0;$i<=60;$i++)
3978 $days[$i] = $i < 10 ?
"0".$i : $i;
3983 for($i=0;$i<24;$i++)
3985 $days[$i] = $i < 10 ?
"0".$i : $i;
3990 for($i=1;$i<32;$i++)
3992 $days[$i] = $i < 10 ?
"0".$i : $i;
3997 for($i=1;$i<13;$i++)
3999 $month[$i] = $i < 10 ?
"0".$i : $i;
4004 for($i = date(
"Y",time());$i < date(
"Y",time()) + 3;++$i)
4014 return mktime($a_time_arr[
"hour"],
4015 $a_time_arr[
"minute"],
4016 $a_time_arr[
"second"],
4017 $a_time_arr[
"month"],
4019 $a_time_arr[
"year"]);
4023 unset(
$_SESSION[
"crs_delete_member_ids"]);
4024 unset(
$_SESSION[
"crs_delete_subscriber_ids"]);
4034 global $rbacreview,
$ilErr, $ilAccess, $ilObjDataCache,
$ilias;
4035 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
4037 $this->lng->loadLanguageModule(
'mail');
4038 if(!isset(
$_GET[
'returned_from_mail']))
4043 $is_admin = (bool) $ilAccess->checkAccess(
"write",
"", $this->object->getRefId());
4048 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"),$ilErr->MESSAGE);
4051 $this->tabs_gui->setTabActive(
'members');
4052 $b_cmd =
$_GET[
"back_cmd"] ?
$_GET[
"back_cmd"] :
"members";
4053 $this->tabs_gui->setBackTarget($this->lng->txt(
"back"), $this->ctrl->getLinkTarget($this,$b_cmd));
4055 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.mail_members.html',
'Services/Contact');
4058 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
4060 $this->tpl->setVariable(
"SELECT_ACTION",
'ilias.php?baseClass=ilmailgui&view=my_courses&search_crs='.$this->object->getId());
4061 $this->tpl->setVariable(
"MAIL_SELECTED",$this->lng->txt(
'send_mail_selected'));
4062 $this->tpl->setVariable(
"MAIL_MEMBERS",$this->lng->txt(
'send_mail_members'));
4063 $this->tpl->setVariable(
"MAIL_TUTOR",$this->lng->txt(
'send_mail_tutors'));
4064 $this->tpl->setVariable(
"MAIL_ADMIN",$this->lng->txt(
'send_mail_admins'));
4066 $this->tpl->setVariable(
"OK",$this->lng->txt(
'next'));
4069 $role_ids = $rbacreview->getRolesOfRoleFolder($this->object->getRefId(),
false);
4072 $sorted_role_ids = array();
4074 foreach($role_ids as $role_id)
4079 $sorted_role_ids[2] = $role_id;
4083 $sorted_role_ids[1] = $role_id;
4087 $sorted_role_ids[0] = $role_id;
4091 $sorted_role_ids[$counter++] = $role_id;
4096 ksort($sorted_role_ids,SORT_NUMERIC);
4097 foreach ((array) $sorted_role_ids as $role_id)
4099 $this->tpl->setCurrentBlock(
"mailbox_row");
4100 $role_addr = $rbacreview->getRoleMailboxAddress($role_id);
4104 if(count($ids_for_role_title) >= 2)
4106 $ilias->setSetting(
'pear_mail_enable', 1);
4110 htmlspecialchars($role_addr)
4112 if (ilMail::_usePearMail() && substr($role_addr, 0, 4) !=
'#il_')
4115 $this->tpl->setVariable(
"MAILBOX",$role_addr);
4120 $this->tpl->setVariable(
"MAILBOX",
ilObjRole::_getTranslation($ilObjDataCache->lookupTitle($role_id)).
" (" . $role_addr .
")");
4123 $this->tpl->parseCurrentBlock();
4131 $next_class = $this->ctrl->getNextClass($this);
4132 $cmd = $this->ctrl->getCmd();
4141 $ilAccess->checkAccess(
'read',
'',
$_GET[
'ref_id']))
4143 include_once(
"./Services/Link/classes/class.ilLink.php");
4144 $ilNavigationHistory->addItem(
$_GET[
"ref_id"],
4150 if(IS_PAYMENT_ENABLED)
4152 include_once
'Services/Payment/classes/class.ilPaymentObject.php';
4155 $ilTabs->setTabActive(
'info_short');
4157 include_once
'Services/Payment/classes/class.ilShopPurchaseGUI.php';
4158 $this->ctrl->setReturn($this,
'');
4160 $this->ctrl->forwardCommand($pp_gui);
4168 case "ilinfoscreengui":
4172 case 'ilmdeditorgui':
4173 if(!$ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
4175 $ilErr->raiseError($this->lng->txt(
'permission_denied'),$ilErr->WARNING);
4178 include_once
'Services/MetaData/classes/class.ilMDEditorGUI.php';
4180 $md_gui =&
new ilMDEditorGUI($this->object->getId(), 0, $this->
object->getType());
4181 $md_gui->
addObserver($this->
object,
'MDUpdateListener',
'General');
4183 $this->ctrl->forwardCommand($md_gui);
4184 $this->tabs_gui->setTabActive(
'meta_data');
4187 case 'ilcourseregistrationgui':
4188 $this->ctrl->setReturn($this,
'');
4189 $this->tabs_gui->setTabActive(
'join');
4190 include_once(
'./Modules/Course/classes/class.ilCourseRegistrationGUI.php');
4192 $this->ctrl->forwardCommand($registration);
4195 case 'ilobjectcustomuserfieldsgui':
4196 include_once
'./Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
4200 $this->ctrl->setReturn($this,
'members');
4205 $this->tabs_gui->setTabActive(
'settings');
4206 $this->ctrl->forwardCommand($cdf_gui);
4209 case "ilcourseobjectivesgui":
4210 include_once
'./Modules/Course/classes/class.ilCourseObjectivesGUI.php';
4212 $this->ctrl->setReturn($this,
"");
4214 $ret =& $this->ctrl->forwardCommand($reg_gui);
4217 case 'ilobjcoursegroupinggui':
4218 include_once
'./Modules/Course/classes/class.ilObjCourseGroupingGUI.php';
4220 $this->ctrl->setReturn($this,
'edit');
4223 $this->ctrl->forwardCommand($crs_grp_gui);
4224 $this->tabs_gui->setTabActive(
'settings');
4225 $this->tabs_gui->setSubTabActive(
'groupings');
4229 $this->tabs_gui->setTabActive(
'none');
4239 case "ilconditionhandlergui":
4240 include_once
'./Services/AccessControl/classes/class.ilConditionHandlerGUI.php';
4243 $this->tabs_gui->setTabActive(
'settings');
4245 $this->ctrl->forwardCommand($new_gui);
4248 case "illearningprogressgui":
4249 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
4252 $this->object->getRefId(),
4253 $_GET[
'user_id'] ? $_GET[
'user_id'] : $ilUser->getId());
4254 $this->ctrl->forwardCommand($new_gui);
4255 $this->tabs_gui->setTabActive(
'learning_progress');
4258 case 'illicenseoverviewgui':
4259 include_once(
"./Services/License/classes/class.ilLicenseOverviewGUI.php");
4261 $ret =& $this->ctrl->forwardCommand($license_gui);
4262 $this->tabs_gui->setTabActive(
'licenses');
4265 case 'ilpermissiongui':
4266 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
4267 $this->tabs_gui->setTabActive(
'perm_settings');
4269 $ret =& $this->ctrl->forwardCommand($perm_gui);
4272 case 'ilrepositorysearchgui':
4278 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
4282 $rep_search->setCallback($this,
4283 'assignMembersObject',
4290 $rep_search->setCallback($this,
4291 'assignMembersObject',
4292 $this->
getLocalRoles(array($this->object->getDefaultAdminRole()))
4301 $this->ctrl->setReturn($this,
'members');
4302 $ret =& $this->ctrl->forwardCommand($rep_search);
4304 $this->tabs_gui->setTabActive(
'members');
4305 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
4308 case 'ilcoursecontentinterface':
4310 $this->initCourseContentInterface();
4311 $this->cci_obj->cci_setContainer($this);
4313 $this->ctrl->forwardCommand($this->cci_obj);
4315 $this->tabs_gui->setTabActive(
'content');
4318 case 'ilcoursecontentgui':
4319 $this->ctrl->setReturn($this,
'members');
4320 include_once
'./Modules/Course/classes/class.ilCourseContentGUI.php';
4322 $this->ctrl->forwardCommand($course_content_obj);
4325 case 'ilpublicuserprofilegui':
4326 $this->tpl->enableDragDropFileUpload(null);
4327 require_once
'./Services/User/classes/class.ilPublicUserProfileGUI.php';
4330 $this->tabs_gui->setTabActive(
'members');
4331 $profile_gui->setBackUrl($ilCtrl->getLinkTarget($this,
"membersGallery"));
4332 $this->tabs_gui->setSubTabActive(
'crs_members_gallery');
4333 $html = $this->ctrl->forwardCommand($profile_gui);
4334 $this->tpl->setVariable(
"ADM_CONTENT", $html);
4337 case 'ilmemberexportgui':
4338 include_once(
'./Services/Membership/classes/Export/class.ilMemberExportGUI.php');
4341 $this->tabs_gui->setTabActive(
'members');
4342 $this->tabs_gui->setSubTabActive(
'export_members');
4344 $this->ctrl->forwardCommand($export);
4347 case 'ilmemberagreementgui':
4348 include_once(
'Services/Membership/classes/class.ilMemberAgreementGUI.php');
4349 $this->tabs_gui->clearTargets();
4351 $this->ctrl->setReturn($this,
'');
4353 $this->ctrl->forwardCommand($agreement);
4356 case 'ilsessionoverviewgui':
4358 $this->tabs_gui->setTabActive(
'members');
4359 $this->tabs_gui->setSubTabActive(
'events');
4361 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
4364 include_once(
'./Modules/Session/classes/class.ilSessionOverviewGUI.php');
4366 $this->ctrl->forwardCommand($overview);
4370 case "ilcontainerpagegui":
4374 $this->tpl->setContent($ret);
4378 case "ilcontainerstartobjectspagegui":
4380 include_once
"Services/Container/classes/class.ilContainerStartObjectsPageGUI.php";
4382 $ret = $this->ctrl->forwardCommand($pgui);
4385 $this->tpl->setContent($ret);
4389 case 'ilobjectcopygui':
4390 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
4392 $cp->setType(
'crs');
4393 $this->ctrl->forwardCommand($cp);
4396 case "ilobjstylesheetgui":
4400 case 'ilcourseparticipantsgroupsgui':
4401 include_once
'./Modules/Course/classes/class.ilCourseParticipantsGroupsGUI.php';
4410 $this->tabs_gui->setTabActive(
'members');
4411 $this->ctrl->forwardCommand($cmg_gui);
4415 $this->tabs_gui->setTabActive(
'export');
4416 include_once
'./Services/Export/classes/class.ilExportGUI.php';
4418 $exp->addFormat(
'xml');
4419 $this->ctrl->forwardCommand($exp);
4422 case "ilcommonactiondispatchergui":
4423 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
4425 $this->ctrl->forwardCommand($gui);
4428 case 'ildidactictemplategui':
4429 $this->ctrl->setReturn($this,
'edit');
4430 include_once
'./Services/DidacticTemplate/classes/class.ilDidacticTemplateGUI.php';
4432 $this->ctrl->forwardCommand($did);
4435 case "ilcertificategui":
4436 $this->tabs_gui->activateTab(
"settings");
4439 include_once
"./Services/Certificate/classes/class.ilCertificateGUI.php";
4440 include_once
"./Modules/Course/classes/class.ilCourseCertificateAdapter.php";
4442 $this->ctrl->forwardCommand($output_gui);
4445 case 'ilobjectservicesettingsgui':
4446 $this->ctrl->setReturn($this,
'edit');
4448 $this->tabs_gui->activateTab(
'settings');
4449 $this->tabs_gui->acltivateSubTab(
'tool_settings');
4451 include_once
'./Services/Object/classes/class.ilObjectServiceSettingsGUI.php';
4454 $this->object->getId(),
4458 $this->ctrl->forwardCommand($service);
4461 case 'illoeditorgui':
4462 #$this->tabs_gui->clearTargets(); 4463 #$this->tabs_gui->setBackTarget($this->lng->txt('back'),$this->ctrl->getLinkTarget($this,'')); 4464 $this->tabs_gui->activateTab(
'crs_objectives');
4466 include_once
'./Modules/Course/classes/Objectives/class.ilLOEditorGUI.php';
4468 $this->ctrl->forwardCommand($editor);
4471 case 'ilcontainerstartobjectsgui':
4472 $this->ctrl->setReturn($this,
'edit');
4473 $this->tabs_gui->clearTargets();
4474 $this->tabs_gui->setBackTarget($this->lng->txt(
"back_to_crs_content"),
4475 $this->ctrl->getLinkTarget($this,
"edit"));
4476 $this->tabs_gui->addTab(
"start",
4477 $this->lng->txt(
"crs_start_objects"),
4478 $this->ctrl->getLinkTargetByClass(
"ilcontainerstartobjectsgui",
"listStructure"));
4480 $ilHelp->setScreenIdComponent(
"crs");
4482 include_once
'./Services/Container/classes/class.ilContainerStartObjectsGUI.php';
4484 $this->ctrl->forwardCommand($stgui);
4500 if(
$cmd ==
'infoScreenGoto')
4509 $cmd =
'infoScreen';
4513 if(!$this->creation_mode)
4515 if (
$cmd ==
"infoScreen")
4526 if( !$this->creation_mode
4527 &&
$cmd !=
'infoScreen' 4528 &&
$cmd !=
'sendfile' 4529 &&
$cmd !=
'unsubscribe' 4530 &&
$cmd !=
'performUnsubscribe' 4531 && !$ilAccess->checkAccess(
"read",
'',$this->object->getRefId())
4533 ||
$cmd ==
'subscribe')
4535 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
4536 if($rbacsystem->checkAccess(
'join',$this->object->getRefId()) &&
4539 include_once(
'./Modules/Course/classes/class.ilCourseRegistrationGUI.php');
4540 $this->ctrl->redirectByClass(
"ilCourseRegistrationGUI");
4549 if(
$cmd ==
'listObjectives')
4551 include_once
'./Modules/Course/classes/class.ilCourseObjectivesGUI.php';
4553 $this->ctrl->setReturn($this,
"");
4555 $ret =& $this->ctrl->forwardCommand($obj_gui);
4590 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
4596 if(!$this->object->getMemberObject()->isAssigned())
4601 include_once
'./Services/Container/classes/class.ilMemberViewSettings.php';
4607 include_once(
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
4608 include_once(
'Services/Membership/classes/class.ilMemberAgreement.php');
4615 $GLOBALS[
'ilLog']->write(__METHOD__.
': Missing course confirmation.');
4619 include_once(
'Modules/Course/classes/Export/class.ilCourseUserData.php');
4622 $GLOBALS[
'ilLog']->write(__METHOD__.
': Missing required fields');
4640 include_once(
"Services/License/classes/class.ilLicenseAccess.php");
4644 $buffer = $lic_set->get(
"license_warning");
4646 include_once(
"./Services/License/classes/class.ilLicense.php");
4648 foreach ($licensed_items as $item)
4650 $license =&
new ilLicense($item[
'obj_id']);
4651 $remaining = $license->getRemainingLicenses();
4652 if ($remaining <= $buffer)
4654 $lng->loadlanguageModule(
"license");
4655 ilUtil::sendInfo(sprintf($this->lng->txt(
"course_licenses_rare"), $remaining), $a_keep);
4665 return array(
"ilCourseRegisterGUI",
'ilConditionHandlerGUI');
4671 switch ($this->ctrl->getCmd())
4674 #$ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "")); 4682 public static function _goto($a_target, $a_add =
"")
4686 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
4687 if(substr($a_add,0,5) ==
'rcode')
4689 if($ilUser->getId() == ANONYMOUS_USER_ID)
4693 "login.php?target=".
$_GET[
"target"].
"&cmd=force_login&lang=".
4694 $ilUser->getCurrentLanguage()
4706 if ($a_add ==
"mem" && $ilAccess->checkAccess(
"write",
"", $a_target))
4711 if ($ilAccess->checkAccess(
"read",
"", $a_target))
4718 if ($ilAccess->checkAccess(
"visible",
"", $a_target))
4724 if ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID))
4732 $ilErr->raiseError($lng->txt(
"msg_no_perm_read"), $ilErr->FATAL);
4738 return mktime($time[
'h'],$time[
'm'],0,$date[
'm'],$date[
'd'],$date[
'y']);
4743 return array(
'y' => date(
'Y',$a_unix_time),
4744 'm' => date(
'n',$a_unix_time),
4745 'd' => date(
'd',$a_unix_time));
4750 return array(
'h' => date(
'G',$a_unix_time),
4751 'm' => date(
'i',$a_unix_time),
4752 's' => date(
's',$a_unix_time));
4765 $this->tabs_gui->setTabActive(
'settings');
4768 !$ilAccess->checkAccess(
"write",
"", $this->object->getRefId()))
4773 $latitude = $this->
object->getLatitude();
4774 $longitude = $this->
object->getLongitude();
4775 $zoom = $this->
object->getLocationZoom();
4778 if ($latitude == 0 && $longitude == 0 && $zoom == 0)
4781 $latitude = $def[
"latitude"];
4782 $longitude = $def[
"longitude"];
4783 $zoom = $def[
"zoom"];
4786 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
4788 $form->setFormAction($ilCtrl->getFormAction($this));
4790 $form->setTitle($this->lng->txt(
"crs_map_settings"));
4796 $public->setChecked($this->object->getEnableCourseMap());
4797 $form->addItem($public);
4803 $loc_prop->setLongitude($longitude);
4804 $loc_prop->setZoom($zoom);
4805 $form->addItem($loc_prop);
4807 $form->addCommandButton(
"saveMapSettings", $this->lng->txt(
"save"));
4809 $this->tpl->setVariable(
"ADM_CONTENT", $form->getHTML());
4821 $this->
object->update();
4823 $ilCtrl->redirect($this,
"editMapSettings");
4833 $this->tabs_gui->setTabActive(
"members");
4835 $this->tabs_gui->setSubTabActive(
"crs_members_map");
4837 include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
4844 $map->setMapId(
"course_map")
4846 ->setHeight(
"500px")
4847 ->setLatitude($this->object->getLatitude())
4848 ->setLongitude($this->object->getLongitude())
4849 ->setZoom($this->object->getLocationZoom())
4850 ->setEnableTypeControl(
true)
4851 ->setEnableNavigationControl(
true)
4852 ->setEnableCentralMarker(
true);
4854 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
4858 foreach($members as $user_id)
4860 $map->addUserMarker($user_id);
4864 $tpl->setContent($map->getHTML());
4865 $tpl->setLeftContent($map->getUserListHTML());
4874 $this->object->getAboStatus(), $this->
object->getRefId(), $this->
object->getId());
4880 static function _modifyItemGUI($a_item_list_gui, $a_cmd_class, $a_item_data, $a_show_path,
4881 $a_abo_status, $a_course_ref_id, $a_course_obj_id, $a_parent_ref_id = 0)
4883 global
$lng, $ilAccess;
4886 if ($a_parent_ref_id == 0)
4888 $a_parent_ref_id = $a_course_ref_id;
4892 if($a_item_data[
'type'] ==
'tst' and
4895 $a_item_list_gui->addCommandLinkParameter(array(
'crs_show_result' => $a_course_ref_id));
4898 $a_item_list_gui->enableSubscribe($a_abo_status);
4900 $is_tutor = ($ilAccess->checkAccess(
'write',
'',
4901 $a_course_ref_id,
'crs', $a_course_obj_id));
4903 if($a_show_path and $is_tutor)
4905 $a_item_list_gui->addCustomProperty($lng->txt(
'path'),
4906 ilContainer::_buildPath($a_item_data[
'ref_id'], $a_course_ref_id),
4919 if ($this->object->getType() !=
'crs')
4923 if (!$ilAccess->checkAccess(
'write',
'',
4924 $this->object->getRefId(),
'crs',$this->
object->getId()))
4928 if($this->object->enabledObjectiveView())
4942 if(!
$_SESSION[
'crs_timings_panel'][$this->object->getId()] or 1)
4946 $this->tabs_gui->addSubTab(
"view_content", $lng->txt(
"view"), $ilCtrl->getLinkTargetByClass(
"ilobjcoursegui",
"view"));
4950 $this->tabs_gui->addSubTab(
"view_content", $lng->txt(
"view"), $ilCtrl->getLinkTargetByClass(
"ilobjcoursegui",
"disableAdministrationPanel"));
4955 $this->tabs_gui->addSubTabTarget(
'timings_timings',
4956 $this->ctrl->getLinkTargetByClass(
'ilcoursecontentgui',
'editUserTimings'));
4976 include_once(
'./Services/Calendar/classes/class.ilDateTime.php');
4979 if(is_array(
$_POST[$a_field][
'date']))
4981 $dt[
'year'] = (int)
$_POST[$a_field][
'date'][
'y'];
4982 $dt[
'mon'] = (int)
$_POST[$a_field][
'date'][
'm'];
4983 $dt[
'mday'] = (int)
$_POST[$a_field][
'date'][
'd'];
4984 $dt[
'hours'] = (int)
$_POST[$a_field][
'time'][
'h'];
4985 $dt[
'minutes'] = (int)
$_POST[$a_field][
'time'][
'm'];
4986 $dt[
'seconds'] = (int)
$_POST[$a_field][
'time'][
's'];
4990 $date = date_parse(
$_POST[$a_field][
'date'].
" ".
$_POST[$a_field][
'time']);
4991 $dt[
'year'] = (int) $date[
'year'];
4992 $dt[
'mon'] = (int) $date[
'month'];
4993 $dt[
'mday'] = (int) $date[
'day'];
4994 $dt[
'hours'] = (int) $date[
'hour'];
4995 $dt[
'minutes'] = (int) $date[
'minute'];
4996 $dt[
'seconds'] = (int) $date[
'second'];
5014 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
5016 $confirm->setFormAction($this->ctrl->getFormAction($this));
5017 $confirm->setConfirm($this->lng->txt(
'reset'),
'reset');
5018 $confirm->setCancel($this->lng->txt(
'cancel'),
'cancel');
5020 $GLOBALS[
'tpl']->setContent($confirm->getHTML());
5028 include_once
'./Modules/Course/classes/Objectives/class.ilLOUserResults.php';
5033 include_once
'./Modules/Course/classes/Objectives/class.ilLOTestRun.php';
5034 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
5036 $this->object->getId(),
5041 include_once
'./Modules/Course/classes/class.ilCourseObjectiveResult.php';
5044 $tmp_obj_res->
reset($this->object->getId());
5046 $ilUser->deletePref(
'crs_objectives_force_details_'.$this->object->getId());
5056 if($ilAccess->checkAccess(
'write',
'',$this->object->getRefId()))
5061 include_once
'./Services/Container/classes/class.ilContainerStartObjects.php';
5063 $this->
object->getId());
5064 if(count($this->start_obj->getStartObjects()) &&
5065 !$this->start_obj->allFullfilled($ilUser->getId()))
5082 include_once
'./Services/Container/classes/class.ilMemberViewSettings.php';
5084 if($settings->isActive() and $settings->getContainer() != $this->
object->getRefId())
5086 $settings->setContainer($this->object->getRefId());
5087 $rbacsystem->initMemberView();
5090 parent::prepareOutput();
5099 $link = chr(13).chr(10).chr(13).chr(10);
5100 $link .= $this->lng->txt(
'crs_mail_permanent_link');
5101 $link .= chr(13).chr(10).chr(13).chr(10);
5102 include_once
'./Services/Link/classes/class.ilLink.php';
5104 return rawurlencode(base64_encode($link));
5111 $lg = parent::initHeaderAction($a_sub_type, $a_sub_id);
5116 include_once
"Services/Certificate/classes/class.ilCertificate.php";
5121 $cert_url = $this->ctrl->getLinkTarget($this,
"deliverCertificate");
5123 $this->lng->loadLanguageModule(
"certificate");
5124 $lg->addCustomCommand($cert_url,
"download_certificate");
5126 $lg->addHeaderIcon(
"cert_icon",
5128 $this->lng->txt(
"download_certificate"),
5135 if($ilSetting->get(
"crsgrp_ntf"))
5137 if(!$ilUser->getPref(
"grpcrs_ntf_".$this->ref_id))
5139 $lg->addHeaderIcon(
"not_icon",
5141 $this->lng->txt(
"crs_notification_deactivated"));
5143 $this->ctrl->setParameter($this,
"crs_ntf", 1);
5144 $caption =
"crs_activate_notification";
5148 $lg->addHeaderIcon(
"not_icon",
5150 $this->lng->txt(
"crs_notification_activated"));
5152 $this->ctrl->setParameter($this,
"crs_ntf", 0);
5153 $caption =
"crs_deactivate_notification";
5156 $lg->addCustomCommand($this->ctrl->getLinkTarget($this,
"saveNotification"),
5160 $this->ctrl->setParameter($this,
"crs_ntf",
"");
5172 if ($ilAccess->checkAccess(
'write',
'',$this->ref_id))
5178 $user_id = $ilUser->getId();
5181 include_once
"Services/Certificate/classes/class.ilCertificate.php";
5187 $this->ctrl->redirect($this);
5190 include_once
"./Modules/Course/classes/class.ilCourseCertificateAdapter.php";
5192 $certificate->outCertificate(array(
"user_id" => $user_id),
true);
5198 $this->ctrl->redirectByClass(array(
'ilrepositorygui',
'ilobjcoursegui',
'illoeditorgui'),
'materials');
5203 if(isset(
$_POST[
'position'][
"lobj"]))
5205 $lobj =
$_POST[
'position'][
"lobj"];
5206 unset(
$_POST[
'position'][
"lobj"]);
5208 $objective_order = array();
5209 foreach($lobj as $objective_id => $materials)
5211 $objective_order[$objective_id] = $materials[0];
5212 unset($lobj[$objective_id][0]);
5216 include_once
"Modules/Course/classes/class.ilCourseObjective.php";
5217 asort($objective_order);
5219 foreach(array_keys($objective_order) as $objective_id)
5222 $obj->writePosition(++$pos);
5226 include_once
"Modules/Course/classes/class.ilCourseObjectiveMaterials.php";
5227 foreach($lobj as $objective_id => $materials)
5233 foreach(array_keys($materials) as $ass_id)
5235 $objmat->writePosition($ass_id, ++$pos);
5240 return parent::saveSortingObject();
5248 $objective_id = (int)
$_REQUEST[
'objective_id'];
5251 include_once
'./Modules/Course/classes/Objectives/class.ilLOUserResults.php';
5252 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
5254 $this->object->getId(),
5256 $passed =
$res->getCompletedObjectiveIdsByType(
5258 $this->object->getId())->getQualifiedTest() == $test_id) ?
5265 $objective_ids = array($objective_id);
5266 if(in_array($objective_id, $passed))
5273 include_once
'./Modules/Course/classes/class.ilCourseObjective.php';
5277 if(count($objective_ids) == count($passed))
5283 if(is_null($a_force_new_run))
5286 switch($resume_type)
5291 $a_force_new_run = TRUE;
5294 $a_force_new_run = FALSE;
5300 include_once
'./Modules/Test/classes/class.ilObjTest.php';
5308 if($a_force_new_run === TRUE)
5310 include_once
'./Modules/Course/classes/Objectives/class.ilLOTestRun.php';
5312 $this->object->getId(),
5317 foreach((array) $objective_ids as $oid)
5319 if(!in_array($oid, $passed))
5322 $this->object->getId(),
5332 include_once
'./Services/Object/classes/class.ilObjectFactory.php';
5335 include_once
'Modules/Test/classes/class.ilTestPlayerFactory.php';
5337 $playerGuiClass = get_class($testPlayerFactory->getPlayerGUI());
5339 $sessionLock = md5(
$_COOKIE[session_name()] . time());
5348 $test_cmd =
'resumePlayer';
5352 $test_cmd =
'startPlayer';
5355 $GLOBALS[
'ilCtrl']->setParameterByClass($playerGuiClass,
'ref_id',$test_id);
5356 $GLOBALS[
'ilCtrl']->setParameterByClass($playerGuiClass,
'crs_show_result',$this->object->getRefId());
5357 $GLOBALS[
'ilCtrl']->setParameterByClass($playerGuiClass,
'lock',$sessionLock);
5358 $GLOBALS[
'ilCtrl']->redirectByClass(
5376 include_once
'./Modules/Test/classes/class.ilObjTest.php';
5383 $GLOBALS[
'ilLog']->write(__METHOD__.
' No previous pass exists.');
5387 $GLOBALS[
'ilLog']->write(__METHOD__.
' Active test pass exists... ');
5390 include_once
'./Modules/Course/classes/Objectives/class.ilLOTestRun.php';
5392 $this->object->getId(),
5396 if(count((array) $last_objectives) > 1)
5400 if(!$a_objective_id)
5402 $GLOBALS[
'ilLog']->write(__METHOD__.
': Continuing multi objective test pass.');
5412 if(count((array) $last_objectives) == 1)
5416 $a_objective_id && in_array($a_objective_id,(array) $last_objectives)
5422 $a_objective_id && !in_array($a_objective_id,(array) $last_objectives)
5455 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
5459 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
5462 $question = $this->lng->txt(
'crs_loc_qst_resume_tst_qtest');
5466 $question = $this->lng->txt(
'crs_loc_qst_resume_tst_itest');
5471 $confirm->addHiddenItem(
'objective_id', $a_objective_id);
5472 $confirm->addHiddenItem(
'tid', $a_test_id);
5473 $confirm->setConfirm($this->lng->txt(
'crs_loc_tst_resume'),
'redirectLocToTestContinue');
5474 $confirm->setCancel($this->lng->txt(
'crs_loc_tst_new_run'),
'redirectLocToTestNewRun');
5476 $GLOBALS[
'tpl']->setContent($confirm->getHTML());
5490 $crs_admin = $this->
object->getDefaultAdminRole();
5491 $crs_member = $this->
object->getDefaultMemberRole();
5492 $local_roles = $this->
object->getLocalCourseRoles(
false);
5493 $crs_roles = array();
5496 if(in_array($crs_member, $local_roles))
5499 unset($local_roles[$crs_roles[$crs_member]]);
5502 foreach($local_roles as $title => $role_id)
5512 if(count($a_exclude) > 0)
5514 foreach($a_exclude as $excluded_role)
5516 if(isset($crs_roles[$excluded_role]))
5518 unset($crs_roles[$excluded_role]);
5541 $this->tabs_gui->setTabActive(
'members');
5555 global
$ilUser, $rbacsystem, $ilAccess;
5556 include_once
'Services/Mail/classes/class.ilMail.php';
5557 $mail =
new ilMail($ilUser->getId());
5561 $ilAccess->checkAccess(
'write',
"",$this->object->getRefId())) and
5562 $rbacsystem->checkAccess(
'internal_mail',$mail->getMailObjectReferenceId()))
5567 $ilToolbar->addSeparator();
5572 $this->ctrl->setParameter($this,
"back_cmd", $back_cmd);
5575 $ilToolbar->addButton($this->lng->txt(
"mail_members"),
5576 $this->ctrl->getLinkTarget($this,
'mailMembers'));
5582 if(!is_array(
$_POST[
"subscribers"]))
5590 $this->lng->loadLanguageModule(
'mmbr');
5594 $this->tabs_gui->setTabActive(
'members');
5595 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
5597 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
5601 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"refuseSubscribers"));
5602 $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
5603 $c_gui->setCancel($this->lng->txt(
"cancel"),
"members");
5604 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"refuseSubscribers");
5606 foreach(
$_POST[
"subscribers"] as $subscribers)
5610 $c_gui->addItem(
'subscribers[]',
5612 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
5616 $this->tpl->setContent($c_gui->getHTML());
5622 if(!is_array(
$_POST[
"subscribers"]))
5631 $this->tabs_gui->setTabActive(
'members');
5632 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
5634 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
5638 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"assignSubscribers"));
5639 $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
5640 $c_gui->setCancel($this->lng->txt(
"cancel"),
"members");
5641 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"assignSubscribers");
5643 foreach(
$_POST[
"subscribers"] as $subscribers)
5647 $c_gui->addItem(
'subscribers[]',
5649 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
5653 $this->tpl->setContent($c_gui->getHTML());
5659 if(!is_array(
$_POST[
"waiting"]))
5667 $this->lng->loadLanguageModule(
'mmbr');
5671 $this->tabs_gui->setTabActive(
'members');
5672 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
5674 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
5678 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"refuseFromList"));
5679 $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
5680 $c_gui->setCancel($this->lng->txt(
"cancel"),
"members");
5681 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"refuseFromList");
5683 foreach(
$_POST[
"waiting"] as $waiting)
5687 $c_gui->addItem(
'waiting[]',
5689 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
5693 $this->tpl->setContent($c_gui->getHTML());
5699 if(!is_array(
$_POST[
"waiting"]))
5708 $this->tabs_gui->setTabActive(
'members');
5709 $this->tabs_gui->setSubTabActive(
'crs_member_administration');
5711 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
5715 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"assignFromWaitingList"));
5716 $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
5717 $c_gui->setCancel($this->lng->txt(
"cancel"),
"members");
5718 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"assignFromWaitingList");
5720 foreach(
$_POST[
"waiting"] as $waiting)
5724 $c_gui->addItem(
'waiting[]',
5726 $name[
'lastname'].
', '.$name[
'firstname'].
' ['.$name[
'login'].
']',
5730 $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.
__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.
static getInstanceByObjId($a_obj_id)
get singleton instance
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
const IL_CRS_SUBSCRIPTION_LIMITED
__showRemoveFromWaitingListTable($a_result_set)
Container start objects page GUI class.
const IL_CRS_VIEW_OBJECTIVE
editMemberObject()
edit member
const CALENDAR_VISIBILITY
membersMapObject()
Members map.
redirectLocToTestObject($a_force_new_run=NULL)
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
removeFromList($a_usr_id)
remove usr from list
GUI class for the workflow of copying objects.
static _updateStatus($a_obj_id, $a_usr_id, $a_obj=null, $a_percentage=false, $a_no_raise=false, $a_force_raise=false)
Update status.
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 getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
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)
const LP_STATUS_NOT_ATTEMPTED
Class ilObject Basic functions for all objects.
static _isEnabled()
Check, if licencing is enabled This check is called from the ilAccessHandler class.
delete()
Delete for user and course type $ilDB.
redirectLocToTestContinueObject()
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 !!
addObserver(&$a_class, $a_method, $a_element)
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)
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()
static getMemberRoles($a_ref_id)
Get member roles.
updateParticipantsStatus($type, $visible_members, $passed, $notification, $blocked)
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 sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
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()
handleActivePass($a_test_ref_id, $a_objective_id)
GUI class for public user profile presentation.
const LIC_MODE_REPOSITORY
static _enabledLearningProgress()
check wether learing progress is enabled or not
const IL_CRS_SUBSCRIPTION_PASSWORD
afterSave(ilObject $a_new_object)
save object public
static lookupObjectives($a_container_id, $a_user_id, $a_test_id)
static getMapGUI()
Get an instance of the GUI class.
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()
_lookupLogin($a_user_id)
lookup login
const IL_CRS_ADMIN
Base class for course and group participants.
static ensureParticipantsLastActivePassFinished($testObjId, $userId, $a_force_new_run=FALSE)
getAttendanceListUserData($a_user_id)
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
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.
redirectLocToTestNewRunObject()
Start new run.
static _isOnList($a_usr_id, $a_obj_id)
Check if a user on the waiting list.
toUnix($date, $time=array())
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
static isParticipantsLastPassActive($testObjId, $userId)
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 fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array())
fill toolbar with
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.
static deleteRun($a_container_id, $a_user_id, $a_test_id)
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.
static _getIdsForTitle($title, $type='', $partialmatch=false)
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.
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
__prepareDateSelect($a_unix_time)
memberGatewayObject()
Gateway for member administration commands.
setValue($a_value)
Set Value.
_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.
Stores current objective, questions and max points.
editCourseIconsObject($a_form=null)
edit container icons
static getInstance($a_obj_id)
addHeaderAction()
Add header action menu.
infoScreen()
show information screen
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="")
_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.
showRepTree($a_initial_call=false)
Show tree.
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.