2 /************************************************************************/
4 /************************************************************************/
5 /* Copyright (c) 2002-2010 */
6 /* Inclusive Design Institute */
8 /* This program is free software. You can redistribute it and/or */
9 /* modify it under the terms of the GNU General Public License */
10 /* as published by the Free Software Foundation. */
11 /************************************************************************/
14 define('AT_INCLUDE_PATH', '../../../include/');
15 require (AT_INCLUDE_PATH.'vitals.inc.php');
16 authenticate(AT_PRIV_COURSE_EMAIL);
18 $course = intval($_GET['course']);
21 $course = $_SESSION['course_id'];
24 if (isset($_POST['cancel'])) {
25 $msg->addFeedback('CANCELLED');
26 header('Location: '.$_base_href.'tools/index.php');
28 } else if (isset($_POST['submit'])) {
29 $missing_fields = array();
31 $_POST['to_enrolled'] = trim($_POST['to_enrolled']);
32 $_POST['to_unenrolled'] = trim($_POST['to_unenrolled']);
33 $_POST['to_alumni'] = trim($_POST['to_alumni']);
34 $_POST['to_assistants'] = trim($_POST['to_assistants']);
36 $_POST['subject'] = trim($_POST['subject']);
37 $_POST['body'] = trim($_POST['body']);
39 if ( ($_POST['to_enrolled'] == '') &&
40 ($_POST['to_unenrolled'] == '') &&
41 ($_POST['to_alumni'] == '') &&
42 ($_POST['to_assistants'] == '') &&
43 ($_POST['groups'] == '')
45 $missing_fields[] = _AT('to');
48 if ($_POST['subject'] == '') {
49 $missing_fields[] = _AT('subject');
52 if ($_POST['body'] == '') {
53 $missing_fields[] = _AT('body');
56 if ($missing_fields) {
57 $missing_fields = implode(', ', $missing_fields);
58 $msg->addError(array('EMPTY_FIELDS', $missing_fields));
61 if (!$msg->containsErrors()) {
62 $email_sql = "SELECT email, first_name, last_name, login, password FROM ".TABLE_PREFIX."course_enrollment C INNER JOIN ".TABLE_PREFIX."members M USING (member_id) WHERE C.course_id=$course AND (";
64 if ($_POST['to_unenrolled']) {
65 // choose all unenrolled
66 $email_sql .= "C.approved='n' OR ";
69 if ($_POST['to_alumni']) {
71 $email_sql .= "C.approved='a' OR ";
74 if ($_POST['to_assistants']){
75 // choose all assistants
76 $email_sql .= "C.privileges<>0 OR ";
79 if ($_POST['groups']) {
81 $groups = implode(',', $_POST['groups']);
83 $group_members = array();
84 $sql = "SELECT member_id FROM ".TABLE_PREFIX."groups_members WHERE group_id IN ($groups)";
85 $result = mysql_query($sql, $db);
86 while ($row = mysql_fetch_assoc($result)) {
87 $group_members[] = $row['member_id'];
89 $group_members = implode(',', $group_members);
90 if (!empty($group_members)){
91 $email_sql .= "M.member_id IN ($group_members) OR ";
93 $email_sql .= "M.member_id IN (-1) OR ";
95 } else if ($_POST['to_enrolled']) {
96 // includes instructor
97 $email_sql .= "(C.approved='y' AND C.privileges=0) OR ";
100 $email_sql = substr_replace($email_sql, '', -4). ')'; // strip off the last ' OR '
101 $result = mysql_query($email_sql,$db);
103 require(AT_INCLUDE_PATH . 'classes/phpmailer/atutormailer.class.php');
105 // generate email recipients
106 $mail_list = array();
107 while ($row = mysql_fetch_assoc($result)) {
108 $mail_list[]=$row['email'];
109 $fname_list[$row['email']] = $row['first_name'];
110 $lname_list[$row['email']] = $row['last_name'];
111 $login_list[$row['email']] = $row['login'];
114 // Get instructor ID.
115 $result = mysql_query("SELECT member_id FROM ".TABLE_PREFIX."courses WHERE course_id=$course",$db);
116 $row = mysql_fetch_assoc($result);
117 $instructor_id = $row['member_id'];
119 // Add instructor to email list if he is not the one sending email.
120 if ($instructor_id != $_SESSION['member_id']) {
121 //$sql = "SELECT email FROM ".TABLE_PREFIX."members WHERE member_id=$instructor_id";
122 $sql = "SELECT email FROM ".TABLE_PREFIX."members WHERE member_id=$instructor_id";
123 $result = mysql_query($sql, $db);
124 $row = mysql_fetch_assoc($result);
125 $mail_list[]= $row['email'];
129 $result = mysql_query("SELECT email, first_name, last_name,login,password FROM ".TABLE_PREFIX."members WHERE member_id=$_SESSION[member_id]", $db);
130 $row = mysql_fetch_assoc($result);
131 $mail_list[] = $row['email'];
133 // set some user specific variables for the body (
134 // Added by Thomas Taennier (ipool)
135 foreach ($mail_list as $recip) {
136 $subject = $_POST['subject'];
137 $body = $_POST['body'];
138 $mail = new ATutorMailer;
139 $mail->From = $row['email'];
140 $mail->FromName = $row['first_name'] . ' ' . $row['last_name'];
141 $subject = str_replace('{AT_FNAME}', $fname_list[$recip],$subject);
142 $subject = str_replace('{AT_LNAME}', $lname_list[$recip],$subject);
143 $body = str_replace('{AT_FNAME}', $fname_list[$recip],$body);
144 $body = str_replace('{AT_LNAME}', $lname_list[$recip],$body);
145 $body = str_replace('{AT_EMAIL}', $recip,$body);
146 $body = str_replace('{AT_USER}', $login_list[$recip],$body);
148 $mail->Subject = $subject;
149 $mail->AddAddress($recip);
152 $msg->addError('SENDING_ERROR');
153 header('Location: '.$_SERVER['PHP_SELF']);
159 $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
160 header('Location: '.$_base_href.'tools/index.php');
165 require(AT_INCLUDE_PATH.'header.inc.php');
167 $sql = "SELECT COUNT(*) AS cnt FROM ".TABLE_PREFIX."course_enrollment C, ".TABLE_PREFIX."members M WHERE C.course_id=$course AND C.member_id=M.member_id AND M.member_id<>$_SESSION[member_id] ORDER BY C.approved, M.login";
168 $result = mysql_query($sql,$db);
169 $row = mysql_fetch_array($result);
170 if ($row['cnt'] == 0) {
171 $msg->printInfos('NO_STUDENTS');
172 require(AT_INCLUDE_PATH.'footer.inc.php');
177 <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
178 <input type="hidden" name="course" value="<?php echo $course; ?>" />
180 <div class="input-form">
181 <fieldset class="group_form"><legend class="group_form"><?php echo _AT('course_email'); ?></legend>
183 <span class="required" title="<?php echo _AT('required_field'); ?>">*</span>
184 <?php echo _AT('to'); ?><br />
185 <input type="checkbox" name="to_assistants" value="1" id="assistants" <?php if ($_POST['to_assistants']=='1') { echo 'checked="checked"'; } ?> /><label for="assistants"><?php echo _AT('assistants'); ?></label>
186 <input type="checkbox" name="to_enrolled" value="1" id="enrolled" <?php if ($_POST['to_enrolled']=='1') { echo 'checked="checked"'; } else { echo 'checked="checked"'; } ?> /><label for="enrolled"><?php echo _AT('enrolled'); ?></label>
187 <input type="checkbox" name="to_unenrolled" value="1" id="unenrolled" <?php if ($_POST['to_unenrolled']=='1') { echo 'checked="checked"'; } ?> /><label for="unenrolled"><?php echo _AT('unenrolled'); ?></label>
188 <input type="checkbox" name="to_alumni" value="1" id="alumni" <?php if ($_POST['to_alumni']=='1') { echo 'checked="checked"'; } ?> /><label for="alumni"><?php echo _AT('alumni'); ?></label>
191 $sql = "SELECT type_id, title FROM ".TABLE_PREFIX."groups_types WHERE course_id=$_SESSION[course_id] ORDER BY title";
192 $result = mysql_query($sql, $db);
194 <?php if ($row = mysql_fetch_assoc($result)): ?>
196 <?php echo _AT('or_groups'); ?>:<br />
197 <select name="groups[]" multiple="multiple" size="10" style="padding-right: 5px">
199 <optgroup label="<?php echo $row['title']; ?>">
201 $sql = "SELECT group_id, title FROM ".TABLE_PREFIX."groups WHERE type_id=$row[type_id] ORDER BY title";
202 $group_result = mysql_query($sql, $db);
204 <?php while ($group_row = mysql_fetch_assoc($group_result)): ?>
205 <option value="<?php echo $group_row['group_id']; ?>"><?php echo $group_row['title']; ?></option>
208 <?php } while ($row = mysql_fetch_assoc($result)); ?>
214 <span class="required" title="<?php echo _AT('required_field'); ?>">*</span><label for="subject"><?php echo _AT('subject'); ?></label><br />
215 <input type="text" name="subject" size="60" id="subject" value="<?php echo $_POST['subject']; ?>" />
219 <span class="required" title="<?php echo _AT('required_field'); ?>">*</span><label for="body"><?php echo _AT('body'); ?></label><br />
220 <textarea cols="55" rows="18" name="body" id="body"><?php echo $_POST['body']; ?></textarea>
223 <div class="row buttons">
224 <input type="submit" name="submit" value="<?php echo _AT('send'); ?>" accesskey="s" />
225 <input type="submit" name="cancel" value="<?php echo _AT('cancel'); ?>" />
231 <?php require(AT_INCLUDE_PATH.'footer.inc.php'); ?>