소스 검색

Adding send_email for all users in al session see BT#7217

Julio Montoya 11 년 전
부모
커밋
7daf5d0625
3개의 변경된 파일24개의 추가작업 그리고 8개의 파일을 삭제
  1. 19 2
      main/announcements/announcement_email.class.php
  2. 3 4
      main/announcements/announcements.inc.php
  3. 2 2
      main/announcements/announcements.php

+ 19 - 2
main/announcements/announcement_email.class.php

@@ -133,7 +133,8 @@ class AnnouncementEmail
      *
      * @return array
      */
-    public function sent_to() {
+    public function sent_to()
+    {
         $sent_to = $this->sent_to_info();
         $users = $sent_to['users'];
         $users = $users ? $users : array();
@@ -247,7 +248,8 @@ class AnnouncementEmail
     /**
      * Send emails to users.
      */
-    public function send() {
+    public function send($sendToUsersInSession = false)
+    {
         $sender = $this->sender();
         $subject = $this->subject();
         $message = $this->message();
@@ -258,6 +260,21 @@ class AnnouncementEmail
         foreach ($users as $user) {
             MessageManager::send_message_simple($user['user_id'], $subject, $message, $sender['user_id']);
         }
+
+        if ($sendToUsersInSession) {
+            $sessionList = SessionManager::get_session_by_course($this->course['code']);
+            if (!empty($sessionList)) {
+                foreach ($sessionList as $sessionInfo) {
+                    $sessionId = $sessionInfo['id'];
+                    $userList = CourseManager::get_user_list_from_course_code($this->course['code'], $sessionId);
+                    if (!empty($userList)) {
+                        foreach ($userList as $user) {
+                            MessageManager::send_message_simple($user['user_id'], $subject, $message, $sender['user_id']);
+                        }
+                    }
+                }
+            }
+        }
         $this->log_mail_sent();
     }
 

+ 3 - 4
main/announcements/announcements.inc.php

@@ -472,8 +472,6 @@ class AnnouncementManager {
             // the message is sent to everyone, so we set the group to 0
             api_item_property_update($_course, TOOL_ANNOUNCEMENT, $id, "AnnouncementUpdated", api_get_user_id(), '0');
         }
-
-
     }
 
     /**
@@ -1177,9 +1175,10 @@ class AnnouncementManager {
         //api_item_property_update($_course, 'announcement_attachment',  $id,'AnnouncementAttachmentDeleted', api_get_user_id());
     }
 
-    public static function send_email($annoucement_id) {
+    public static function send_email($annoucement_id, $sendToUsersInSession = false)
+    {
         $email = AnnouncementEmail::create(null, $annoucement_id);
-        $email->send();
+        $email->send($sendToUsersInSession);
     }
 
 }

+ 2 - 2
main/announcements/announcements.php

@@ -366,7 +366,7 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
 
                 /*		MAIL FUNCTION	*/
                 if ($_POST['email_ann'] && empty($_POST['onlyThoseMails'])) {
-                    AnnouncementManager::send_email($id);
+                    AnnouncementManager::send_email($id, $sendToUsersInSession);
                 }
 				$message = get_lang('AnnouncementModified');
 			}
@@ -386,7 +386,7 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
 
                 /*		MAIL FUNCTION	*/
                 if ($_POST['email_ann'] && empty($_POST['onlyThoseMails'])) {
-                    AnnouncementManager::send_email($insert_id);
+                    AnnouncementManager::send_email($insert_id, $sendToUsersInSession);
                 }
 
 			} // end condition token