|
@@ -158,11 +158,13 @@ if (!empty($_SESSION['formelements']) and !empty($_GET['originalresource']) and
|
|
|
if(!empty($_GET['remind_inactive'])) {
|
|
|
$to[] = 'USER:'.intval($_GET['remind_inactive']);
|
|
|
}
|
|
|
-if (!empty($_SESSION['toolgroup'])){
|
|
|
- $_clean_toolgroup=intval($_SESSION['toolgroup']);
|
|
|
- $group_properties = GroupManager :: get_group_properties($_clean_toolgroup);
|
|
|
+
|
|
|
+$group_id = api_get_group_id();
|
|
|
+
|
|
|
+if (!empty($group_id)) {
|
|
|
+ $group_properties = GroupManager :: get_group_properties($group_id);
|
|
|
$interbreadcrumb[] = array ("url" => "../group/group.php", "name" => get_lang('Groups'));
|
|
|
- $interbreadcrumb[] = array ("url"=>"../group/group_space.php?gidReq=".$_clean_toolgroup, "name"=> get_lang('GroupSpace').' '.$group_properties['name']);
|
|
|
+ $interbreadcrumb[] = array ("url"=>"../group/group_space.php?gidReq=".$group_id, "name"=> get_lang('GroupSpace').' '.$group_properties['name']);
|
|
|
}
|
|
|
|
|
|
$announcement_id = intval($_GET['id']);
|
|
@@ -268,12 +270,12 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
|
|
|
$title_to_modify = $myrow['title'];
|
|
|
|
|
|
if ($originalresource!=="no") {
|
|
|
- $to=AnnouncementManager::load_edit_users("announcement", $announcement_to_modify);
|
|
|
+ $to = AnnouncementManager::load_edit_users("announcement", $announcement_to_modify);
|
|
|
}
|
|
|
$display_announcement_list = false;
|
|
|
}
|
|
|
|
|
|
- if ($to=="everyone" OR !empty($_SESSION['toolgroup'])) {
|
|
|
+ if ($to=="everyone" OR !empty($group_id)) {
|
|
|
$_SESSION['select_groupusers']="hide";
|
|
|
} else {
|
|
|
$_SESSION['select_groupusers']="show";
|
|
@@ -342,7 +344,7 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
|
|
|
$emailTitle=(!empty($_POST['emailTitle'])?$safe_emailTitle:'');
|
|
|
$newContent=(!empty($_POST['newContent'])?$safe_newContent:'');
|
|
|
|
|
|
- $submitAnnouncement=isset($_POST['submitAnnouncement'])?$_POST['submitAnnouncement']:0;
|
|
|
+ $submitAnnouncement = isset($_POST['submitAnnouncement'])?$_POST['submitAnnouncement']:0;
|
|
|
|
|
|
$id = 0;
|
|
|
if (!empty($_POST['id'])) {
|
|
@@ -370,27 +372,26 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
|
|
|
} else {
|
|
|
//insert mode
|
|
|
if ($ctok == $_POST['sec_token']) {
|
|
|
+
|
|
|
+ $sql = "SELECT MAX(display_order) FROM $tbl_announcement WHERE c_id = $course_id AND (session_id=".api_get_session_id()." OR session_id=0)";
|
|
|
+ $result = Database::query($sql);
|
|
|
+ list($orderMax) = Database::fetch_row($result);
|
|
|
+ $order = $orderMax + 1;
|
|
|
+ $file = $_FILES['user_upload'];
|
|
|
+ $file_comment = $_POST['file_comment'];
|
|
|
+ if (!empty($group_id)) {
|
|
|
+ $insert_id = AnnouncementManager::add_group_announcement($safe_emailTitle, $safe_newContent, $order, array('GROUP:'.$group_id), $_POST['selectedform'], $file, $file_comment);
|
|
|
+ } else {
|
|
|
+ $insert_id = AnnouncementManager::add_announcement($safe_emailTitle, $safe_newContent, $order, $_POST['selectedform'], $file, $file_comment);
|
|
|
+ }
|
|
|
+ //store_resources($_SESSION['source_type'],$insert_id);
|
|
|
+ $_SESSION['select_groupusers']="hide";
|
|
|
+ $message = get_lang('AnnouncementAdded');
|
|
|
|
|
|
- //if (!$surveyid) {
|
|
|
- $sql = "SELECT MAX(display_order) FROM $tbl_announcement WHERE c_id = $course_id AND (session_id=".api_get_session_id()." OR session_id=0)";
|
|
|
- $result = Database::query($sql);
|
|
|
- list($orderMax) = Database::fetch_row($result);
|
|
|
- $order = $orderMax + 1;
|
|
|
- $file = $_FILES['user_upload'];
|
|
|
- $file_comment = $_POST['file_comment'];
|
|
|
- if (!empty($_SESSION['toolgroup'])) {
|
|
|
- $insert_id = AnnouncementManager::add_group_announcement($safe_emailTitle,$safe_newContent,$order,array('GROUP:'.$_SESSION['toolgroup']),$_POST['selectedform'],$file,$file_comment);
|
|
|
- } else {
|
|
|
- $insert_id = AnnouncementManager::add_announcement($safe_emailTitle, $safe_newContent, $order, $_POST['selectedform'], $file, $file_comment);
|
|
|
- }
|
|
|
- //store_resources($_SESSION['source_type'],$insert_id);
|
|
|
- $_SESSION['select_groupusers']="hide";
|
|
|
- $message = get_lang('AnnouncementAdded');
|
|
|
-
|
|
|
- /* MAIL FUNCTION */
|
|
|
- if ($_POST['email_ann'] && empty($_POST['onlyThoseMails'])) {
|
|
|
- AnnouncementManager::send_email($insert_id);
|
|
|
- }
|
|
|
+ /* MAIL FUNCTION */
|
|
|
+ if ($_POST['email_ann'] && empty($_POST['onlyThoseMails'])) {
|
|
|
+ AnnouncementManager::send_email($insert_id);
|
|
|
+ }
|
|
|
|
|
|
} // end condition token
|
|
|
} // isset
|
|
@@ -446,91 +447,91 @@ if (api_is_allowed_to_edit(false,true)) {
|
|
|
}
|
|
|
} else {
|
|
|
// students only get to see the visible announcements
|
|
|
- if (empty($_GET['origin']) or $_GET['origin'] !== 'learnpath') {
|
|
|
- $group_memberships=GroupManager::get_group_ids($_course['real_id'], $_user['user_id']);
|
|
|
+ if (empty($_GET['origin']) or $_GET['origin'] !== 'learnpath') {
|
|
|
+ $group_memberships=GroupManager::get_group_ids($_course['real_id'], $_user['user_id']);
|
|
|
|
|
|
- if ((api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())) {
|
|
|
+ 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 = '".api_get_user_id()."' OR ( ip.to_user_id='".$_user['user_id']."'" .
|
|
|
- "OR ip.to_group_id IN (0, ".implode(", ", $group_memberships)."))) ";
|
|
|
- } else {
|
|
|
- $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."'
|
|
|
- OR ip.to_group_id IN (0, ".api_get_group_id()."))";
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (api_get_group_id() == 0) {
|
|
|
- $cond_user_id = " AND ( ip.to_user_id='".$_user['user_id']."'" .
|
|
|
- "OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ";
|
|
|
- } else {
|
|
|
- $cond_user_id = " AND ( ip.to_user_id='".$_user['user_id']."'" .
|
|
|
- "OR ip.to_group_id IN (0, ".api_get_group_id().")) ";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // the user is member of several groups => display personal announcements AND his group announcements AND the general announcements
|
|
|
- if (is_array($group_memberships) && count($group_memberships)>0) {
|
|
|
- $sql="SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
|
|
|
- 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'
|
|
|
- AND ip.visibility='1'
|
|
|
- $cond_user_id
|
|
|
- $condition_session
|
|
|
- GROUP BY ip.ref
|
|
|
- ORDER BY display_order DESC
|
|
|
- LIMIT 0,$maximum";
|
|
|
- } else {
|
|
|
- // the user is not member of any group
|
|
|
- // this is an identified user => show the general announcements AND his personal announcements
|
|
|
- if ($_user['user_id']) {
|
|
|
-
|
|
|
- if ((api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())) {
|
|
|
- $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."' OR ( ip.to_user_id='".$_user['user_id']."' OR ip.to_group_id='0')) ";
|
|
|
- } else {
|
|
|
- $cond_user_id = " AND ( ip.to_user_id='".$_user['user_id']."' OR ip.to_group_id='0') ";
|
|
|
- }
|
|
|
- $sql="SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
|
|
|
- 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'
|
|
|
- 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_group_id() == 0) {
|
|
|
+ $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."' OR ( ip.to_user_id='".$_user['user_id']."'" .
|
|
|
+ "OR ip.to_group_id IN (0, ".implode(", ", $group_memberships)."))) ";
|
|
|
+ } else {
|
|
|
+ $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."'
|
|
|
+ OR ip.to_group_id IN (0, ".api_get_group_id()."))";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (api_get_group_id() == 0) {
|
|
|
+ $cond_user_id = " AND ( ip.to_user_id='".$_user['user_id']."'" .
|
|
|
+ "OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).")) ";
|
|
|
+ } else {
|
|
|
+ $cond_user_id = " AND ( ip.to_user_id='".$_user['user_id']."'" .
|
|
|
+ "OR ip.to_group_id IN (0, ".api_get_group_id().")) ";
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- if (api_get_course_setting('allow_user_edit_announcement')) {
|
|
|
- $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."' OR ip.to_group_id='0') ";
|
|
|
- } else {
|
|
|
- $cond_user_id = " AND ip.to_group_id='0' ";
|
|
|
- }
|
|
|
+ // the user is member of several groups => display personal announcements AND his group announcements AND the general announcements
|
|
|
+ if (is_array($group_memberships) && count($group_memberships)>0) {
|
|
|
+ $sql="SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
|
|
|
+ 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'
|
|
|
+ AND ip.visibility='1'
|
|
|
+ $cond_user_id
|
|
|
+ $condition_session
|
|
|
+ GROUP BY ip.ref
|
|
|
+ ORDER BY display_order DESC
|
|
|
+ LIMIT 0,$maximum";
|
|
|
+ } else {
|
|
|
+ // the user is not member of any group
|
|
|
+ // this is an identified user => show the general announcements AND his personal announcements
|
|
|
+ if ($_user['user_id']) {
|
|
|
+
|
|
|
+ if ((api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())) {
|
|
|
+ $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."' OR ( ip.to_user_id='".$_user['user_id']."' OR ip.to_group_id='0')) ";
|
|
|
+ } else {
|
|
|
+ $cond_user_id = " AND ( ip.to_user_id='".$_user['user_id']."' OR ip.to_group_id='0') ";
|
|
|
+ }
|
|
|
+ $sql="SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
|
|
|
+ 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'
|
|
|
+ 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')) {
|
|
|
+ $cond_user_id = " AND (ip.lastedit_user_id = '".api_get_user_id()."' OR ip.to_group_id='0') ";
|
|
|
+ } else {
|
|
|
+ $cond_user_id = " AND ip.to_group_id='0' ";
|
|
|
+ }
|
|
|
|
|
|
- // the user is not identiefied => show only the general announcements
|
|
|
- $sql="SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
|
|
|
- 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'
|
|
|
- AND ip.visibility='1'
|
|
|
- AND ip.to_group_id='0'
|
|
|
- $condition_session
|
|
|
- GROUP BY ip.ref
|
|
|
- ORDER BY display_order DESC
|
|
|
- LIMIT 0,$maximum";
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ // the user is not identiefied => show only the general announcements
|
|
|
+ $sql="SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
|
|
|
+ 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'
|
|
|
+ AND ip.visibility='1'
|
|
|
+ AND ip.to_group_id='0'
|
|
|
+ $condition_session
|
|
|
+ GROUP BY ip.ref
|
|
|
+ ORDER BY display_order DESC
|
|
|
+ LIMIT 0,$maximum";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
$result = Database::query($sql);
|
|
@@ -606,7 +607,7 @@ if ($display_form) {
|
|
|
//this variable defines if the course administrator can send a message to a specific user / group or not
|
|
|
//@todo use formvalidator
|
|
|
|
|
|
- if (empty($_SESSION['toolgroup'])) {
|
|
|
+ if (empty($group_id)) {
|
|
|
echo ' <div class="control-group">
|
|
|
<label class="control-label">'.
|
|
|
Display::return_icon('group.png', get_lang('ModifyRecipientList'), array ('align' => 'absmiddle'),ICON_SIZE_SMALL).'<a href="#" onclick="toggle_sendto();">'.get_lang('SentTo').'</a>
|
|
@@ -666,14 +667,14 @@ if ($display_form) {
|
|
|
$announcement_to_modify ="";
|
|
|
}
|
|
|
|
|
|
- ($email_ann=='1' || !empty($surveyid))?$checked='checked':$checked='';
|
|
|
- echo '<div class="control-group">
|
|
|
- <div class="controls">
|
|
|
- <input class="checkbox" type="checkbox" value="1" name="email_ann" '.$checked.'>
|
|
|
- '.get_lang('EmailOption').': <span id="recipient_overview">'.get_lang('MyGroup').'</span>
|
|
|
- <a href="#" onclick="toggle_sendto();">'.get_lang('ModifyRecipientList').'</a>';
|
|
|
- AnnouncementManager::show_to_form_group($_SESSION['toolgroup']);
|
|
|
- echo '</div></div>';
|
|
|
+ ($email_ann=='1' || !empty($surveyid))?$checked='checked':$checked='';
|
|
|
+ echo '<div class="control-group">
|
|
|
+ <div class="controls">
|
|
|
+ <input class="checkbox" type="checkbox" value="1" name="email_ann" '.$checked.'>
|
|
|
+ '.get_lang('EmailOption').': <span id="recipient_overview">'.get_lang('MyGroup').'</span>
|
|
|
+ <a href="#" onclick="toggle_sendto();">'.get_lang('ModifyRecipientList').'</a>';
|
|
|
+ AnnouncementManager::show_to_form_group($group_id);
|
|
|
+ echo '</div></div>';
|
|
|
}
|
|
|
|
|
|
// the announcement title
|
|
@@ -740,7 +741,7 @@ if ($display_form) {
|
|
|
echo'<br />';
|
|
|
echo '<div class="row"><div class="formw">';
|
|
|
|
|
|
- if (empty($_SESSION['toolgroup'])) {
|
|
|
+ if (empty($group_id)) {
|
|
|
echo '<input type="hidden" name="submitAnnouncement" value="OK">';
|
|
|
echo '<input type="hidden" name="sec_token" value="'.$stok.'" />';
|
|
|
echo '<button class="btn save" type="button" value="'.' '.get_lang('Send').' '.'" onclick="selectAll(this.form.elements[3],true)" >'.get_lang('ButtonPublishAnnouncement').'</button><br /><br />';
|
|
@@ -1010,8 +1011,8 @@ if ($display_announcement_list) {
|
|
|
echo Display::tag('td', Security::remove_XSS($title), array('class' => $style));
|
|
|
|
|
|
$user_info = api_get_user_info($myrow['insert_user_id']);
|
|
|
- $username = sprintf(get_lang("LoginX"), $user_info['username']);
|
|
|
- $username_span = Display::tag('span', api_get_person_name($user_info['firstName'], $user_info['lastName']), array('title'=>$username));
|
|
|
+ $username = sprintf(get_lang("LoginX"), $user_info['username']);
|
|
|
+ $username_span = Display::tag('span', api_get_person_name($user_info['firstName'], $user_info['lastName']), array('title'=>$username));
|
|
|
echo Display::tag('td', $username_span);
|
|
|
echo Display::tag('td', api_convert_and_format_date($myrow['insert_date'], DATE_TIME_FORMAT_LONG));
|
|
|
|