Adding addAnnouncementToAllUsersInSessions option see BT#7217

Conflicts:
	main/announcements/announcements.inc.php
1.9.x
Julio Montoya 12 years ago
parent a4ec74b1e5
commit 906bba1479
  1. 58
      main/announcements/announcements.inc.php
  2. 13
      main/announcements/announcements.php

@ -306,7 +306,8 @@ class AnnouncementManager
$sentTo,
$file = array(),
$file_comment = null,
$end_date = null
$end_date = null,
$sendToUsersInSession = false
) {
$_course = api_get_course_info();
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
@ -366,6 +367,12 @@ class AnnouncementManager
}
}
}
if ($sendToUsersInSession) {
self::addAnnouncementToAllUsersInSessions($last_id);
}
return $last_id;
}
}
@ -379,7 +386,7 @@ class AnnouncementManager
* @param string $file_comment
* @return bool|int
*/
public static function add_group_announcement($emailTitle, $newContent, $to, $to_users, $file = array(), $file_comment = '')
public static function add_group_announcement($emailTitle, $newContent, $to, $to_users, $file = array(), $file_comment = '', $sendToUsersInSession = false)
{
$_course = api_get_course_info();
@ -432,6 +439,11 @@ class AnnouncementManager
}
}
}
if ($sendToUsersInSession) {
self::addAnnouncementToAllUsersInSessions($last_id);
}
return $last_id;
}
@ -446,7 +458,7 @@ class AnnouncementManager
* @param mixed attachment
* @param string file comment
*/
public static function edit_announcement($id, $emailTitle, $newContent, $to, $file = array(), $file_comment = '')
public static function edit_announcement($id, $emailTitle, $newContent, $to, $file = array(), $file_comment = '', $sendToUsersInSession = false)
{
global $_course;
@ -478,6 +490,10 @@ class AnnouncementManager
$sql_delete = "DELETE FROM $tbl_item_property WHERE c_id = $course_id AND ref='$id' AND tool='announcement'";
Database::query($sql_delete);
if ($sendToUsersInSession) {
self::addAnnouncementToAllUsersInSessions($id);
}
// store in item_property (first the groups, then the users
if (!is_null($to)) {
@ -503,6 +519,42 @@ class AnnouncementManager
}
}
/**
* @param int $announcementId
*/
public static function addAnnouncementToAllUsersInSessions($announcementId)
{
$courseCode = api_get_course_id();
$_course = api_get_course_info();
$sessionList = SessionManager::get_session_by_course(api_get_course_id());
if (!empty($sessionList)) {
foreach ($sessionList as $sessionInfo) {
$sessionId = $sessionInfo['id'];
$userList = CourseManager::get_user_list_from_course_code($courseCode, $sessionId);
if (!empty($userList)) {
foreach ($userList as $user) {
api_item_property_update(
$_course,
TOOL_ANNOUNCEMENT,
$announcementId,
"AnnouncementUpdated",
api_get_user_id(),
0,
$user['user_id'],
0,
0,
$sessionId
);
}
}
}
}
}
/**
* @param int $insert_id
* @return bool

@ -354,13 +354,14 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
$error_message = get_lang('TitleIsRequired');
$content_to_modify = $newContent;
} else if ($submitAnnouncement) {
$sendToUsersInSession = isset($_POST['send_to_users_in_session']) ? true : false;
if (isset($id) && $id) {
// there is an Id => the announcement already exists => update mode
if ($ctok == $_POST['sec_token']) {
$file_comment = $_POST['file_comment'];
$file = $_FILES['user_upload'];
AnnouncementManager::edit_announcement($id, $emailTitle, $newContent, $_POST['selectedform'], $file, $file_comment);
AnnouncementManager::edit_announcement($id, $emailTitle, $newContent, $_POST['selectedform'], $file, $file_comment, $sendToUsersInSession);
/* MAIL FUNCTION */
if ($_POST['email_ann'] && empty($_POST['onlyThoseMails'])) {
@ -374,9 +375,9 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
$file = $_FILES['user_upload'];
$file_comment = $_POST['file_comment'];
if (!empty($group_id)) {
$insert_id = AnnouncementManager::add_group_announcement($safe_emailTitle, $safe_newContent, array('GROUP:'.$group_id), $_POST['selectedform'], $file, $file_comment);
$insert_id = AnnouncementManager::add_group_announcement($safe_emailTitle, $safe_newContent, array('GROUP:'.$group_id), $_POST['selectedform'], $file, $file_comment, $sendToUsersInSession);
} else {
$insert_id = AnnouncementManager::add_announcement($safe_emailTitle, $safe_newContent, $_POST['selectedform'], $file, $file_comment);
$insert_id = AnnouncementManager::add_announcement($safe_emailTitle, $safe_newContent, $_POST['selectedform'], $file, $file_comment, $sendToUsersInSession);
}
//store_resources($_SESSION['source_type'],$insert_id);
$_SESSION['select_groupusers']="hide";
@ -646,6 +647,10 @@ if ($display_form) {
echo ' </div>
</div>';
echo '<div class="control-group"><div class="controls">';
echo '<label class="checkbox" ><input name="send_to_users_in_session" type="checkbox" />'.get_lang('SendToUsersInSessions').'</label>';
echo '</div></div>';
if (!isset($announcement_to_modify) ) $announcement_to_modify ='';
($email_ann=='1')?$checked='checked':$checked='';
@ -711,7 +716,7 @@ if ($display_form) {
echo $oFCKeditor->CreateHtml();
echo '</div></div>';
//File attachment
//File attachment
echo ' <div class="control-group">
<div class="controls">
<a href="javascript://" onclick="return plus_attachment();"><span id="plus"><img style="vertical-align:middle;" src="../img/div_show.gif" alt="" />&nbsp;'.get_lang('AddAnAttachment').'</span></a>

Loading…
Cancel
Save