@ -9,8 +9,12 @@
*/
class AnnouncementManager
{
/**
* Constructor
*/
public function __construct()
{
}
/**
@ -71,8 +75,8 @@ class AnnouncementManager
/**
* Gets all announcements from a course
* @param string course db
* @param int session id
* @param array $course_info
* @param int $session_ id
* @return array html with the content and count of announcements or false otherwise
*/
public static function get_all_annoucement_by_course($course_info, $session_id = 0)
@ -85,11 +89,12 @@ class AnnouncementManager
$sql = "SELECT DISTINCT announcement.id, announcement.title, announcement.content
FROM $tbl_announcement announcement, $tbl_item_property toolitemproperties
WHERE announcement.id = toolitemproperties.ref AND
toolitemproperties.tool='announcement' AND
announcement.session_id = '$session_id' AND
announcement.c_id = $course_id AND
toolitemproperties.c_id = $course_id
WHERE
announcement.id = toolitemproperties.ref AND
toolitemproperties.tool='announcement' AND
announcement.session_id = '$session_id' AND
announcement.c_id = $course_id AND
toolitemproperties.c_id = $course_id
ORDER BY display_order DESC";
$rs = Database::query($sql);
$num_rows = Database::num_rows($rs);
@ -98,8 +103,10 @@ class AnnouncementManager
while ($row = Database::fetch_array($rs)) {
$list[] = $row;
}
return $list;
}
return false;
}
@ -113,11 +120,28 @@ class AnnouncementManager
public static function change_visibility_announcement($_course, $id)
{
$session_id = api_get_session_id();
$item_visibility = api_get_item_visibility($_course, TOOL_ANNOUNCEMENT, $id, $session_id);
$item_visibility = api_get_item_visibility(
$_course,
TOOL_ANNOUNCEMENT,
$id,
$session_id
);
if ($item_visibility == '1') {
api_item_property_update($_course, TOOL_ANNOUNCEMENT, $id, 'invisible', api_get_user_id());
api_item_property_update(
$_course,
TOOL_ANNOUNCEMENT,
$id,
'invisible',
api_get_user_id()
);
} else {
api_item_property_update($_course, TOOL_ANNOUNCEMENT, $id, 'visible', api_get_user_id());
api_item_property_update(
$_course,
TOOL_ANNOUNCEMENT,
$id,
'visible',
api_get_user_id()
);
}
return true;
@ -142,7 +166,13 @@ class AnnouncementManager
$announcements = self::get_all_annoucement_by_course($_course, api_get_session_id());
if (!empty($announcements)) {
foreach ($announcements as $annon) {
api_item_property_update($_course, TOOL_ANNOUNCEMENT, $annon['id'], 'delete', api_get_user_id());
api_item_property_update(
$_course,
TOOL_ANNOUNCEMENT,
$annon['id'],
'delete',
api_get_user_id()
);
}
}
}
@ -295,14 +325,17 @@ class AnnouncementManager
{
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
$course_id = api_get_course_int_id();
$sql_max = "SELECT MAX(display_order) FROM $tbl_announcement WHERE c_id = $course_id ";
$res_max = Database::query($sql_max);
$sql = "SELECT MAX(display_order)
FROM $tbl_announcement
WHERE c_id = $course_id ";
$res_max = Database::query($sql);
$order = 0;
if (Database::num_rows($res_max)) {
$row_max = Database::fetch_array($res_max);
$order = intval($row_max[0])+1;
$order = intval($row_max[0])+1;
}
return $order;
}
@ -331,14 +364,8 @@ class AnnouncementManager
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
// filter data
$emailTitle = Database::escape_string($emailTitle);
$newContent = Database::escape_string($newContent);
if (empty($end_date)) {
$end_date = api_get_utc_datetime();
} else {
$end_date = Database::escape_string($end_date);
}
$order = self::get_last_announcement_order();
@ -447,16 +474,12 @@ class AnnouncementManager
// Database definitions
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
$emailTitle = Database::escape_string($emailTitle);
$newContent = Database::escape_string($newContent);
$order = self::get_last_announcement_order();
$now = api_get_utc_datetime();
$course_id = api_get_course_int_id();
// store in the table announcement
$params = [
'c_id' => $course_id,
'content' => $newContent,
@ -549,16 +572,18 @@ class AnnouncementManager
$tbl_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY);
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
$emailTitle = Database::escape_string($emailTitle);
$newContent = Database::escape_string($newContent);
$id = intval($id);
// store the modifications in the table announcement
$sql = "UPDATE $tbl_announcement SET
content = '$newContent',
title = '$emailTitle'
WHERE c_id = $course_id AND id='$id'";
Database::query($sql);
$params = [
'title' => $emailTitle,
'content' => $newContent
];
Database::update(
$tbl_announcement,
$params,
['c_id = ? AND id = ?' => [$course_id, $id]]
);
// save attachment file
$row_attach = self::get_attachment($id);
@ -684,7 +709,8 @@ class AnnouncementManager
$insert_id = intval($insert_id);
$course_id = api_get_course_int_id();
// store the modifications in the table tbl_annoucement
$sql = "UPDATE $tbl_announcement SET email_sent='1' WHERE c_id = $course_id AND id = $insert_id";
$sql = "UPDATE $tbl_announcement SET email_sent='1'
WHERE c_id = $course_id AND id = $insert_id";
Database::query($sql);
}
@ -733,10 +759,13 @@ class AnnouncementManager
}
$result['content'] = $content;
$result['count'] = $i;
return $result;
}
return false;
}
return false;
}
@ -1008,9 +1037,17 @@ class AnnouncementManager
{
$session_id = api_get_session_id();
if ($session_id != 0) {
$new_group_list = CourseManager::get_group_list_of_course(api_get_course_id(), $session_id, 1);
$new_group_list = CourseManager::get_group_list_of_course(
api_get_course_id(),
$session_id,
1
);
} else {
$new_group_list = CourseManager::get_group_list_of_course(api_get_course_id(), 0, 1);
$new_group_list = CourseManager::get_group_list_of_course(
api_get_course_id(),
0,
1
);
}
return $new_group_list;
}
@ -1225,7 +1262,8 @@ class AnnouncementManager
$course_id = api_get_course_int_id();
if (is_array($file) & & $file['error'] == 0) {
$courseDir = $_course['path'] . '/upload/announcements'; // TODO: This path is obsolete. The new document repository scheme should be kept in mind here.
// TODO: This path is obsolete. The new document repository scheme should be kept in mind here.
$courseDir = $_course['path'] . '/upload/announcements';
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$updir = $sys_course_path . $courseDir;
@ -1279,7 +1317,8 @@ class AnnouncementManager
$course_id = api_get_course_int_id();
if (is_array($file) & & $file['error'] == 0) {
$courseDir = $_course['path'] . '/upload/announcements'; // TODO: This path is obsolete. The new document repository scheme should be kept in mind here.
// TODO: This path is obsolete. The new document repository scheme should be kept in mind here.
$courseDir = $_course['path'] . '/upload/announcements';
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$updir = $sys_course_path . $courseDir;
@ -1294,7 +1333,7 @@ class AnnouncementManager
} else {
$new_file_name = uniqid('');
$new_path = $updir . '/' . $new_file_name;
$result = @move_uploaded_file($file['tmp_name'], $new_path);
@move_uploaded_file($file['tmp_name'], $new_path);
$safe_file_comment = Database::escape_string($file_comment);
$safe_file_name = Database::escape_string($file_name);
$safe_new_file_name = Database::escape_string($new_file_name);
@ -1323,7 +1362,9 @@ class AnnouncementManager
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT);
$id = intval($id);
$course_id = api_get_course_int_id();
$sql = "DELETE FROM $tbl_announcement_attachment WHERE c_id = $course_id AND id = $id";
$sql = "DELETE FROM $tbl_announcement_attachment
WHERE c_id = $course_id AND id = $id";
Database::query($sql);
}
@ -1574,7 +1615,7 @@ class AnnouncementManager
$ths .= Display::tag('th', get_lang('By') );
$ths .= Display::tag('th', get_lang('LastUpdateDate') );
if (api_is_allowed_to_edit(false,true) OR (api_is_course_coach() & &
api_is_element_in_the_session(TOOL_ANNOUNCEMENT,$myrow['id']))
api_is_element_in_the_session(TOOL_ANNOUNCEMENT, $myrow['id']))
OR (api_get_course_setting('allow_user_edit_announcement') & & !api_is_anonymous())) {
$ths .= Display::tag('th', get_lang('Modify'));
}
@ -1811,7 +1852,7 @@ class AnnouncementManager
$condition_session
GROUP BY ip.ref
ORDER BY display_order DESC
LIMIT 0,$maximum";
LIMIT 0, $maximum";
}
}
}