Send announcements only to active users see #3855

skala
Julio Montoya 14 years ago
parent 3783b375de
commit 240648443d
  1. 24
      main/announcements/announcements.php
  2. 13
      main/inc/lib/system_announcements.lib.php

@ -427,24 +427,25 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
// send to the created 'userlist' // send to the created 'userlist'
$sqlmail = "SELECT user_id, lastname, firstname, email $sqlmail = "SELECT user_id, lastname, firstname, email
FROM $tbl_user FROM $tbl_user
WHERE user_id IN (".$userlist.")"; WHERE active = 1 AND user_id IN (".$userlist.")";
} else if (empty($_POST['not_selected_form'])) { } else if (empty($_POST['not_selected_form'])) {
if(empty($_SESSION['id_session']) || api_get_setting('use_session_mode')=='false') { if(empty($_SESSION['id_session']) || api_get_setting('use_session_mode')=='false') {
// send to everybody // send to everybody
$sqlmail = "SELECT user.user_id, user.email, user.lastname, user.firstname $sqlmail = "SELECT user.user_id, user.email, user.lastname, user.firstname
FROM $tbl_course_user, $tbl_user FROM $tbl_course_user, $tbl_user
WHERE course_code='".Database::escape_string($_course['sysCode'])."' WHERE active = 1 AND
AND course_rel_user.user_id = user.user_id AND relation_type <>".COURSE_RELATION_TYPE_RRHH." "; course_code='".Database::escape_string($_course['sysCode'])."' AND
course_rel_user.user_id = user.user_id AND
relation_type <>".COURSE_RELATION_TYPE_RRHH." ";
} else { } else {
$sqlmail = "SELECT user.user_id, user.email, user.lastname, user.firstname $sqlmail = "SELECT user.user_id, user.email, user.lastname, user.firstname
FROM $tbl_user FROM $tbl_user INNER JOIN $tbl_session_course_user
INNER JOIN $tbl_session_course_user ON $tbl_user.user_id = $tbl_session_course_user.id_user AND
ON $tbl_user.user_id = $tbl_session_course_user.id_user active = 1 AND
AND $tbl_session_course_user.course_code = '".$_course['id']."' $tbl_session_course_user.course_code = '".$_course['id']."' AND
AND $tbl_session_course_user.id_session = ".api_get_session_id(); $tbl_session_course_user.id_session = ".api_get_session_id();
} }
} }
if ($sqlmail != '') { if ($sqlmail != '') {
$rs_mail = Database::query($sqlmail); $rs_mail = Database::query($sqlmail);
@ -482,7 +483,10 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
$data_file = array('path' => $path_attach,'filename' => $filename_attach); $data_file = array('path' => $path_attach,'filename' => $filename_attach);
} }
@api_mail_html($recipient_name, $mailid, stripslashes($emailSubject), $mail_body, $sender_name, $sender_email, null, $data_file, true); @api_mail_html($recipient_name, $mailid, stripslashes($emailSubject), $mail_body, $sender_name, $sender_email, null, $data_file, true);
//@todo who uses the $table_reminder?? //@todo who uses the $table_reminder??
/*
if ($_REQUEST['reminder']=="1") { if ($_REQUEST['reminder']=="1") {
$time=getdate(); $time=getdate();
$time = $time['yday']; $time = $time['yday'];
@ -501,7 +505,7 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
$time = $time+30; $time = $time+30;
$sql="INSERT INTO $table_reminder(sid,db_name,email,subject,content,reminder_choice,reminder_time,avail_till) values('$surveyid','$db_name','$mailid','".addslashes($emailSubject)."','".addslashes($mail_body)."','1','$time','$end_date')"; $sql="INSERT INTO $table_reminder(sid,db_name,email,subject,content,reminder_choice,reminder_time,avail_till) values('$surveyid','$db_name','$mailid','".addslashes($emailSubject)."','".addslashes($mail_body)."','1','$time','$end_date')";
Database::query($sql); Database::query($sql);
} }*/
} }
AnnouncementManager::update_mail_sent($insert_id); AnnouncementManager::update_mail_sent($insert_id);
$message = $added_and_sent; $message = $added_and_sent;

@ -531,14 +531,17 @@ class SystemAnnouncementManager {
$user_table = Database :: get_main_table(TABLE_MAIN_USER); $user_table = Database :: get_main_table(TABLE_MAIN_USER);
if ($teacher <> 0 AND $student == 0) { if ($teacher <> 0 AND $student == 0) {
$sql = "SELECT firstname, lastname, email, status FROM $user_table u $url_condition WHERE email<>'' AND status = '1' AND active = 1"; $sql = "SELECT firstname, lastname, email, status FROM $user_table u $url_condition WHERE status = '1' ";
} }
if ($teacher == 0 AND $student <> 0) { if ($teacher == 0 AND $student <> 0) {
$sql = "SELECT firstname, lastname, email, status FROM $user_table u $url_condition WHERE email<>'' AND status = '5' AND active = 1 "; $sql = "SELECT firstname, lastname, email, status FROM $user_table u $url_condition WHERE status = '5' ";
} }
if ($teacher<> 0 AND $student <> 0) { if ($teacher<> 0 AND $student <> 0) {
$sql = "SELECT firstname, lastname, email FROM $user_table u $url_condition WHERE email<>'' AND active = 1 "; $sql = "SELECT firstname, lastname, email FROM $user_table u $url_condition WHERE 1=1 ";
} }
if (!empty($language)) { //special condition because language was already treated for SQL insert before if (!empty($language)) { //special condition because language was already treated for SQL insert before
$sql .= " AND language = '".Database::escape_string($language)."' "; $sql .= " AND language = '".Database::escape_string($language)."' ";
} }
@ -548,9 +551,13 @@ class SystemAnnouncementManager {
$sql .= " AND access_url_id = '".$current_access_url_id."' "; $sql .= " AND access_url_id = '".$current_access_url_id."' ";
} }
//Sent to active users
$sql .= " AND email <>'' AND active = 1 ";
if ((empty($teacher) or $teacher == '0') AND (empty($student) or $student == '0')) { if ((empty($teacher) or $teacher == '0') AND (empty($student) or $student == '0')) {
return true; return true;
} }
$result = Database::query($sql); $result = Database::query($sql);
if ($result === false) { if ($result === false) {
return false; return false;

Loading…
Cancel
Save