Adding delete topic button (in fact we just change the status to 3 ) only for platform admins in social groups

skala
Julio Montoya 14 years ago
parent cc4239950a
commit f06d3c5dc8
  1. 8
      main/inc/lib/group_portal_manager.lib.php
  2. 10
      main/inc/lib/groupmanager.lib.php
  3. 48
      main/inc/lib/message.lib.php
  4. 14
      main/social/group_topics.php
  5. 79
      main/social/groups.php

@ -1110,4 +1110,12 @@ class GroupPortalManager {
}
return $html;
}
function delete_topic($group_id, $topic_id) {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$topic_id = intval($topic_id);
$group_id = intval($group_id);
$sql = "UPDATE $table_message SET msg_status=3 WHERE group_id = $group_id AND (id = '$topic_id' OR parent_id = $topic_id) ";
Database::query($sql);
}
}

@ -71,8 +71,7 @@ class GroupManager {
* @param string $course_code Default is current course
* @return array An array with all information about the groups.
*/
public static function get_group_list ($category = null, $course_code = null) {
$course_db = '';
public static function get_group_list ($category = null, $course_code = null) {
$my_user_id = api_get_user_id();
$my_status_of_user_in_course = '';
@ -85,8 +84,7 @@ class GroupManager {
}
*/
$course_info = api_get_course_info($course_code);
$course_id = $course_info['real_id'];
$table_user = Database :: get_main_table(TABLE_MAIN_USER);
$course_id = $course_info['real_id'];
$table_course = Database :: get_main_table(TABLE_MAIN_COURSE);
$table_group_user = Database :: get_course_table(TABLE_GROUP_USER);
$table_group = Database :: get_course_table(TABLE_GROUP);
@ -1611,5 +1609,7 @@ class GroupManager {
$complete_user_list = self :: filter_only_students($complete_user_list);
//now sort by # of group left
$complete_user_list = TableSort :: sort_table($complete_user_list, 'number_groups_left', SORT_DESC);
return $complete_user_list; }
return $complete_user_list;
}
}

@ -534,10 +534,9 @@ class MessageManager
*/
public static function get_messages_by_group($group_id) {
if ($group_id != strval(intval($group_id))) return false;
$table_message = Database::get_main_table(TABLE_MESSAGE);
$current_uid = api_get_user_id();
$table_message = Database::get_main_table(TABLE_MESSAGE);
$group_id = intval($group_id);
$query = "SELECT * FROM $table_message WHERE group_id=$group_id AND msg_status <> ".MESSAGE_STATUS_OUTBOX." ORDER BY id";
$query = "SELECT * FROM $table_message WHERE group_id= $group_id AND msg_status NOT IN ('".MESSAGE_STATUS_OUTBOX."', '".MESSAGE_STATUS_DELETED."') ORDER BY id";
$rs = Database::query($query);
$data = array();
if (Database::num_rows($rs) > 0) {
@ -556,10 +555,10 @@ class MessageManager
*/
public static function get_messages_by_group_by_message($group_id, $message_id) {
if ($group_id != strval(intval($group_id))) return false;
$table_message = Database::get_main_table(TABLE_MESSAGE);
$current_uid = api_get_user_id();
$table_message = Database::get_main_table(TABLE_MESSAGE);
$group_id = intval($group_id);
$query = "SELECT * FROM $table_message WHERE group_id = $group_id AND msg_status <> ".MESSAGE_STATUS_OUTBOX." ORDER BY id ";
$query = "SELECT * FROM $table_message WHERE group_id = $group_id AND msg_status NOT IN ('".MESSAGE_STATUS_OUTBOX."', '".MESSAGE_STATUS_DELETED."') ORDER BY id ";
$rs = Database::query($query);
$data = array();
$parents = array();
@ -905,12 +904,7 @@ class MessageManager
public static function display_messages_for_group($group_id) {
global $my_group_role;
$rows = self::get_messages_by_group($group_id);
//$rows = self::calculate_children($rows, 1);
$group_info = GroupPortalManager::get_group_data($group_id);
$current_user_id = api_get_user_id();
$topics_per_page = 10;
$count_items = 0;
$html_messages = '';
$query_vars = array('id'=>$group_id, 'topics_page_nr'=>0);
@ -918,8 +912,7 @@ class MessageManager
// prepare array for topics with its items
$topics = array();
$x = 0;
$my_items = array();
$x = 0;
foreach($rows as $index => $value) {
if (empty($value['parent_id'])) {
$topics[$value['id']] = $value;
@ -1000,20 +993,20 @@ class MessageManager
* @param int group id
*/
public static function display_message_for_group($group_id, $topic_id, $is_member, $message_id ) {
global $my_group_role;
$main_message = self::get_message_by_id($topic_id);
$group_info = GroupPortalManager::get_group_data($group_id);
$rows = self::get_messages_by_group_by_message($group_id, $topic_id);
$rows = self::calculate_children($rows, $topic_id);
global $my_group_role;
$main_message = self::get_message_by_id($topic_id);
if (empty($main_message)) {
return false;
}
$rows = self::get_messages_by_group_by_message($group_id, $topic_id);
$rows = self::calculate_children($rows, $topic_id);
$current_user_id = api_get_user_id();
$topics_per_page = 5;
//$topics_per_page = 5;
$items_per_page = 50;
$count_items = 0;
$html_messages = '';
//$count_items = 0;
//$html_messages = '';
$query_vars = array('id' => $group_id, 'topic_id' => $topic_id , 'topics_page_nr' => 0);
// Main message
@ -1027,7 +1020,11 @@ class MessageManager
$html = '';
$html .= Display::tag('h3', Security::remove_XSS($main_message['title'], STUDENT, true));
$delete_button = '';
if (api_is_platform_admin()) {
$delete_button = Display::url(Display::return_icon('delete.png', get_lang('Delete'), array(), 22), 'group_topics.php?action=delete&id='.$group_id.'&topic_id='.$topic_id);
}
$html .= Display::tag('h3', Security::remove_XSS($main_message['title'].$delete_button, STUDENT, true));
$user_sender_info = UserManager::get_user_info_by_id($main_message['user_sender_id']);
$files_attachments = self::get_links_message_attachment_files($main_message['id']);
@ -1067,7 +1064,6 @@ class MessageManager
if (is_array($rows) && count($rows)> 0) {
$topics = $rows;
$array_html = array();
foreach ($topics as $index => $topic) {
if (empty($topic['id'])) {
@ -1228,7 +1224,7 @@ class MessageManager
public static function get_message_by_id($message_id) {
$tbl_message = Database::get_main_table(TABLE_MESSAGE);
$message_id = intval($message_id);
$sql = "SELECT * FROM $tbl_message WHERE id = '$message_id'";
$sql = "SELECT * FROM $tbl_message WHERE id = '$message_id' AND msg_status <> '".MESSAGE_STATUS_DELETED."' ";
$res = Database::query($sql);
$item = array();
if (Database::num_rows($res)>0) {

@ -36,6 +36,13 @@ if (empty($group_id)) {
}
}
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete') {
if (api_is_platform_admin()) {
GroupPortalManager::delete_topic($group_id, $topic_id);
header("Location: groups.php?id=$group_id&action=show_message&msg=topic_deleted");
}
}
// save message group
if (isset($_POST['token']) && $_POST['token'] === $_SESSION['sec_token']) {
@ -168,14 +175,15 @@ $interbreadcrumb[] = array ('url' =>'home.php', 'name' => get_lang('Social'
$interbreadcrumb[] = array('url' => 'groups.php', 'name' => get_lang('Groups'));
$interbreadcrumb[] = array('url' => '#', 'name' => get_lang('Thread'));
$social_left_content = SocialManager::show_social_menu('member_list', $group_id);
$social_right_content .= '<h2><a href="groups.php?id='.$group_id.'">'.Security::remove_XSS($group_info['name'], STUDENT, true).'</a> &raquo; <a href="groups.php?id='.$group_id.'#tabs_2">'.get_lang('Discussions').'</a></h2>';
$social_right_content = '<a href="groups.php?id='.$group_id.'">'.Security::remove_XSS($group_info['name'], STUDENT, true).'</a> &raquo; <a href="groups.php?id='.$group_id.'#tabs_2">'.get_lang('Discussions').'</a>';
$social_left_content .= SocialManager::show_social_menu('member_list', $group_id);
if (!empty($show_message)){
if (!empty($show_message)) {
$social_right_content .= Display::return_message($show_message, 'confirmation');
}
$social_right_content .= MessageManager::display_message_for_group($group_id, $topic_id, $is_member, $message_id);
$tpl = new Template($tool_name);
$tpl->set_help('Groups');
$tpl->assign('social_left_content', $social_left_content);

@ -213,42 +213,42 @@ if ($group_id != 0 ) {
// details about the current group
$social_right_content = '<div class="head_group">';
$social_right_content .= '<div id="social-group-details">';
//Group's title
$social_right_content .= Display::tag('h2', Security::remove_XSS($group_info['name'], STUDENT, true));
//echo '<div class="social-group-details-info"><a target="_blank" href="'.$group_info['url'].'">'.$group_info['url'].'</a></div>';
//Privacy
if (!$is_group_member) {
$social_right_content .= '<div class="social-group-details-info">';
$social_right_content .= '<span>'.get_lang('Privacy').' : </span>';
if ($group_info['visibility']== GROUP_PERMISSION_OPEN) {
$social_right_content .= get_lang('ThisIsAnOpenGroup');
} elseif ($group_info['visibility']== GROUP_PERMISSION_CLOSED) {
$social_right_content .= get_lang('ThisIsACloseGroup');
}
$social_right_content .= '</div>';
}
if (!$is_group_member && $group_info['visibility'] == GROUP_PERMISSION_CLOSED) {
$role = GroupPortalManager::get_user_group_role(api_get_user_id(), $group_id);
if ($role == GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER) {
$social_right_content .= Display::return_message(get_lang('YouAlreadySentAnInvitation'));
}
}
if (!empty($relation_group_title)) {
/*
echo '<div class="social-group-details-info">';
echo '<span>'.get_lang('StatusInThisGroup').' : </span>';
echo $relation_group_title;
echo '</div>';*/
}
//Group's tags
if (!empty($tags)) {
$social_right_content .= '<div id="social-group-details-info"><span>'.get_lang('Tags').' : </span>'.$tags.'</div>';
}
$social_right_content .= '<div id="social-group-details">';
//Group's title
$social_right_content .= Display::tag('h2', Security::remove_XSS($group_info['name'], STUDENT, true));
//echo '<div class="social-group-details-info"><a target="_blank" href="'.$group_info['url'].'">'.$group_info['url'].'</a></div>';
//Privacy
if (!$is_group_member) {
$social_right_content .= '<div class="social-group-details-info">';
$social_right_content .= '<span>'.get_lang('Privacy').' : </span>';
if ($group_info['visibility']== GROUP_PERMISSION_OPEN) {
$social_right_content .= get_lang('ThisIsAnOpenGroup');
} elseif ($group_info['visibility']== GROUP_PERMISSION_CLOSED) {
$social_right_content .= get_lang('ThisIsACloseGroup');
}
$social_right_content .= '</div>';
}
if (!$is_group_member && $group_info['visibility'] == GROUP_PERMISSION_CLOSED) {
$role = GroupPortalManager::get_user_group_role(api_get_user_id(), $group_id);
if ($role == GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER) {
$social_right_content .= Display::return_message(get_lang('YouAlreadySentAnInvitation'));
}
}
if (!empty($relation_group_title)) {
/*
echo '<div class="social-group-details-info">';
echo '<span>'.get_lang('StatusInThisGroup').' : </span>';
echo $relation_group_title;
echo '</div>';*/
}
//Group's tags
if (!empty($tags)) {
$social_right_content .= '<div id="social-group-details-info"><span>'.get_lang('Tags').' : </span>'.$tags.'</div>';
}
$social_right_content .= '</div>';
$social_right_content .= '</div>';
$social_right_content .= '<div class="clear"></div>';
@ -264,8 +264,7 @@ if ($group_id != 0 ) {
$social_right_content .= '<a class="a_button white medium" href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang('YouHaveBeenInvitedJoinNow').'</a>';
}
$social_right_content .= '<br /><br />';
}
}
$content = MessageManager::display_messages_for_group($group_id);
if ($is_group_member) {
if (empty($content)) {
@ -533,7 +532,9 @@ if ($group_id != 0 ) {
$social_right_content .= '</div>';
//Display :: display_footer();
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'show_message' && $_REQUEST['msg'] == 'topic_deleted') {
$show_message = Display::return_message(get_lang('Deleted'), 'success');
}
$tpl = new Template($tool_name);
$tpl->set_help('Groups');

Loading…
Cancel
Save