|
|
@ -129,13 +129,13 @@ class SystemAnnouncementManager |
|
|
|
( '$now' >= date_start AND '$now' <= date_end) "; |
|
|
|
( '$now' >= date_start AND '$now' <= date_end) "; |
|
|
|
|
|
|
|
|
|
|
|
switch ($visible) { |
|
|
|
switch ($visible) { |
|
|
|
case self::VISIBLE_GUEST : |
|
|
|
case self::VISIBLE_GUEST: |
|
|
|
$sql .= " AND visible_guest = 1 "; |
|
|
|
$sql .= " AND visible_guest = 1 "; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case self::VISIBLE_STUDENT : |
|
|
|
case self::VISIBLE_STUDENT: |
|
|
|
$sql .= " AND visible_student = 1 "; |
|
|
|
$sql .= " AND visible_student = 1 "; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case self::VISIBLE_TEACHER : |
|
|
|
case self::VISIBLE_TEACHER: |
|
|
|
$sql .= " AND visible_teacher = 1 "; |
|
|
|
$sql .= " AND visible_teacher = 1 "; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
@ -240,13 +240,13 @@ class SystemAnnouncementManager |
|
|
|
WHERE (lang="'.$user_selected_language.'" OR lang IS NULL) '; |
|
|
|
WHERE (lang="'.$user_selected_language.'" OR lang IS NULL) '; |
|
|
|
if (isset($user_id)) { |
|
|
|
if (isset($user_id)) { |
|
|
|
switch ($visibility) { |
|
|
|
switch ($visibility) { |
|
|
|
case self::VISIBLE_GUEST : |
|
|
|
case self::VISIBLE_GUEST: |
|
|
|
$sql .= " AND visible_guest = 1 "; |
|
|
|
$sql .= " AND visible_guest = 1 "; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case self::VISIBLE_STUDENT : |
|
|
|
case self::VISIBLE_STUDENT: |
|
|
|
$sql .= " AND visible_student = 1 "; |
|
|
|
$sql .= " AND visible_student = 1 "; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case self::VISIBLE_TEACHER : |
|
|
|
case self::VISIBLE_TEACHER: |
|
|
|
$sql .= " AND visible_teacher = 1 "; |
|
|
|
$sql .= " AND visible_teacher = 1 "; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
@ -322,15 +322,15 @@ class SystemAnnouncementManager |
|
|
|
$sendEmailTest = false |
|
|
|
$sendEmailTest = false |
|
|
|
) { |
|
|
|
) { |
|
|
|
$original_content = $content; |
|
|
|
$original_content = $content; |
|
|
|
$a_dateS = explode(' ',$date_start); |
|
|
|
$a_dateS = explode(' ', $date_start); |
|
|
|
$a_arraySD = explode('-',$a_dateS[0]); |
|
|
|
$a_arraySD = explode('-', $a_dateS[0]); |
|
|
|
$a_arraySH = explode(':',$a_dateS[1]); |
|
|
|
$a_arraySH = explode(':', $a_dateS[1]); |
|
|
|
$date_start_to_compare = array_merge($a_arraySD,$a_arraySH); |
|
|
|
$date_start_to_compare = array_merge($a_arraySD, $a_arraySH); |
|
|
|
|
|
|
|
|
|
|
|
$a_dateE = explode(' ',$date_end); |
|
|
|
$a_dateE = explode(' ', $date_end); |
|
|
|
$a_arrayED = explode('-',$a_dateE[0]); |
|
|
|
$a_arrayED = explode('-', $a_dateE[0]); |
|
|
|
$a_arrayEH = explode(':',$a_dateE[1]); |
|
|
|
$a_arrayEH = explode(':', $a_dateE[1]); |
|
|
|
$date_end_to_compare = array_merge($a_arrayED,$a_arrayEH); |
|
|
|
$date_end_to_compare = array_merge($a_arrayED, $a_arrayEH); |
|
|
|
|
|
|
|
|
|
|
|
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS); |
|
|
|
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS); |
|
|
|
|
|
|
|
|
|
|
@ -360,8 +360,6 @@ class SystemAnnouncementManager |
|
|
|
//$content = str_replace('file=/home/', 'file='.api_get_path(WEB_PATH).'home/', $content); |
|
|
|
//$content = str_replace('file=/home/', 'file='.api_get_path(WEB_PATH).'home/', $content); |
|
|
|
$content = str_replace('src=\"'.api_get_path(REL_HOME_PATH), 'src=\"'.api_get_path(WEB_PATH).api_get_path(REL_HOME_PATH), $content); |
|
|
|
$content = str_replace('src=\"'.api_get_path(REL_HOME_PATH), 'src=\"'.api_get_path(WEB_PATH).api_get_path(REL_HOME_PATH), $content); |
|
|
|
$content = str_replace('file='.api_get_path(REL_HOME_PATH), 'file='.api_get_path(WEB_PATH).api_get_path(REL_HOME_PATH), $content); |
|
|
|
$content = str_replace('file='.api_get_path(REL_HOME_PATH), 'file='.api_get_path(WEB_PATH).api_get_path(REL_HOME_PATH), $content); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$lang = is_null($lang) ? '' : $lang; |
|
|
|
$lang = is_null($lang) ? '' : $lang; |
|
|
|
|
|
|
|
|
|
|
|
$current_access_url_id = 1; |
|
|
|
$current_access_url_id = 1; |
|
|
@ -427,8 +425,8 @@ class SystemAnnouncementManager |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Makes the announcement id visible only for groups in groups_array |
|
|
|
* Makes the announcement id visible only for groups in groups_array |
|
|
|
* @param int announcement id |
|
|
|
* @param int $announcement_id |
|
|
|
* @param array array of group id |
|
|
|
* @param array $group_array array of group id |
|
|
|
**/ |
|
|
|
**/ |
|
|
|
public static function announcement_for_groups($announcement_id, $group_array) |
|
|
|
public static function announcement_for_groups($announcement_id, $group_array) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -437,9 +435,8 @@ class SystemAnnouncementManager |
|
|
|
); |
|
|
|
); |
|
|
|
//first delete all group associations for this announcement |
|
|
|
//first delete all group associations for this announcement |
|
|
|
$res = Database::query( |
|
|
|
$res = Database::query( |
|
|
|
"DELETE FROM $tbl_announcement_group WHERE announcement_id=".intval( |
|
|
|
"DELETE FROM $tbl_announcement_group |
|
|
|
$announcement_id |
|
|
|
WHERE announcement_id=".intval($announcement_id) |
|
|
|
) |
|
|
|
|
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
if ($res === false) { |
|
|
|
if ($res === false) { |
|
|
@ -482,6 +479,7 @@ class SystemAnnouncementManager |
|
|
|
ag.group_id = g.id"; |
|
|
|
ag.group_id = g.id"; |
|
|
|
$res = Database::query($sql); |
|
|
|
$res = Database::query($sql); |
|
|
|
$groups = Database::fetch_array($res); |
|
|
|
$groups = Database::fetch_array($res); |
|
|
|
|
|
|
|
|
|
|
|
return $groups; |
|
|
|
return $groups; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -509,20 +507,21 @@ class SystemAnnouncementManager |
|
|
|
) { |
|
|
|
) { |
|
|
|
$em = Database::getManager(); |
|
|
|
$em = Database::getManager(); |
|
|
|
|
|
|
|
|
|
|
|
$a_dateS = explode(' ',$date_start); |
|
|
|
$a_dateS = explode(' ', $date_start); |
|
|
|
$a_arraySD = explode('-',$a_dateS[0]); |
|
|
|
$a_arraySD = explode('-', $a_dateS[0]); |
|
|
|
$a_arraySH = explode(':',$a_dateS[1]); |
|
|
|
$a_arraySH = explode(':', $a_dateS[1]); |
|
|
|
$date_start_to_compare = array_merge($a_arraySD,$a_arraySH); |
|
|
|
$date_start_to_compare = array_merge($a_arraySD, $a_arraySH); |
|
|
|
|
|
|
|
|
|
|
|
$a_dateE = explode(' ',$date_end); |
|
|
|
$a_dateE = explode(' ', $date_end); |
|
|
|
$a_arrayED = explode('-',$a_dateE[0]); |
|
|
|
$a_arrayED = explode('-', $a_dateE[0]); |
|
|
|
$a_arrayEH = explode(':',$a_dateE[1]); |
|
|
|
$a_arrayEH = explode(':', $a_dateE[1]); |
|
|
|
$date_end_to_compare = array_merge($a_arrayED,$a_arrayEH); |
|
|
|
$date_end_to_compare = array_merge($a_arrayED, $a_arrayEH); |
|
|
|
|
|
|
|
|
|
|
|
$lang = is_null($lang) ? '' : $lang; |
|
|
|
$lang = is_null($lang) ? '' : $lang; |
|
|
|
|
|
|
|
|
|
|
|
if (!checkdate($date_start_to_compare[1], $date_start_to_compare[2], $date_start_to_compare[0])) { |
|
|
|
if (!checkdate($date_start_to_compare[1], $date_start_to_compare[2], $date_start_to_compare[0])) { |
|
|
|
Display :: display_normal_message(get_lang('InvalidStartDate')); |
|
|
|
Display:: display_normal_message(get_lang('InvalidStartDate')); |
|
|
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -670,8 +669,14 @@ class SystemAnnouncementManager |
|
|
|
* @param string Language (optional, considered for all languages if left empty) |
|
|
|
* @param string Language (optional, considered for all languages if left empty) |
|
|
|
* @return bool True if the message was sent or there was no destination matching. False on database or e-mail sending error. |
|
|
|
* @return bool True if the message was sent or there was no destination matching. False on database or e-mail sending error. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public static function send_system_announcement_by_email($title, $content, $teacher, $student, $language = null, $sendEmailTest = false) |
|
|
|
public static function send_system_announcement_by_email( |
|
|
|
{ |
|
|
|
$title, |
|
|
|
|
|
|
|
$content, |
|
|
|
|
|
|
|
$teacher, |
|
|
|
|
|
|
|
$student, |
|
|
|
|
|
|
|
$language = null, |
|
|
|
|
|
|
|
$sendEmailTest = false |
|
|
|
|
|
|
|
) { |
|
|
|
global $charset; |
|
|
|
global $charset; |
|
|
|
|
|
|
|
|
|
|
|
$title = api_html_entity_decode(stripslashes($title), ENT_QUOTES, $charset); |
|
|
|
$title = api_html_entity_decode(stripslashes($title), ENT_QUOTES, $charset); |
|
|
@ -753,13 +758,13 @@ class SystemAnnouncementManager |
|
|
|
('$now' >= date_start AND '$now' <= date_end) "; |
|
|
|
('$now' >= date_start AND '$now' <= date_end) "; |
|
|
|
|
|
|
|
|
|
|
|
switch ($visible) { |
|
|
|
switch ($visible) { |
|
|
|
case self::VISIBLE_GUEST : |
|
|
|
case self::VISIBLE_GUEST: |
|
|
|
$sql .= " AND visible_guest = 1 "; |
|
|
|
$sql .= " AND visible_guest = 1 "; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case self::VISIBLE_STUDENT : |
|
|
|
case self::VISIBLE_STUDENT: |
|
|
|
$sql .= " AND visible_student = 1 "; |
|
|
|
$sql .= " AND visible_student = 1 "; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case self::VISIBLE_TEACHER : |
|
|
|
case self::VISIBLE_TEACHER: |
|
|
|
$sql .= " AND visible_teacher = 1 "; |
|
|
|
$sql .= " AND visible_teacher = 1 "; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|