Send announcements only to active users see #3855

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

@ -122,8 +122,8 @@ if (isset ($_GET['action']) && $_GET['action'] == 'edit') {
$values['visible_guest'] = $announcement->visible_guest ;
$values['lang'] = $announcement->lang;
$values['action'] = 'edit';
$groups = SystemAnnouncementManager :: get_announcement_groups($announcement->id);
$values['group'] = isset($groups[0]['group_id']) ? $groups[0]['group_id'] : 0;
$groups = SystemAnnouncementManager :: get_announcement_groups($announcement->id);
$values['group'] = isset($groups[0]['group_id']) ? $groups[0]['group_id'] : 0;
$action_todo = true;
}

@ -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'
$sqlmail = "SELECT user_id, lastname, firstname, email
FROM $tbl_user
WHERE user_id IN (".$userlist.")";
WHERE active = 1 AND user_id IN (".$userlist.")";
} else if (empty($_POST['not_selected_form'])) {
if(empty($_SESSION['id_session']) || api_get_setting('use_session_mode')=='false') {
// send to everybody
$sqlmail = "SELECT user.user_id, user.email, user.lastname, user.firstname
FROM $tbl_course_user, $tbl_user
WHERE course_code='".Database::escape_string($_course['sysCode'])."'
AND course_rel_user.user_id = user.user_id AND relation_type <>".COURSE_RELATION_TYPE_RRHH." ";
WHERE active = 1 AND
course_code='".Database::escape_string($_course['sysCode'])."' AND
course_rel_user.user_id = user.user_id AND
relation_type <>".COURSE_RELATION_TYPE_RRHH." ";
} else {
$sqlmail = "SELECT user.user_id, user.email, user.lastname, user.firstname
FROM $tbl_user
INNER JOIN $tbl_session_course_user
ON $tbl_user.user_id = $tbl_session_course_user.id_user
AND $tbl_session_course_user.course_code = '".$_course['id']."'
AND $tbl_session_course_user.id_session = ".api_get_session_id();
FROM $tbl_user INNER JOIN $tbl_session_course_user
ON $tbl_user.user_id = $tbl_session_course_user.id_user AND
active = 1 AND
$tbl_session_course_user.course_code = '".$_course['id']."' AND
$tbl_session_course_user.id_session = ".api_get_session_id();
}
}
if ($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);
}
@api_mail_html($recipient_name, $mailid, stripslashes($emailSubject), $mail_body, $sender_name, $sender_email, null, $data_file, true);
//@todo who uses the $table_reminder??
/*
if ($_REQUEST['reminder']=="1") {
$time=getdate();
$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;
$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);
}
}*/
}
AnnouncementManager::update_mail_sent($insert_id);
$message = $added_and_sent;

@ -531,14 +531,17 @@ class SystemAnnouncementManager {
$user_table = Database :: get_main_table(TABLE_MAIN_USER);
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) {
$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) {
$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
$sql .= " AND language = '".Database::escape_string($language)."' ";
}
@ -547,10 +550,14 @@ class SystemAnnouncementManager {
if ($_configuration['multiple_access_urls']) {
$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')) {
return true;
}
$result = Database::query($sql);
if ($result === false) {
return false;

Loading…
Cancel
Save