24 require_once
"./Services/Container/classes/class.ilContainer.php";
25 include_once
'./Modules/Course/classes/class.ilCourseConstants.php';
26 include_once
'./Services/Membership/interfaces/interface.ilMembershipRegistrationCodes.php';
82 #define("ILIAS_MODULE","course");
83 #define("KEEP_IMAGE_PATH",1);
85 $this->SUBSCRIPTION_DEACTIVATED = 1;
86 $this->SUBSCRIPTION_CONFIRMATION = 2;
87 $this->SUBSCRIPTION_DIRECT = 3;
88 $this->SUBSCRIPTION_PASSWORD = 4;
89 $this->SUBSCRIPTION_AUTOSUBSCRIPTION = 5;
90 $this->ARCHIVE_DISABLED = 1;
91 $this->ARCHIVE_READ = 2;
92 $this->ARCHIVE_DOWNLOAD = 3;
93 $this->ABO_ENABLED = 1;
94 $this->ABO_DISABLED = 0;
95 $this->SHOW_MEMBERS_ENABLED = 1;
96 $this->SHOW_MEMBERS_DISABLED = 0;
101 parent::__construct($a_id,$a_call_by_reference);
112 $query =
'SELECT show_members FROM crs_settings '.
113 'WHERE obj_id = '.$GLOBALS[
'ilDB']->quote($a_obj_id,
'integer');
117 return (
bool)
$row->show_members;
138 $this->reg_access_code = $a_code;
157 $this->reg_access_code_enabled = $a_status;
162 return $this->important;
166 $this->important = $a_info;
170 return $this->syllabus;
174 $this->syllabus = $a_syllabus;
178 return $this->contact_name;
182 $this->contact_name = $a_cn;
186 return $this->contact_consultation;
190 $this->contact_consultation = $a_value;
194 return $this->contact_phone;
198 $this->contact_phone = $a_value;
202 return $this->contact_email;
206 $this->contact_email = $a_value;
210 return $this->contact_responsibility;
214 $this->contact_responsibility = $a_value;
218 return (
int) $this->activation_type;
229 $this->activation_type = $a_type;
237 return $this->activation_start ? $this->activation_start : time();
241 $this->activation_start = $a_value;
245 return $this->activation_end ? $this->activation_end : mktime(0,0,0,12,12,date(
"Y",time())+2);
249 $this->activation_end = $a_value;
253 return (
bool)$this->activation_offline;
257 $this->activation_offline = (bool) $a_value;
261 $this->activation_visibility = (bool) $a_value;
265 return $this->activation_visibility;
270 return $this->subscription_limitation_type;
274 $this->subscription_limitation_type = $a_type;
282 return $this->subscription_start ? $this->subscription_start : time();
286 $this->subscription_start = $a_value;
290 return $this->subscription_end ? $this->subscription_end : mktime(0,0,0,12,12,date(
"Y",time())+2);
294 $this->subscription_end = $a_value;
299 #return $this->subscription_type ? $this->subscription_type : $this->SUBSCRIPTION_DEACTIVATED;
303 $this->subscription_type = $a_value;
307 return $this->subscription_password;
311 $this->subscription_password = $a_value;
320 return (
bool) $this->waiting_list;
325 $this->waiting_list = (bool) $a_status;
348 $this->session_limit = $a_status;
365 $this->subscription_membership_limitation = $a_status;
375 $this->session_prev = $a_num;
394 $this->session_next = $a_num;
414 return (
bool) $this->subscription_membership_limitation;
419 return $this->subscription_max_members;
423 $this->subscription_max_members = $a_value;
438 $query =
"SELECT * FROM crs_settings ".
439 "WHERE obj_id = ".$ilDB->quote($a_course_id ,
'integer').
" ".
440 "AND sub_notify = 1";
442 return $res->numRows() ?
true :
false;
451 public function getSubItems($a_admin_panel_enabled =
false, $a_include_side_block =
false)
456 if (is_array($this->items[(
int) $a_admin_panel_enabled][(
int) $a_include_side_block]))
458 return $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block];
465 if(!is_array($this->items[
'sess']) or !$this->items[
'sess'])
467 return $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block];
472 return $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block];
475 if($a_include_side_block)
477 return $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block];
481 if(isset(
$_GET[
'crs_prev_sess']))
483 $ilUser->writePref(
'crs_sess_show_prev_'.$this->
getId(), (
string) (
int)
$_GET[
'crs_prev_sess']);
485 if(isset(
$_GET[
'crs_next_sess']))
487 $ilUser->writePref(
'crs_sess_show_next_'.$this->
getId(), (
string) (
int)
$_GET[
'crs_next_sess']);
492 $previous = $current = $next = array();
493 foreach($sessions as $key => $item)
511 $num_previous_remove = max(
515 while($num_previous_remove--)
517 if(!$ilUser->getPref(
'crs_sess_show_prev_'.$this->getId()))
519 array_shift($previous);
521 $this->items[
'sess_link'][
'prev'][
'value'] = 1;
524 $num_next_remove = max(
528 while($num_next_remove--)
530 if(!$ilUser->getPref(
'crs_sess_show_next_'.$this->getId()))
535 $this->items[
'sess_link'][
'next'][
'value'] = 1;
538 $sessions = array_merge($previous,$current,$next);
539 $this->items[
'sess'] = $sessions;
540 $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block] = $this->items;
541 return $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block];
547 return $this->subscription_notify ?
true :
false;
551 $this->subscription_notify = $a_value ?
true :
false;
556 $this->view_mode = $a_mode;
560 return $this->view_mode;
567 $query =
"SELECT view_mode FROM crs_settings WHERE obj_id = ".$ilDB->quote($a_id ,
'integer').
" ";
571 return $row->view_mode;
580 $query =
"SELECT abo FROM crs_settings WHERE obj_id = ".$ilDB->quote($a_id ,
'integer').
" ";
591 return $this->archive_start ? $this->archive_start : time();
595 $this->archive_start = $a_value;
599 return $this->archive_end ? $this->archive_end : mktime(0,0,0,12,12,date(
"Y",time())+2);
603 $this->archive_end = $a_value;
611 $this->archive_type = $a_value;
615 $this->abo = $a_status;
623 $this->show_members = $a_status;
627 return $this->show_members;
632 return $this->message;
636 $this->message = $a_message;
642 $this->message .=
"<br /> ";
644 $this->message .= $a_message;
680 include_once(
"./Modules/Course/classes/class.ilObjCourseAccess.php");
692 include_once(
"./Modules/Course/classes/class.ilObjCourseAccess.php");
711 return $this->ABO == $this->ABO_ENABLED;
714 function read($a_force_db =
false)
722 global $ilAppEventHandler;
732 $ilAppEventHandler->raise(
'Modules/Course',
734 array(
'object' => $this,
735 'obj_id' => $this->
getId(),
747 $this->latitude = $a_latitude;
767 $this->longitude = $a_longitude;
787 $this->locationzoom = $a_locationzoom;
807 $this->enablemap = $a_enablemap;
838 $new_obj->getMemberObject()->add($ilUser->getId(),
IL_CRS_ADMIN);
842 if($cwo->isRootNode($this->getRefId()))
851 include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
855 include_once(
'Modules/Course/classes/class.ilCourseFile.php');
859 include_once(
'Services/Tracking/classes/class.ilLPObjSettings.php');
861 $obj_settings->cloneSettings($new_obj->getId());
862 unset($obj_settings);
866 $ilLog->write(__METHOD__.
': '.$this->getBigIconPath().
' '.$this->
getSmallIconPath());
872 include_once
"./Services/Certificate/classes/class.ilCertificate.php";
873 include_once
"./Modules/Course/classes/class.ilCourseCertificateAdapter.php";
876 $cert->cloneCertificate($newcert);
894 include_once(
'Modules/Course/classes/class.ilCourseStart.php');
896 $start->cloneDependencies($a_target_id,$a_copy_id);
899 include_once(
'Services/Object/classes/class.ilObjectActivation.php');
903 include_once(
'Modules/Course/classes/class.ilCourseObjective.php');
905 $crs_objective->ilClone($a_target_id,$a_copy_id);
907 include_once(
'Services/Tracking/classes/class.ilLPCollections.php');
909 $lp_collection->cloneCollections($a_target_id,$a_copy_id);
923 global
$ilLog,$rbacadmin,$rbacreview;
926 $new_admin = $new_obj->getDefaultAdminRole();
927 $source_rolf = $rbacreview->getRoleFolderIdOfObject($this->
getRefId());
928 $target_rolf = $rbacreview->getRoleFolderIdOfObject($new_obj->getRefId());
930 if(!$admin || !$new_admin || !$source_rolf || !$target_rolf)
932 $ilLog->write(__METHOD__.
' : Error cloning auto generated role: il_crs_admin');
934 $rbacadmin->copyRolePermissions($admin,$source_rolf,$target_rolf,$new_admin,
true);
935 $ilLog->write(__METHOD__.
' : Finished copying of role crs_admin.');
938 $new_tutor = $new_obj->getDefaultTutorRole();
939 if(!$tutor || !$new_tutor)
941 $ilLog->write(__METHOD__.
' : Error cloning auto generated role: il_crs_tutor');
943 $rbacadmin->copyRolePermissions($tutor,$source_rolf,$target_rolf,$new_tutor,
true);
944 $ilLog->write(__METHOD__.
' : Finished copying of role crs_tutor.');
947 $new_member = $new_obj->getDefaultMemberRole();
948 if(!$member || !$new_member)
950 $ilLog->write(__METHOD__.
' : Error cloning auto generated role: il_crs_member');
952 $rbacadmin->copyRolePermissions($member,$source_rolf,$target_rolf,$new_member,
true);
953 $ilLog->write(__METHOD__.
' : Finished copying of role crs_member.');
963 #if(($this->getSubscriptionLimitationType() != IL_CRS_SUBSCRIPTION_DEACTIVATED) and
964 # $this->getSubscriptionType() == )
966 # $this->appendMessage($this->lng->txt('crs_select_registration_type'));
972 $this->
appendMessage($this->lng->txt(
"activation_times_not_valid"));
977 $this->
appendMessage($this->lng->txt(
"subscription_times_not_valid"));
979 #if((!$this->getActivationUnlimitedStatus() and
980 # !$this->getSubscriptionUnlimitedStatus()) and
981 # ($this->getSubscriptionStart() > $this->getActivationEnd() or
982 # $this->getSubscriptionStart() < $this->getActivationStart() or
983 # $this->getSubscriptionEnd() > $this->getActivationEnd() or
984 # $this->getSubscriptionEnd() < $this->getActivationStart()))
987 # $this->appendMessage($this->lng->txt("subscription_time_not_within_activation"));
991 $this->
appendMessage($this->lng->txt(
"crs_password_required"));
995 $this->
appendMessage($this->lng->txt(
"max_members_not_numeric"));
1000 $this->
appendMessage($this->lng->txt(
"archive_times_not_valid"));
1018 foreach ($emails as $email) {
1019 $email = trim($email);
1022 $ilErr->appendMessage($this->lng->txt(
'contact_email_not_valid').
" '".$email.
"'");
1048 global $ilAppEventHandler;
1051 if (!parent::delete())
1063 include_once(
'Modules/Course/classes/class.ilCourseParticipants.php');
1067 $this->archives_obj->deleteAll();
1069 include_once
'./Modules/Course/classes/class.ilCourseObjective.php';
1072 include_once
'./Modules/Course/classes/class.ilObjCourseGrouping.php';
1075 include_once
'./Modules/Course/classes/class.ilCourseFile.php';
1078 include_once(
'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php');
1081 $ilAppEventHandler->raise(
'Modules/Course',
1083 array(
'object' => $this,
1084 'obj_id' => $this->
getId(),
1098 global $ilAppEventHandler,
$ilLog;
1100 include_once(
'./Services/Container/classes/class.ilContainerSortingSettings.php');
1109 $ilAppEventHandler->raise(
'Modules/Course',
1111 array(
'object' => $this,
1112 'obj_id' => $this->
getId(),
1123 $query =
"SELECT * FROM crs_settings WHERE obj_id = ".$ilDB->quote($this->
getId() ,
'integer').
" ";
1126 if(!
$res->numRows())
1131 $query =
"UPDATE crs_settings SET ".
1132 "syllabus = ".$ilDB->quote($this->
getSyllabus() ,
'text').
", ".
1133 "contact_name = ".$ilDB->quote($this->
getContactName() ,
'text').
", ".
1135 "contact_phone = ".$ilDB->quote($this->
getContactPhone() ,
'text').
", ".
1136 "contact_email = ".$ilDB->quote($this->
getContactEmail() ,
'text').
", ".
1138 "activation_type = ".$ilDB->quote(!$this->
getOfflineStatus() ,
'integer').
", ".
1147 "view_mode = ".$ilDB->quote($this->
getViewMode() ,
'integer').
", ".
1148 "archive_start = ".$ilDB->quote($this->
getArchiveStart() ,
'integer').
", ".
1149 "archive_end = ".$ilDB->quote($this->
getArchiveEnd() ,
'integer').
", ".
1150 "archive_type = ".$ilDB->quote($this->
getArchiveType() ,
'integer').
", ".
1151 "abo = ".$ilDB->quote($this->
getAboStatus() ,
'integer').
", ".
1154 "show_members = ".$ilDB->quote($this->
getShowMembers() ,
'integer').
", ".
1155 "latitude = ".$ilDB->quote($this->
getLatitude() ,
'text').
", ".
1156 "longitude = ".$ilDB->quote($this->
getLongitude() ,
'text').
", ".
1157 "location_zoom = ".$ilDB->quote($this->
getLocationZoom() ,
'integer').
", ".
1158 "enable_course_map = ".$ilDB->quote((
int) $this->
getEnableCourseMap() ,
'integer').
", ".
1166 "WHERE obj_id = ".$ilDB->quote($this->
getId() ,
'integer').
"";
1173 include_once
"./Services/Object/classes/class.ilObjectActivation.php";
1189 $item->update($this->ref_id);
1235 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
1246 include_once
'./Services/Membership/classes/class.ilMembershipRegistrationCodeUtils.php';
1249 $query =
"INSERT INTO crs_settings (obj_id,syllabus,contact_name,contact_responsibility,".
1250 "contact_phone,contact_email,contact_consultation,activation_type,activation_start,".
1251 "activation_end,sub_limitation_type,sub_start,sub_end,sub_type,sub_password,sub_mem_limit,".
1252 "sub_max_members,sub_notify,view_mode,archive_start,archive_end,archive_type,abo," .
1253 "latitude,longitude,location_zoom,enable_course_map,waiting_list,show_members, ".
1254 "session_limit,session_prev,session_next, reg_ac_enabled, reg_ac, auto_notification, status_dt) ".
1256 $ilDB->quote($this->
getId() ,
'integer').
", ".
1263 $ilDB->quote(0 ,
'integer').
", ".
1278 $ilDB->quote($this->ABO_ENABLED ,
'integer').
", ".
1283 #"objective_view = '0', ".
1298 include_once(
'./Services/Container/classes/class.ilContainerSortingSettings.php');
1309 $query =
"SELECT * FROM crs_settings WHERE obj_id = ".$ilDB->quote($this->
getId() ,
'integer').
"";
1353 include_once
"./Services/Object/classes/class.ilObjectActivation.php";
1355 switch($activation[
"timing_type"])
1375 include_once
"./Modules/Course/classes/class.ilCourseWaitingList.php";
1377 if(!is_object($this->waiting_list_obj))
1394 include_once
"./Modules/Course/classes/class.ilCourseParticipant.php";
1408 include_once
"./Modules/Course/classes/class.ilCourseParticipants.php";
1441 include_once
"./Modules/Course/classes/class.ilCourseArchives.php";
1443 if(!is_object($this->archives_obj))
1455 global $rbacadmin,$rbacreview,$ilDB;
1460 $role_obj = $rolf_obj->createRole(
"il_crs_admin_".$this->
getRefId(),
"Admin of course obj_no.".$this->
getId());
1461 $admin_id = $role_obj->getId();
1464 $query =
"SELECT obj_id FROM object_data ".
1465 " WHERE type='rolt' AND title='il_crs_admin'";
1468 $rbacadmin->copyRoleTemplatePermissions(
$res->obj_id,ROLE_FOLDER_ID,$rolf_obj->getRefId(),$role_obj->getId());
1471 $ops = $rbacreview->getOperationsOfRole($role_obj->getId(),
"crs",$rolf_obj->getRefId());
1472 $rbacadmin->grantPermission($role_obj->getId(),$ops,$this->
getRefId());
1480 $role_obj = $rolf_obj->createRole(
"il_crs_tutor_".$this->
getRefId(),
"Tutors of course obj_no.".$this->
getId());
1481 $member_id = $role_obj->getId();
1484 $query =
"SELECT obj_id FROM object_data ".
1485 " WHERE type='rolt' AND title='il_crs_tutor'";
1487 $rbacadmin->copyRoleTemplatePermissions(
$res->obj_id,ROLE_FOLDER_ID,$rolf_obj->getRefId(),$role_obj->getId());
1490 $ops = $rbacreview->getOperationsOfRole($role_obj->getId(),
"crs",$rolf_obj->getRefId());
1491 $rbacadmin->grantPermission($role_obj->getId(),$ops,$this->
getRefId());
1499 $role_obj = $rolf_obj->createRole(
"il_crs_member_".$this->
getRefId(),
"Member of course obj_no.".$this->
getId());
1500 $member_id = $role_obj->getId();
1503 $query =
"SELECT obj_id FROM object_data ".
1504 " WHERE type='rolt' AND title='il_crs_member'";
1506 $rbacadmin->copyRoleTemplatePermissions(
$res->obj_id,ROLE_FOLDER_ID,$rolf_obj->getRefId(),$role_obj->getId());
1509 $ops = $rbacreview->getOperationsOfRole($role_obj->getId(),
"crs",$rolf_obj->getRefId());
1510 $rbacadmin->grantPermission($role_obj->getId(),$ops,$this->
getRefId());
1544 global $rbacadmin, $rbacreview, $rbacsystem;
1547 $rolf_data = $rbacreview->getRoleFolderOfObject($this->
getRefId());
1550 $arr_parentRoles = $rbacreview->getParentRoleIds($this->
getRefId());
1551 $arr_relevantParentRoleIds = array_diff(array_keys($arr_parentRoles),$this->
getDefaultCourseRoles());
1556 if (is_null($template_id))
1558 $template_ops = array();
1560 $template_ops = $rbacreview->getOperationsOfRole($template_id,
'crs', ROLE_FOLDER_ID);
1563 foreach ($arr_relevantParentRoleIds as $parentRole)
1565 if ($rbacreview->isProtected($arr_parentRoles[$parentRole][
'parent'],$parentRole))
1570 $granted_permissions = array();
1574 $rbacadmin->deleteLocalRole($parentRole,$rolf_data[
"child"]);
1581 $current_ops = $rbacreview->getRoleOperationsOnObject($parentRole, $this->
getRefId());
1582 $rbacadmin->revokePermission($this->
getRefId(), $parentRole);
1583 foreach ($template_ops as $template_op)
1585 if (in_array($template_op,$current_ops))
1587 array_push($granted_permissions,$template_op);
1590 if (!empty($granted_permissions))
1592 $rbacadmin->grantPermission($parentRole, $granted_permissions, $this->
getRefId());
1599 if (! is_null($template_id))
1601 $rbacadmin->copyRolePermissionIntersection(
1602 $template_id, ROLE_FOLDER_ID,
1603 $parentRole, $arr_parentRoles[$parentRole][
'parent'],
1604 $rolf_data[
"child"], $parentRole
1607 $rbacadmin->assignRoleToFolder($parentRole,$rolf_data[
"child"],
"false");
1621 $q =
"SELECT obj_id FROM object_data WHERE type='rolt' AND title='il_crs_non_member'";
1622 $res = $this->ilias->db->query($q);
1625 return $row[
"obj_id"];
1636 global $rbacadmin,$rbacreview;
1638 if (empty($this->local_roles))
1640 $this->local_roles = array();
1641 $rolf = $rbacreview->getRoleFolderOfObject($this->
getRefId());
1642 $role_arr = $rbacreview->getRolesOfRoleFolder($rolf[
"ref_id"]);
1644 foreach ($role_arr as $role_id)
1646 if ($rbacreview->isAssignable($role_id,$rolf[
"ref_id"]) ==
true)
1648 $role_Obj = $this->ilias->obj_factory->getInstanceByObjId($role_id);
1656 $role_name = $role_Obj->getTitle();
1658 $this->local_roles[$role_name] = $role_Obj->getId();
1663 return $this->local_roles;
1679 global $rbacadmin, $rbacreview;
1681 if (strlen($a_crs_id) > 0)
1683 $crs_id = $a_crs_id;
1690 $rolf = $rbacreview->getRoleFolderOfObject($crs_id);
1691 $role_arr = $rbacreview->getRolesOfRoleFolder($rolf[
"ref_id"]);
1693 foreach ($role_arr as $role_id)
1695 $role_Obj =& $this->ilias->obj_factory->getInstanceByObjId($role_id);
1697 $crs_Member =
"il_crs_member_".$crs_id;
1698 $crs_Admin =
"il_crs_admin_".$crs_id;
1699 $crs_Tutor =
"il_crs_tutor_".$crs_id;
1701 if (strcmp($role_Obj->getTitle(), $crs_Member) == 0 )
1703 $arr_crsDefaultRoles[
"crs_member_role"] = $role_Obj->getId();
1706 if (strcmp($role_Obj->getTitle(), $crs_Admin) == 0)
1708 $arr_crsDefaultRoles[
"crs_admin_role"] = $role_Obj->getId();
1711 if (strcmp($role_Obj->getTitle(), $crs_Tutor) == 0)
1713 $arr_crsDefaultRoles[
"crs_tutor_role"] = $role_Obj->getId();
1717 return $arr_crsDefaultRoles;
1726 $rolf = $rbacreview->getRoleFolderOfObject($this->
getRefId());
1728 return $rbacreview->getRolesOfRoleFolder($rolf[
"ref_id"],
false);
1735 $query =
"DELETE FROM crs_settings ".
1736 "WHERE obj_id = ".$ilDB->quote($this->
getId() ,
'integer').
" ";
1747 foreach($local_roles as $role_id)
1750 if(substr(
$title,0,8) ==
'il_crs_m')
1761 foreach($local_roles as $role_id)
1765 if(!strcmp($tmp_role->getTitle(),
"il_crs_tutor_".$this->getRefId()))
1777 foreach($local_roles as $role_id)
1781 if(!strcmp($tmp_role->getTitle(),
"il_crs_admin_".$this->getRefId()))
1795 $a_usr_id = $a_usr_id ? $a_usr_id : $ilUser->getId();
1797 include_once
"./Modules/Course/classes/class.ilCourseParticipants.php";
1813 include_once
'./Modules/Course/classes/class.ilCourseLMHistory.php';
1816 include_once
'./Modules/Course/classes/class.ilCourseParticipants.php';
1820 include_once
'./Modules/Course/classes/class.ilCourseObjectiveResult.php';
1840 include_once
'Modules/Course/classes/class.ilECSCourseSettings.php';
1842 $ecs->handleContentUpdate();
1856 include_once
'./Services/Object/classes/class.ilObjectActivation.php';
1869 include_once(
'./Services/Calendar/classes/class.ilCalendarAppointmentTemplate.php');
1870 include_once(
'./Services/Calendar/classes/class.ilDateTime.php');
1880 $app->setSubtitle(
'crs_cal_activation_start');
1888 $app->setSubtitle(
'crs_cal_activation_end');
1898 $app->setSubtitle(
'crs_cal_reg_start');
1906 $app->setSubtitle(
'crs_cal_reg_end');
1913 return $apps ? $apps : array();
1921 ###### Interface ilMembershipRegistrationCodes
1930 $query =
"SELECT obj_id FROM crs_settings ".
1931 "WHERE reg_ac_enabled = ".$ilDB->quote(1,
'integer').
" ".
1932 "AND reg_ac = ".$ilDB->quote($a_code,
'text');
1938 $obj_ids[] =
$row->obj_id;
1951 include_once
'./Services/Membership/exceptions/class.ilMembershipRegistrationException.php';
1952 include_once
"./Modules/Course/classes/class.ilCourseParticipants.php";
1955 if($part->isAssigned($a_user_id))
1960 if(!$a_force_registration)
1963 if(!self::_registrationEnabled($this->
getId()))
1965 $this->lng->loadLanguageModule(
'crs');
1972 include_once(
'./Modules/Course/classes/class.ilCourseWaitingList.php');
1981 $part->add($a_user_id,$a_role);
1982 $part->sendNotification($part->NOTIFY_ACCEPT_USER, $a_user_id);
1983 $part->sendNotification($part->NOTIFY_ADMINS,$a_user_id);
1986 include_once
'./Modules/Forum/classes/class.ilForumNotification.php';
2012 $this->auto_notification = $value;
2022 $this->status_dt = (int)$a_value;
2040 include_once
"Services/Tracking/classes/class.ilLPStatusWrapper.php";
2057 include_once(
"Services/Tracking/classes/class.ilObjUserTracking.php");
2061 include_once(
"Services/Tracking/classes/class.ilLPStatus.php");
2063 $this->
getMembersObject()->updatePassed($a_member_id, $has_completed,
false,
true);