[svn r14787] system announcement through email

skala
Patrick Cool 18 years ago
parent 9e2c632356
commit 545182c274
  1. 3
      documentation/changelog.html
  2. 18
      main/admin/system_announcements.php
  3. 42
      main/inc/lib/system_announcements.lib.php

@ -36,7 +36,8 @@
<li>in the agenda you can display the X upcoming events (can be configured by the platform admin)</li> <li>in the agenda you can display the X upcoming events (can be configured by the platform admin)</li>
<li>The course agenda now has a month view like the my agenda</li> <li>The course agenda now has a month view like the my agenda</li>
<li>In the user list of the platform administration you can now quickly see for what courses the user is subscribed by hovering over the courses icon</li> <li>In the user list of the platform administration you can now quickly see for what courses the user is subscribed by hovering over the courses icon</li>
</ul> <li>the platform system announcements can now be sent through email also</li>
</ul>
<br /> <br />
<h3>Debugging</h3> <h3>Debugging</h3>
<ul> <ul>

@ -1,5 +1,5 @@
<?php <?php
// $Id: system_announcements.php 13292 2007-09-27 01:59:07Z yannoo $ // $Id: system_announcements.php 14787 2008-04-08 14:16:25Z pcool $
/* /*
============================================================================== ==============================================================================
Dokeos - elearning and course management software Dokeos - elearning and course management software
@ -44,6 +44,7 @@ include ('../inc/global.inc.php');
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'; require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
include (api_get_path(LIBRARY_PATH).'system_announcements.lib.php'); include (api_get_path(LIBRARY_PATH).'system_announcements.lib.php');
include_once(api_get_path(LIBRARY_PATH).'WCAG/WCAG_rendering.php'); include_once(api_get_path(LIBRARY_PATH).'WCAG/WCAG_rendering.php');
require_once (api_get_path(LIBRARY_PATH).'mail.lib.inc.php');
// setting the section (for the tabs) // setting the section (for the tabs)
$this_section=SECTION_PLATFORM_ADMIN; $this_section=SECTION_PLATFORM_ADMIN;
@ -186,6 +187,7 @@ if ($action_todo)
$form->addElement('checkbox', 'visible_guest', null, get_lang('Guest')); $form->addElement('checkbox', 'visible_guest', null, get_lang('Guest'));
$form->addElement('hidden', 'action'); $form->addElement('hidden', 'action');
$form->addElement('hidden', 'id'); $form->addElement('hidden', 'id');
$form->addElement('checkbox', 'send_mail', get_lang('SendMail'));
$form->addElement('submit', 'submit', get_lang('Ok')); $form->addElement('submit', 'submit', get_lang('Ok'));
if (api_get_setting('wcag_anysurfer_public_pages')=='true') if (api_get_setting('wcag_anysurfer_public_pages')=='true')
{ {
@ -218,17 +220,23 @@ if ($action_todo)
switch($values['action']) switch($values['action'])
{ {
case 'add': case 'add':
if(SystemAnnouncementManager::add_announcement($values['title'],$values['content'],$values['start'],$values['end'],$values['visible_teacher'],$values['visible_student'],$values['visible_guest'], $values['lang'])) if(SystemAnnouncementManager::add_announcement($values['title'],$values['content'],$values['start'],$values['end'],$values['visible_teacher'],$values['visible_student'],$values['visible_guest'], $values['lang'],$values['send_mail']))
{
Display :: display_normal_message(get_lang('AnnouncementAdded')); Display :: display_normal_message(get_lang('AnnouncementAdded'));
else { }
else
{
$show_announcement_list = false; $show_announcement_list = false;
$form->display(); $form->display();
} }
break; break;
case 'edit': case 'edit':
if (SystemAnnouncementManager::update_announcement($values['id'],$values['title'],$values['content'],$values['start'],$values['end'],$values['visible_teacher'],$values['visible_student'],$values['visible_guest'], $values['lang'])) if (SystemAnnouncementManager::update_announcement($values['id'],$values['title'],$values['content'],$values['start'],$values['end'],$values['visible_teacher'],$values['visible_student'],$values['visible_guest'], $values['lang'],$values['send_mail']))
{
Display :: display_normal_message(get_lang('AnnouncementUpdated')); Display :: display_normal_message(get_lang('AnnouncementUpdated'));
else { }
else
{
$show_announcement_list = false; $show_announcement_list = false;
$form->display(); $form->display();
} }

@ -277,7 +277,7 @@ class SystemAnnouncementManager
* @param string $date_start Start date (YYYY-MM-DD HH:II: SS) * @param string $date_start Start date (YYYY-MM-DD HH:II: SS)
* @param string $date_end End date (YYYY-MM-DD HH:II: SS) * @param string $date_end End date (YYYY-MM-DD HH:II: SS)
*/ */
function add_announcement($title, $content, $date_start, $date_end, $visible_teacher = 0, $visible_student = 0, $visible_guest = 0, $lang = null) function add_announcement($title, $content, $date_start, $date_end, $visible_teacher = 0, $visible_student = 0, $visible_guest = 0, $lang = null, $send_mail=0)
{ {
$a_dateS = explode(' ',$date_start); $a_dateS = explode(' ',$date_start);
@ -314,6 +314,10 @@ class SystemAnnouncementManager
$lang = is_null($lang) ? 'NULL' : "'".mysql_real_escape_string($lang)."'"; $lang = is_null($lang) ? 'NULL' : "'".mysql_real_escape_string($lang)."'";
$sql = "INSERT INTO ".$db_table." (title,content,date_start,date_end,visible_teacher,visible_student,visible_guest, lang) $sql = "INSERT INTO ".$db_table." (title,content,date_start,date_end,visible_teacher,visible_student,visible_guest, lang)
VALUES ('".$title."','".$content."','".$start."','".$end."','".$visible_teacher."','".$visible_student."','".$visible_guest."',".$lang.")"; VALUES ('".$title."','".$content."','".$start."','".$end."','".$visible_teacher."','".$visible_student."','".$visible_guest."',".$lang.")";
if ($send_mail<>'0')
{
SystemAnnouncementManager::send_system_announcement_by_email($title, $content,$visible_teacher, $visible_student);
}
return api_sql_query($sql,__FILE__,__LINE__); return api_sql_query($sql,__FILE__,__LINE__);
} }
/** /**
@ -324,7 +328,7 @@ class SystemAnnouncementManager
* @param array $date_start: start date of announcement (0 => day ; 1 => month ; 2 => year ; 3 => hour ; 4 => minute) * @param array $date_start: start date of announcement (0 => day ; 1 => month ; 2 => year ; 3 => hour ; 4 => minute)
* @param array $date_end : end date of announcement (0 => day ; 1 => month ; 2 => year ; 3 => hour ; 4 => minute) * @param array $date_end : end date of announcement (0 => day ; 1 => month ; 2 => year ; 3 => hour ; 4 => minute)
*/ */
function update_announcement($id, $title, $content, $date_start, $date_end, $visible_teacher = 0, $visible_student = 0, $visible_guest = 0,$lang=null) function update_announcement($id, $title, $content, $date_start, $date_end, $visible_teacher = 0, $visible_student = 0, $visible_guest = 0,$lang=null, $send_mail=0)
{ {
$a_dateS = explode(' ',$date_start); $a_dateS = explode(' ',$date_start);
@ -360,6 +364,11 @@ if (!checkdate($date_start[1], $date_start[2], $date_start[0]))
$id = intval($id); $id = intval($id);
$sql = "UPDATE ".$db_table." SET lang=$lang,title='".$title."',content='".$content."',date_start='".$start."',date_end='".$end."', "; $sql = "UPDATE ".$db_table." SET lang=$lang,title='".$title."',content='".$content."',date_start='".$start."',date_end='".$end."', ";
$sql .= " visible_teacher = '".$visible_teacher."', visible_student = '".$visible_student."', visible_guest = '".$visible_guest."' WHERE id='".$id."'"; $sql .= " visible_teacher = '".$visible_teacher."', visible_student = '".$visible_student."', visible_guest = '".$visible_guest."' WHERE id='".$id."'";
if ($send_mail<>'0')
{
SystemAnnouncementManager::send_system_announcement_by_email($title, $content,$visible_teacher, $visible_student);
}
return api_sql_query($sql,__FILE__,__LINE__); return api_sql_query($sql,__FILE__,__LINE__);
} }
/** /**
@ -400,5 +409,34 @@ if (!checkdate($date_start[1], $date_start[2], $date_start[0]))
$sql = "UPDATE ".$db_table." SET ".$field." = '".$visible."' WHERE id='".$announcement_id."'"; $sql = "UPDATE ".$db_table." SET ".$field." = '".$visible."' WHERE id='".$announcement_id."'";
return api_sql_query($sql,__FILE__,__LINE__); return api_sql_query($sql,__FILE__,__LINE__);
} }
function send_system_announcement_by_email($title,$content,$teacher, $student)
{
global $_user;
global $_setting;
$user_table = Database :: get_main_table(TABLE_MAIN_USER);
if ($teacher<>0 AND $student == '0')
{
$sql = "SELECT * FROM $user_table WHERE email<>'' AND status = '1'";
}
if ($teacher == '0' AND $student <> '0')
{
$sql = "SELECT * FROM $user_table WHERE email<>'' AND status = '5'";
}
if ($teacher<>'0' AND $student <> '0')
{
$sql = "SELECT * FROM $user_table WHERE email<>''";
}
if ($teacher == '0' AND $student == '0')
{
return true;
}
$result = api_sql_query($sql,__FILE__,__LINE__);
while($row = Database::fetch_array($result,'ASSOC'))
{
api_mail_html($row['firstname'].' '.$row['lastname'], $row['email'], $title, $content, $_user['firstName'].' '.$_user['lastName'], api_get_setting('emailAdministrator'), api_get_setting('emailAdministrator'));
}
}
} }
?> ?>
Loading…
Cancel
Save