5require_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'],
112 (array)
$_POST[
'waiting'],
113 (array)
$_POST[
'subscribers'],
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');
361 $record_gui->setInfoObject($info);
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);
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');
738 $this->record_gui->setPropertyForm($form);
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']);
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'));
1030 $title->setSubmitFormOnEnter(
true);
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";
1068 $dur->setShowTime(
true);
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');
1088 $reg_proc->setValue(
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";
1158 $sdur->setShowTime(
true);
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);
1212 $prev->setMinValue(0);
1213 $prev->setValue($this->object->getNumberOfPreviousSessions() == -1 ?
1215 $this->object->getNumberOfPreviousSessions()
1218 $prev->setMaxLength(3);
1219 $sess->addSubItem($prev);
1222 #$next->setSubmitFormOnEnter(true);
1223 $next->setMinValue(0);
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())
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');
1570 && !$this->isActiveAdministrationPanel())
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');
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'),
1854 'user_type' => $this->getLocalRoles(),
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);
1957 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
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);
1974 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
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);
1997 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
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);
2014 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
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);
2038 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
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);
2055 $table_gui->addHeaderCommand($this->ctrl->getLinkTarget($this,
'members'),
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);
2086 $table_gui->addHeaderCommand(
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);
2105 $table_gui->addHeaderCommand(
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)
2232 $marks->setCompleted($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]))
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);
2647 $waiting_list->removeFromList($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)
2692 $waiting_list->removeFromList($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(),
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=".
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))
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"));
4795 $public->setValue(
"1");
4796 $public->setChecked($this->object->getEnableCourseMap());
4797 $form->addItem($public);
4802 $loc_prop->setLatitude($latitude);
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';
5030 $usr_results->delete();
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"),
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))
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';
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());
const IL_CRS_SUBSCRIPTION_LIMITED
const IL_CRS_VIEW_SESSIONS
const IL_CRS_ACTIVATION_UNLIMITED
const IL_CRS_VIEW_OBJECTIVE
const IL_CRS_VIEW_BY_TYPE
const IL_CRS_SUBSCRIPTION_PASSWORD
const IL_CRS_ARCHIVE_NONE
const IL_CRS_SUBSCRIPTION_CONFIRMATION
const IL_CRS_VIEW_ARCHIVE
const IL_CRS_SUBSCRIPTION_UNLIMITED
const IL_CRS_ACTIVATION_LIMITED
const IL_CRS_SUBSCRIPTION_DEACTIVATED
const IL_CRS_SUBSCRIPTION_DIRECT
const IL_CRS_ADMIN
Base class for course and group participants.
Base class for attendance lists.
GUI class to create PDF certificates.
static isObjectActive($a_obj_id)
_recordWriteEvent($obj_id, $usr_id, $action, $parent_obj_id=null)
Records a write event.
_catchupWriteEvents($obj_id, $usr_id, $timestamp=null)
Catches up with all write events which occured before the specified timestamp.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
class ilConditionHandlerGUI
Confirmation screen class.
afterUpdate()
Post (successful) object update hook.
isActiveAdministrationPanel()
& forwardToPageObject()
forward command to page object
initSortingForm(ilPropertyFormGUI $form, array $a_sorting_settings)
Append sorting settings to property form.
showRepTree($a_initial_call=false)
Show tree.
addStandardContainerSubTabs($a_include_view=true)
Add standar container subtabs for view, manage, oderdering and text/media editor link.
ilContainerGUI($a_data, $a_id, $a_call_by_reference=true, $a_prepare_output=true)
Constructor @access public.
forwardToStyleSheet()
Forward to style object.
showCustomIconsEditing($a_input_colspan=1, ilPropertyFormGUI $a_form=null, $a_as_section=true)
show edit section of custom icons for container
saveSortingSettings(ilPropertyFormGUI $form)
Save sorting settings.
Class ilContainerStartObjectsContentGUI.
Class ilContainerStartObjectsGUI.
Container start objects page GUI class.
Test certificate adapter.
const MAIL_ALLOWED_TUTORS
Class ilCourseContentGUI.
static _getFields($a_container_id, $a_sort=IL_CDF_SORT_NAME)
Get all fields of a container.
static _hasFields($a_container_id)
Check if there are any define fields.
static _fieldsToInfoString($a_obj_id)
Fields to info string.
& _readFilesByCourse($a_course_id)
class ilCourseObjectiveMaterials
static _getCountObjectives($a_obj_id, $a_activated_only=false)
get count objectives
static _getObjectiveIds($course_id, $a_activated_only=false)
class ilobjcourseobjectivesgui
static _getInstanceByObjId($a_obj_id, $a_usr_id)
Get singleton instance.
Class ilCourseParticipantsGroupsGUI.
static getDateTimeOfPassed($a_obj_id, $a_usr_id)
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static getMemberRoles($a_ref_id)
Get member roles.
GUI class for course registrations.
static _checkRequired($a_usr_id, $a_obj_id)
Check required fields.
static formatPeriod(ilDateTime $start, ilDateTime $end)
Format a period of two date Shows: 14.
static setUseRelativeDates($a_status)
set use relative dates
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
GUI class for didactic template settings inside repository objects.
Class ilECSCourseSettings.
static _getInstanceByType($a_type)
Get Singleton Instance.
Export User Interface Class.
static getInstanceByObjId($a_obj_id)
get singleton instance
Stores current objective, questions and max points.
static lookupObjectives($a_container_id, $a_user_id, $a_test_id)
static deleteRun($a_container_id, $a_user_id, $a_test_id)
const LP_MODE_MANUAL_BY_TUTOR
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 _lookupCompletedForObject($a_obj_id, $a_user_ids=null)
Get completed users for object.
static _lookupFailedForObject($a_obj_id, $a_user_ids=null)
Get failed users for object.
static _lookupInProgressForObject($a_obj_id, $a_user_ids=null)
Get in progress users for object.
const LP_STATUS_COMPLETED
const LP_STATUS_NOT_ATTEMPTED
const LP_STATUS_IN_PROGRESS
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
static _tracProgress($a_user_id, $a_obj_id, $a_ref_id, $a_obj_type='')
static _lookupProgressByObjId($a_obj_id)
lookup progress for a specific object
static _isEnabled()
Check, if licencing is enabled This check is called from the ilAccessHandler class.
const LIC_MODE_REPOSITORY
_getLicensedChildObjects($a_ref_id)
Get a list of all sub objects with activated licensing.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static _fillHTMLMetaTags($a_rbac_id, $a_obj_id, $a_type)
Fill html meta tags.
Class Mail this class handles base functions for mail handling.
static isActivated()
Checks whether Map feature is activated.
static getMapGUI()
Get an instance of the GUI class.
static getDefaultSettings()
Get default longitude, latitude and zoom.
static _hasAccepted($a_usr_id, $a_obj_id)
Check if user has accepted agreement.
static getInstance()
Get instance.
static handleCode($a_ref_id, $a_type, $a_code)
Handle target parameter.
static generateCode()
Generate new registration key.
static lookupRegistrationInfo($a_obj_id)
Lookup registration info @global ilDB $ilDB @global ilObjUser $ilUser @global ilLanguage $lng.
confirmRefuseFromListObject()
updateRoleStatusObject()
Update status of additional course roles.
printMembersOutputObject()
removeSmallIconObject()
remove small icon
confirmAssignFromWaitingListObject()
static _modifyItemGUI($a_item_list_gui, $a_cmd_class, $a_item_data, $a_show_path, $a_abo_status, $a_course_ref_id, $a_course_obj_id, $a_parent_ref_id=0)
We need a static version of this, e.g.
checkAgreement()
Check agreement and redirect if it is not accepted.
deliverCertificateObject()
setContentSubTabs()
Set content sub tabs.
__getDateSelect($a_type, $a_varname, $a_selected)
refuseFromListObject()
refuse from waiting list
afterSave(ilObject $a_new_object)
save object @access public
membersObject()
Member administration.
modifyItemGUI($a_item_list_gui, $a_item_data, $a_show_path)
Modify Item ListGUI for presentation in container.
initHeaderAction($a_sub_type=null, $a_sub_id=null)
Add file manager link.
hasAdminPermission()
user has admin permission or "edit permission" permission on this course
editCourseIconsObject($a_form=null)
edit container icons
refuseSubscribersObject()
updateTutorStatusObject()
update tuto status
executeCommand()
execute command note: this method is overwritten in all container objects
updateLPFromStatus($a_member_id, $a_has_passed)
sync course status and lp status
saveNotificationObject()
:TEMP: Save notification setting (from infoscreen)
afterImport(ilObject $a_new_object)
add course admin after import file
toUnix($date, $time=array())
redirectLocToTestContinueObject()
initInfoEditor()
init info editor
cancelMemberObject()
canceledObject is called when operation is canceled, method links back @access public
deleteMembersObject()
Delete members @global ilAccessHandler $ilAccess.
updateMemberStatusObject()
updateMemberStatus
assignFromWaitingListObject()
sendMailToSelectedUsersObject()
editMapSettingsObject()
Edit Map Settings.
static _goto($a_target, $a_add="")
goto target course
__showWaitingListTable($a_result_set, $a_waiting_list_ids=NULL)
setSubTabs($a_tab)
set sub tabs
editInfoObject(ilPropertyFormGUI $a_form=null)
Edit info page informations.
confirmRefuseSubscribersObject()
__prepareDateSelect($a_unix_time)
prepareOutput()
Handle member view.
getAttendanceListUserData($a_user_id)
getLocalRoles($a_exclude=array())
createMailSignature()
Create a course mail signature.
checkLicenses($a_keep=false)
Check the remaining licenses of course objects and generate a message if raare.
getTabs(&$tabs_gui)
Get tabs.
saveSortingObject()
Save Sorting.
assignMembersObject(array $a_usr_ids, $a_type)
callback from repository search gui @global ilRbacSystem $rbacsystem
redirectLocToTestNewRunObject()
Start new run.
loadDate($a_field)
load date
updateMembersObject()
update members
addLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
__setTableGUIBasicData(&$tbl, &$result_set, $from="")
standard implementation for tables use 'from' variable use different initial setting of table
assignSubscribersObject()
__showDeleteSubscriberTable($a_result_set)
confirmAssignSubscribersObject()
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
fetchPrintMemberData($a_members)
updateCourseIconsObject()
update container icons
redirectLocToTestObject($a_force_new_run=NULL)
removeBigIconObject()
remove big icon
updateObject()
updates object entry in object_data
addMailToMemberButton($ilToolbar, $back_cmd=null, $a_separator=false)
add Mail to Member button to toolbar
memberGatewayObject()
Gateway for member administration commands.
readMemberData($ids, $role='admin', $selected_columns=null)
editMemberObject()
edit member
askResetObject()
ask reset test results
ilObjCourseGUI()
Constructor @access public.
__showRemoveFromWaitingListTable($a_result_set)
editMembersObject()
edit members
getAgreementTabs()
Get tabs for member agreement.
infoScreen()
show information screen
performRemoveFromWaitingListObject()
updateAdminStatusObject()
update admin status
removeMembersObject()
Remove members @global ilRbacReview $rbacreview @global ilRbacSystem $rbacsystem.
updateParticipantsStatus($type, $visible_members, $passed, $notification, $blocked)
setShowHidePrefs()
set preferences (show/hide tabel content)
unsubscribeObject()
DEPRECATED?
confirmDeleteInfoFilesObject()
show info file donfimation table
fetchPrintSubscriberData($a_members)
removeTinyIconObject()
remove small icon
__prepareTimeSelect($a_unix_time)
viewObject()
list childs of current object
deleteInfoFilesObject()
Delete info files.
redirectLocToTestConfirmation($a_objective_id, $a_test_id)
Show confirmation whether user wants to start a new run or resume a previous run.
showPossibleSubObjects()
show possible sub objects selection list
__unsetSessionVariables()
renderObject()
render the object
performUnsubscribeObject()
getEditFormValues()
Get values for edit form.
handleActivePass($a_test_ref_id, $a_objective_id)
membersMapObject()
Members map.
Class ilObjCourseGroupingGUI.
_getGroupingCourseIds($a_course_ref_id, $a_course_id)
Get all ids of courses that are grouped with another course @access static.
_isActivated($a_obj_id)
Is activated.
const STATUS_DETERMINATION_MANUAL
const STATUS_DETERMINATION_LP
_registrationEnabled($a_obj_id)
Registration enabled? Method is in Access class, since it is needed by Access/ListGUI.
static getAvailablePortfolioLinksForUserIds(array $a_owner_ids, $a_back_url=null)
_getTranslation($a_role_title)
static ensureParticipantsLastActivePassFinished($testObjId, $userId, $a_force_new_run=FALSE)
static isParticipantsLastPassActive($testObjId, $userId)
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _enabledUserRelatedData()
check wether user related tracking is enabled or not
_lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
static hasTimings($a_ref_id)
Check if there is any active timing (in subtree)
GUI class for the workflow of copying objects.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
getFormAction($a_cmd, $a_formaction="")
get form action for command (command is method name without "Object", e.g.
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
getCreationMode()
get creation mode
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
initDidacticTemplate(ilPropertyFormGUI $form)
Show didactic template types.
addHeaderAction()
Add header action menu.
static getInstance($a_obj_id)
GUI class for service settings (calendar, notes, comments)
const AUTO_RATING_NEW_OBJECTS
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
const CALENDAR_VISIBILITY
Class ilObject Basic functions for all objects.
static _lookupObjId($a_id)
const TITLE_LENGTH
max length of object title
update()
update object in db
static _lookupTitle($a_id)
lookup object title
getRefId()
get reference id @access public
getId()
get object id @access public
static _lookupType($a_id, $a_reference=false)
lookup object type
static _getIdsForTitle($title, $type='', $partialmatch=false)
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
static lookupSubscribers($a_obj_id)
static _requiresPurchaseToAccess($a_ref_id, $a_purchasetype='')
this function should be used by all buyable repository objects !!
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static _getInstance()
Get instance of ilPrivacySettings.
GUI class for public user profile presentation.
This class represents an option in a radio group.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array())
fill toolbar with
GUI class for course/group subscriptions.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
static formCheckbox($checked, $varname, $value, $disabled=false)
??? @access public
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static formSelect($selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
GUI class for course/group waiting list.
static _isOnList($a_usr_id, $a_obj_id)
Check if a user on the waiting list.
redirection script todo: (a better solution should control the processing via a xml file)
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']