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);