[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>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>
</ul>
<li>the platform system announcements can now be sent through email also</li>
</ul>
<br />
<h3>Debugging</h3>
<ul>

@ -1,5 +1,5 @@
<?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
@ -44,6 +44,7 @@ include ('../inc/global.inc.php');
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
include (api_get_path(LIBRARY_PATH).'system_announcements.lib.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)
$this_section=SECTION_PLATFORM_ADMIN;
@ -186,6 +187,7 @@ if ($action_todo)
$form->addElement('checkbox', 'visible_guest', null, get_lang('Guest'));
$form->addElement('hidden', 'action');
$form->addElement('hidden', 'id');
$form->addElement('checkbox', 'send_mail', get_lang('SendMail'));
$form->addElement('submit', 'submit', get_lang('Ok'));
if (api_get_setting('wcag_anysurfer_public_pages')=='true')
{
@ -218,17 +220,23 @@ if ($action_todo)
switch($values['action'])
{
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'));
else {
}
else
{
$show_announcement_list = false;
$form->display();
}
break;
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'));
else {
}
else
{
$show_announcement_list = false;
$form->display();
}

@ -277,7 +277,7 @@ class SystemAnnouncementManager
* @param string $date_start Start 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);
@ -314,6 +314,10 @@ class SystemAnnouncementManager
$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)
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__);
}
/**
@ -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_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);
@ -360,6 +364,11 @@ if (!checkdate($date_start[1], $date_start[2], $date_start[0]))
$id = intval($id);
$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."'";
if ($send_mail<>'0')
{
SystemAnnouncementManager::send_system_announcement_by_email($title, $content,$visible_teacher, $visible_student);
}
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."'";
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