|
|
|
|
@ -90,14 +90,18 @@ class AnnouncementManager |
|
|
|
|
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT); |
|
|
|
|
$tbl_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY); |
|
|
|
|
|
|
|
|
|
$sql = "SELECT DISTINCT announcement.id, announcement.title, announcement.content |
|
|
|
|
FROM $tbl_announcement announcement, $tbl_item_property toolitemproperties |
|
|
|
|
$sql = "SELECT DISTINCT |
|
|
|
|
announcement.id, |
|
|
|
|
announcement.title, |
|
|
|
|
announcement.content |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property i |
|
|
|
|
ON (announcement.id = i.ref AND announcement.c_id = i.c_id) |
|
|
|
|
WHERE |
|
|
|
|
announcement.id = toolitemproperties.ref AND |
|
|
|
|
toolitemproperties.tool='announcement' AND |
|
|
|
|
i.tool='announcement' AND |
|
|
|
|
announcement.session_id = '$session_id' AND |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
toolitemproperties.c_id = $course_id |
|
|
|
|
i.c_id = $course_id |
|
|
|
|
ORDER BY display_order DESC"; |
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
$num_rows = Database::num_rows($rs); |
|
|
|
|
@ -198,15 +202,15 @@ class AnnouncementManager |
|
|
|
|
if (api_is_allowed_to_edit(false, true) || |
|
|
|
|
(api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous()) |
|
|
|
|
) { |
|
|
|
|
$dql = "SELECT CA, IP |
|
|
|
|
FROM ChamiloCourseBundle:CAnnouncement CA, ChamiloCourseBundle:CItemProperty IP |
|
|
|
|
WHERE |
|
|
|
|
CA.id = IP.ref AND |
|
|
|
|
CA.id = :announcement AND |
|
|
|
|
IP.tool = 'announcement' AND |
|
|
|
|
CA.cId = IP.course AND |
|
|
|
|
CA.cId = :course |
|
|
|
|
ORDER BY CA.displayOrder DESC"; |
|
|
|
|
$dql = "SELECT a, ip |
|
|
|
|
FROM ChamiloCourseBundle:CAnnouncement a |
|
|
|
|
JOIN ChamiloCourseBundle:CItemProperty ip |
|
|
|
|
WITH a.id = ip.ref AND a.cId = ip.course |
|
|
|
|
WHERE |
|
|
|
|
a.id = :announcement AND |
|
|
|
|
ip.tool = 'announcement' AND |
|
|
|
|
a.cId = :course |
|
|
|
|
ORDER BY a.displayOrder DESC"; |
|
|
|
|
} else { |
|
|
|
|
$group_list = GroupManager::get_group_ids($courseId, api_get_user_id()); |
|
|
|
|
|
|
|
|
|
@ -215,41 +219,42 @@ class AnnouncementManager |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (api_get_user_id() != 0) { |
|
|
|
|
$dql = "SELECT CA, IP |
|
|
|
|
FROM ChamiloCourseBundle:CAnnouncement CA, ChamiloCourseBundle:CItemProperty IP |
|
|
|
|
WHERE |
|
|
|
|
CA.id = IP.ref AND |
|
|
|
|
CA.id = :announcement AND |
|
|
|
|
IP.tool='announcement' AND |
|
|
|
|
( |
|
|
|
|
IP.toUser = $userId OR |
|
|
|
|
IP.group IN ('0', '" . implode("', '", $group_list) . "') OR |
|
|
|
|
IP.group IS NULL |
|
|
|
|
) AND |
|
|
|
|
IP.visibility = '1' AND |
|
|
|
|
CA.cId = IP.course AND |
|
|
|
|
IP.course = :course |
|
|
|
|
ORDER BY CA.displayOrder DESC"; |
|
|
|
|
$dql = "SELECT a, ip |
|
|
|
|
FROM ChamiloCourseBundle:CAnnouncement a |
|
|
|
|
JOIN ChamiloCourseBundle:CItemProperty ip |
|
|
|
|
WITH a.id = ip.ref AND a.cId = ip.course |
|
|
|
|
WHERE |
|
|
|
|
a.id = :announcement AND |
|
|
|
|
ip.tool='announcement' AND |
|
|
|
|
( |
|
|
|
|
ip.toUser = $userId OR |
|
|
|
|
ip.group IN ('0', '" . implode("', '", $group_list) . "') OR |
|
|
|
|
ip.group IS NULL |
|
|
|
|
) AND |
|
|
|
|
ip.visibility = '1' AND |
|
|
|
|
ip.course = :course |
|
|
|
|
ORDER BY a.displayOrder DESC"; |
|
|
|
|
} else { |
|
|
|
|
$dql = "SELECT CA, IP |
|
|
|
|
FROM ChamiloCourseBundle:CAnnouncement CA, ChamiloCourseBundle:CItemProperty IP |
|
|
|
|
WHERE |
|
|
|
|
CA.id = IP.ref AND |
|
|
|
|
CA.id = :announcement AND |
|
|
|
|
IP.tool = 'announcement' AND |
|
|
|
|
(IP.group = '0' OR IP.group IS NULL) AND |
|
|
|
|
IP.visibility = '1' AND |
|
|
|
|
CA.cId = IP.course AND |
|
|
|
|
IP.course = :course"; |
|
|
|
|
$dql = "SELECT a, ip |
|
|
|
|
FROM ChamiloCourseBundle:CAnnouncement a |
|
|
|
|
JOIN ChamiloCourseBundle:CItemProperty ip |
|
|
|
|
WITH a.id = ip.ref AND a.cId = ip.course |
|
|
|
|
WHERE |
|
|
|
|
a.id = :announcement AND |
|
|
|
|
ip.tool = 'announcement' AND |
|
|
|
|
(ip.group = '0' OR ip.group IS NULL) AND |
|
|
|
|
ip.visibility = '1' AND |
|
|
|
|
ip.course = :course"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$result = Database::getManager() |
|
|
|
|
->createQuery($dql) |
|
|
|
|
->execute([ |
|
|
|
|
$qb = Database::getManager()->createQuery($dql); |
|
|
|
|
$result = $qb->execute( |
|
|
|
|
[ |
|
|
|
|
'announcement' => $announcementId, |
|
|
|
|
'course' => $courseId |
|
|
|
|
]); |
|
|
|
|
'course' => $courseId, |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
return [ |
|
|
|
|
'announcement' => $result[0], |
|
|
|
|
@ -573,7 +578,6 @@ class AnnouncementManager |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Store in item_property (first the groups, then the users |
|
|
|
|
|
|
|
|
|
if (!isset($to_users)) { |
|
|
|
|
// when no user is selected we send it to everyone |
|
|
|
|
$send_to = CourseManager::separateUsersGroups($to); |
|
|
|
|
@ -736,7 +740,6 @@ class AnnouncementManager |
|
|
|
|
{ |
|
|
|
|
$courseCode = api_get_course_id(); |
|
|
|
|
$_course = api_get_course_info(); |
|
|
|
|
|
|
|
|
|
$sessionList = SessionManager::get_session_by_course(api_get_course_int_id()); |
|
|
|
|
|
|
|
|
|
if (!empty($sessionList)) { |
|
|
|
|
@ -803,18 +806,22 @@ class AnnouncementManager |
|
|
|
|
$tbl_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY); |
|
|
|
|
if (!empty($user_id) && is_numeric($user_id)) { |
|
|
|
|
$user_id = (int) $user_id; |
|
|
|
|
$sql = "SELECT DISTINCT announcement.title, announcement.content, display_order |
|
|
|
|
FROM $tbl_announcement announcement, $tbl_item_property toolitemproperties |
|
|
|
|
$sql = "SELECT DISTINCT |
|
|
|
|
announcement.title, |
|
|
|
|
announcement.content, |
|
|
|
|
display_order |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND announcement.c_id = ip.c_id) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
toolitemproperties.c_id = $course_id AND |
|
|
|
|
announcement.id = toolitemproperties.ref AND |
|
|
|
|
toolitemproperties.tool='announcement' AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool='announcement' AND |
|
|
|
|
( |
|
|
|
|
toolitemproperties.insert_user_id='$user_id' AND |
|
|
|
|
(toolitemproperties.to_group_id='0' OR toolitemproperties.to_group_id IS NULL) |
|
|
|
|
ip.insert_user_id='$user_id' AND |
|
|
|
|
(ip.to_group_id='0' OR ip.to_group_id IS NULL) |
|
|
|
|
) |
|
|
|
|
AND toolitemproperties.visibility='1' |
|
|
|
|
AND ip.visibility='1' |
|
|
|
|
AND announcement.session_id = 0 |
|
|
|
|
ORDER BY display_order DESC"; |
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
@ -855,16 +862,20 @@ class AnnouncementManager |
|
|
|
|
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT); |
|
|
|
|
$tbl_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY); |
|
|
|
|
|
|
|
|
|
$sql = "SELECT DISTINCT announcement.id, announcement.title, announcement.content |
|
|
|
|
$sql = "SELECT DISTINCT |
|
|
|
|
announcement.id, |
|
|
|
|
announcement.title, |
|
|
|
|
announcement.content |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property toolitemproperties |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON |
|
|
|
|
announcement.id = toolitemproperties.ref AND |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
toolitemproperties.c_id = $course_id |
|
|
|
|
announcement.id = ip.ref AND |
|
|
|
|
announcement.c_id = ip.c_id |
|
|
|
|
WHERE |
|
|
|
|
toolitemproperties.tool='announcement' AND |
|
|
|
|
announcement.id = $annoucement_id"; |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.tool='announcement' AND |
|
|
|
|
announcement.id = $annoucement_id |
|
|
|
|
"; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
if (Database::num_rows($result)) { |
|
|
|
|
return Database::fetch_array($result); |
|
|
|
|
@ -1090,7 +1101,8 @@ class AnnouncementManager |
|
|
|
|
$announcementId = intval($announcementId); |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
$row = array(); |
|
|
|
|
$sql = 'SELECT id, path, filename, comment FROM ' . $tbl_announcement_attachment . ' |
|
|
|
|
$sql = 'SELECT id, path, filename, comment |
|
|
|
|
FROM ' . $tbl_announcement_attachment . ' |
|
|
|
|
WHERE c_id = ' . $course_id . ' AND announcement_id = ' . $announcementId; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
if (Database::num_rows($result) != 0) { |
|
|
|
|
@ -1193,7 +1205,11 @@ class AnnouncementManager |
|
|
|
|
$safe_file_name = Database::escape_string($file_name); |
|
|
|
|
$safe_new_file_name = Database::escape_string($new_file_name); |
|
|
|
|
$id_attach = intval($id_attach); |
|
|
|
|
$sql = "UPDATE $tbl_announcement_attachment SET filename = '$safe_file_name', comment = '$safe_file_comment', path = '$safe_new_file_name', size ='" . intval($file['size']) . "' |
|
|
|
|
$sql = "UPDATE $tbl_announcement_attachment SET |
|
|
|
|
filename = '$safe_file_name', |
|
|
|
|
comment = '$safe_file_comment', |
|
|
|
|
path = '$safe_new_file_name', |
|
|
|
|
size ='" . intval($file['size']) . "' |
|
|
|
|
WHERE c_id = $course_id AND id = '$id_attach'"; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
if ($result === false) { |
|
|
|
|
@ -1214,10 +1230,13 @@ class AnnouncementManager |
|
|
|
|
*/ |
|
|
|
|
public static function delete_announcement_attachment_file($id) |
|
|
|
|
{ |
|
|
|
|
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT); |
|
|
|
|
$table = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT); |
|
|
|
|
$id = intval($id); |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
$sql = "DELETE FROM $tbl_announcement_attachment |
|
|
|
|
if (empty($course_id) || empty($id)) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
$sql = "DELETE FROM $table |
|
|
|
|
WHERE c_id = $course_id AND id = $id"; |
|
|
|
|
|
|
|
|
|
Database::query($sql); |
|
|
|
|
@ -1305,11 +1324,12 @@ class AnnouncementManager |
|
|
|
|
if (0) { |
|
|
|
|
if (is_array($group_memberships) && count($group_memberships) > 0) { |
|
|
|
|
$sql = "SELECT $select |
|
|
|
|
FROM $tbl_announcement announcement, $tbl_item_property ip |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND ip.c_id = announcement.c_id) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
announcement.id = ip.ref AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool = 'announcement' AND |
|
|
|
|
( |
|
|
|
|
ip.to_user_id = $user_id OR |
|
|
|
|
@ -1322,11 +1342,12 @@ class AnnouncementManager |
|
|
|
|
ORDER BY display_order DESC"; |
|
|
|
|
} else { |
|
|
|
|
$sql = "SELECT $select |
|
|
|
|
FROM $tbl_announcement announcement, $tbl_item_property ip |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND ip.c_id = announcement.c_id) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
announcement.id = ip.ref AND |
|
|
|
|
ip.tool ='announcement' AND |
|
|
|
|
(ip.to_user_id = $user_id OR ip.to_group_id='0' OR ip.to_group_id IS NULL) AND |
|
|
|
|
ip.visibility IN ('1', '0') |
|
|
|
|
@ -1338,9 +1359,11 @@ class AnnouncementManager |
|
|
|
|
// A.2. you are a course admin with a GROUP filter |
|
|
|
|
// => see only the messages of this specific group |
|
|
|
|
$sql = "SELECT $select |
|
|
|
|
FROM $tbl_announcement announcement INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND ip.tool='announcement') |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND announcement.c_id = ip.c_id) |
|
|
|
|
WHERE |
|
|
|
|
ip.tool='announcement' AND |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.visibility<>'2' AND |
|
|
|
|
@ -1355,28 +1378,31 @@ class AnnouncementManager |
|
|
|
|
// => see all the messages of all the users and groups without editing possibilities |
|
|
|
|
if (isset($isStudentView) && $isStudentView == "true") { |
|
|
|
|
$sql = "SELECT $select |
|
|
|
|
FROM $tbl_announcement announcement INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND ip.tool='announcement') |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool='announcement' AND |
|
|
|
|
ip.visibility='1' |
|
|
|
|
$condition_session |
|
|
|
|
$searchCondition |
|
|
|
|
ORDER BY display_order DESC"; |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND announcement.c_id = ip.c_id) |
|
|
|
|
WHERE |
|
|
|
|
ip.tool='announcement' AND |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.visibility='1' |
|
|
|
|
$condition_session |
|
|
|
|
$searchCondition |
|
|
|
|
ORDER BY display_order DESC"; |
|
|
|
|
|
|
|
|
|
//GROUP BY ip.ref |
|
|
|
|
} else { |
|
|
|
|
// A.3.a you are a course admin without user or group filter and WTIHOUT studentview (= the normal course admin view) |
|
|
|
|
// => see all the messages of all the users and groups with editing possibilities |
|
|
|
|
$sql = "SELECT $select |
|
|
|
|
FROM $tbl_announcement announcement INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND ip.tool='announcement') |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND announcement.c_id = ip.c_id) |
|
|
|
|
WHERE |
|
|
|
|
ip.tool='announcement' AND |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
(ip.visibility='0' or ip.visibility='1') |
|
|
|
|
(ip.visibility='0' OR ip.visibility='1') |
|
|
|
|
$condition_session |
|
|
|
|
$searchCondition |
|
|
|
|
ORDER BY display_order DESC"; |
|
|
|
|
@ -1413,13 +1439,13 @@ class AnnouncementManager |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$sql = "SELECT $select |
|
|
|
|
FROM $tbl_announcement announcement, |
|
|
|
|
FROM $tbl_announcement announcement INNER JOIN |
|
|
|
|
$tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND announcement.c_id = ip.c_id) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
announcement.id = ip.ref |
|
|
|
|
AND ip.tool='announcement' |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool='announcement' |
|
|
|
|
$cond_user_id |
|
|
|
|
$condition_session |
|
|
|
|
$searchCondition |
|
|
|
|
@ -1437,11 +1463,12 @@ class AnnouncementManager |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$sql = "SELECT $select |
|
|
|
|
FROM $tbl_announcement announcement, $tbl_item_property ip |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND announcement.c_id = ip.c_id) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
announcement.id = ip.ref AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool='announcement' |
|
|
|
|
$cond_user_id |
|
|
|
|
$condition_session |
|
|
|
|
@ -1459,18 +1486,18 @@ class AnnouncementManager |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$sql = "SELECT $select |
|
|
|
|
FROM $tbl_announcement announcement, $tbl_item_property ip |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
announcement.id = ip.ref AND |
|
|
|
|
ip.tool='announcement' |
|
|
|
|
$cond_user_id |
|
|
|
|
$condition_session |
|
|
|
|
$searchCondition |
|
|
|
|
AND |
|
|
|
|
ip.visibility='1' AND |
|
|
|
|
announcement.session_id IN ( 0,".api_get_session_id().")"; |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.id = ip.ref AND announcement.c_id = ip.c_id) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool='announcement' |
|
|
|
|
$cond_user_id |
|
|
|
|
$condition_session |
|
|
|
|
$searchCondition AND |
|
|
|
|
ip.visibility='1' AND |
|
|
|
|
announcement.session_id IN ( 0,".api_get_session_id().")"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -1597,7 +1624,12 @@ class AnnouncementManager |
|
|
|
|
$_course = api_get_course_info(); |
|
|
|
|
$course_id = $_course['real_id']; |
|
|
|
|
$userId = api_get_user_id(); |
|
|
|
|
$condition_session = api_get_session_condition($session_id, true, true, 'announcement.session_id'); |
|
|
|
|
$condition_session = api_get_session_condition( |
|
|
|
|
$session_id, |
|
|
|
|
true, |
|
|
|
|
true, |
|
|
|
|
'announcement.session_id' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if (api_is_allowed_to_edit(false,true)) { |
|
|
|
|
// check teacher status |
|
|
|
|
@ -1608,23 +1640,25 @@ class AnnouncementManager |
|
|
|
|
} else { |
|
|
|
|
$group_condition = " AND (ip.to_group_id='".api_get_group_id()."' OR ip.to_group_id = 0 OR ip.to_group_id IS NULL)"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$sql = "SELECT |
|
|
|
|
announcement.*, |
|
|
|
|
ip.visibility, |
|
|
|
|
ip.to_group_id, |
|
|
|
|
ip.insert_user_id |
|
|
|
|
FROM $tbl_announcement announcement INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.c_id = ip.c_id AND announcement.id = ip.ref) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool = 'announcement' AND |
|
|
|
|
ip.visibility <> '2' |
|
|
|
|
$group_condition |
|
|
|
|
$condition_session |
|
|
|
|
GROUP BY ip.ref |
|
|
|
|
ORDER BY display_order DESC |
|
|
|
|
LIMIT 0, $maximum"; |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.c_id = ip.c_id AND announcement.id = ip.ref) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool = 'announcement' AND |
|
|
|
|
ip.visibility <> '2' |
|
|
|
|
$group_condition |
|
|
|
|
$condition_session |
|
|
|
|
GROUP BY ip.ref |
|
|
|
|
ORDER BY display_order DESC |
|
|
|
|
LIMIT 0, $maximum"; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
// students only get to see the visible announcements |
|
|
|
|
@ -1632,7 +1666,6 @@ class AnnouncementManager |
|
|
|
|
$group_memberships = GroupManager::get_group_ids($_course['real_id'], $userId); |
|
|
|
|
|
|
|
|
|
if ((api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())) { |
|
|
|
|
|
|
|
|
|
if (api_get_group_id() == 0) { |
|
|
|
|
$cond_user_id = " AND ( |
|
|
|
|
ip.lastedit_user_id = '".$userId."' OR ( |
|
|
|
|
@ -1695,19 +1728,19 @@ class AnnouncementManager |
|
|
|
|
$cond_user_id = " AND ( ip.to_user_id='".$userId."' OR ip.to_group_id='0' OR ip.to_group_id IS NULL) "; |
|
|
|
|
} |
|
|
|
|
$sql = "SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.c_id = ip.c_id AND announcement.id = ip.ref) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool='announcement' AND |
|
|
|
|
ip.visibility='1' |
|
|
|
|
$cond_user_id |
|
|
|
|
$condition_session |
|
|
|
|
GROUP BY ip.ref |
|
|
|
|
ORDER BY display_order DESC |
|
|
|
|
LIMIT 0, $maximum"; |
|
|
|
|
FROM $tbl_announcement announcement |
|
|
|
|
INNER JOIN $tbl_item_property ip |
|
|
|
|
ON (announcement.c_id = ip.c_id AND announcement.id = ip.ref) |
|
|
|
|
WHERE |
|
|
|
|
announcement.c_id = $course_id AND |
|
|
|
|
ip.c_id = $course_id AND |
|
|
|
|
ip.tool='announcement' AND |
|
|
|
|
ip.visibility='1' |
|
|
|
|
$cond_user_id |
|
|
|
|
$condition_session |
|
|
|
|
GROUP BY ip.ref |
|
|
|
|
ORDER BY display_order DESC |
|
|
|
|
LIMIT 0, $maximum"; |
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
if (api_get_course_setting('allow_user_edit_announcement')) { |
|
|
|
|
|