In a open group users can read and comment threads + some UI improvements

skala
Julio Montoya 15 years ago
parent 1e86b4c57c
commit b3f0779919
  1. 2
      main/admin/resume_session.php
  2. 5
      main/inc/lib/group_portal_manager.lib.php
  3. 14
      main/inc/lib/message.lib.php
  4. 5
      main/inc/lib/social.lib.php
  5. 14
      main/social/group_topics.php
  6. 67
      main/social/groups.php
  7. 15
      main/social/message_for_group_form.inc.php

@ -99,7 +99,7 @@ if (!empty($_GET['warn'])) {
}
echo Display::tag('h2', $session['name']);
echo Display::tag('h1', $session['name']);
echo Display::tag('h3', $tool_name);
?>
<!-- General properties -->

@ -405,8 +405,7 @@ class GroupPortalManager
* @param url_id
* @return boolean true if success
* */
public static function add_user_to_group($user_id, $group_id, $relation_type = GROUP_USER_PERMISSION_READER)
{
public static function add_user_to_group($user_id, $group_id, $relation_type = GROUP_USER_PERMISSION_READER) {
$table_url_rel_group = Database :: get_main_table(TABLE_MAIN_USER_REL_GROUP);
if (!empty($user_id) && !empty($group_id)) {
$role = self::get_user_group_role($user_id,$group_id);
@ -414,7 +413,7 @@ class GroupPortalManager
$sql = "INSERT INTO $table_url_rel_group
SET user_id = ".intval($user_id).", group_id = ".intval($group_id).", relation_type = ".intval($relation_type);
$result = Database::query($sql);
} elseif($role == GROUP_USER_PERMISSION_PENDING_INVITATION) {
} elseif ($role == GROUP_USER_PERMISSION_PENDING_INVITATION) {
//if somebody already invited me I can be added
self::update_user_role($user_id, $group_id, GROUP_USER_PERMISSION_READER);
}

@ -976,7 +976,7 @@ class MessageManager
* Displays messages of a group with nested view
* @param int group id
*/
public static function display_message_for_group($group_id, $message_id) {
public static function display_message_for_group($group_id, $message_id, $is_member) {
global $my_group_role;
$main_message = self::get_message_by_id($message_id);
@ -1005,11 +1005,10 @@ class MessageManager
$name = api_get_person_name($user_sender_info['firstname'], $user_sender_info['lastname']);
$links.= '<div id="message-reply-link">';
$links.= '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&message_id='.$main_message['id'].'&action=reply_message_group&anchor_topic=topic_'.$main_message['id'].'&topics_page_nr='.intval($_GET['topics_page_nr']).'&items_page_nr='.intval($items_page_nr).'&topic_id='.$main_message['id'].'" class="thickbox" title="'.get_lang('Reply').'">'.Display :: return_icon('talk.png', get_lang('Reply')).'</a>';
if (($my_group_role == GROUP_USER_PERMISSION_ADMIN || $my_group_role == GROUP_USER_PERMISSION_MODERATOR) || $main_message['user_sender_id'] == $current_user_id) {
$links.= '&nbsp;&nbsp;<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.$current_user_id.'&group_id='.$group_id.'&message_id='.$main_message['id'].'&action=edit_message_group&anchor_topic=topic_'.$main_message['id'].'&topics_page_nr='.intval($_GET['topics_page_nr']).'&items_page_nr='.intval($items_page_nr).'&topic_id='.$main_message['id'].'" class="thickbox" title="'.get_lang('Edit').'">'.Display :: return_icon('edit.gif', get_lang('Edit')).'</a>';
$links.= '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.$current_user_id.'&group_id='.$group_id.'&message_id='.$main_message['id'].'&action=edit_message_group&anchor_topic=topic_'.$main_message['id'].'&topics_page_nr='.intval($_GET['topics_page_nr']).'&items_page_nr='.intval($items_page_nr).'&topic_id='.$main_message['id'].'" class="thickbox" title="'.get_lang('Edit').'">'.Display :: return_icon('edit.png', get_lang('Edit'), array(), 22).'</a>';
}
$links.= '&nbsp;&nbsp;<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&message_id='.$main_message['id'].'&action=reply_message_group&anchor_topic=topic_'.$main_message['id'].'&topics_page_nr='.intval($_GET['topics_page_nr']).'&items_page_nr='.intval($items_page_nr).'&topic_id='.$main_message['id'].'" class="thickbox" title="'.get_lang('Reply').'">'.Display :: return_icon('talk.png', get_lang('Reply')).'</a>';
$links.= '</div>';
$image_path = UserManager::get_user_picture_path_by_id($main_message['user_sender_id'], 'web', false, true);
@ -1051,12 +1050,11 @@ class MessageManager
$files_attachments = self::get_links_message_attachment_files($topic['id']);
$name = api_get_person_name($user_sender_info['firstname'], $user_sender_info['lastname']);
$links.= '<div id="message-reply-link">';
$links.= '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&message_id='.$topic['id'].'&action=reply_message_group&anchor_topic=topic_'.$topic_id.'&topics_page_nr='.intval($_GET['topics_page_nr']).'&items_page_nr='.intval($items_page_nr).'&topic_id='.$topic_id.'" class="thickbox" title="'.get_lang('Reply').'">'.Display :: return_icon('talk.png', get_lang('Reply')).'</a>';
$links.= '<div id="message-reply-link">';
if (($my_group_role == GROUP_USER_PERMISSION_ADMIN || $my_group_role == GROUP_USER_PERMISSION_MODERATOR) || $topic['user_sender_id'] == $current_user_id) {
$links.= '&nbsp;&nbsp;<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.$current_user_id.'&group_id='.$group_id.'&message_id='.$topic['id'].'&action=edit_message_group&anchor_topic=topic_'.$topic_id.'&topics_page_nr='.intval($_GET['topics_page_nr']).'&items_page_nr='.intval($items_page_nr).'&topic_id='.$topic_id.'" class="thickbox" title="'.get_lang('Edit').'">'.Display :: return_icon('edit.gif', get_lang('Edit')).'</a>';
$links.= '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.$current_user_id.'&group_id='.$group_id.'&message_id='.$topic['id'].'&action=edit_message_group&anchor_topic=topic_'.$topic_id.'&topics_page_nr='.intval($_GET['topics_page_nr']).'&items_page_nr='.intval($items_page_nr).'&topic_id='.$topic_id.'" class="thickbox" title="'.get_lang('Edit').'">'.Display :: return_icon('edit.png', get_lang('Edit'), array(), 22).'</a>';
}
$links.= '&nbsp;&nbsp;<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=390&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&message_id='.$topic['id'].'&action=reply_message_group&anchor_topic=topic_'.$topic_id.'&topics_page_nr='.intval($_GET['topics_page_nr']).'&items_page_nr='.intval($items_page_nr).'&topic_id='.$topic_id.'" class="thickbox" title="'.get_lang('Reply').'">'.Display :: return_icon('talk.png', get_lang('Reply')).'</a>';
$links.= '</div>';
$image_path = UserManager::get_user_picture_path_by_id($topic['user_sender_id'], 'web', false, true);

@ -320,14 +320,13 @@ class SocialManager extends UserManager {
$count_number_is_true=0;
if (isset($userfriend_id) && $userfriend_id>0) {
$message_title = get_lang('Invitation');
$count_is_true = self::send_invitation_friend(api_get_user_id(),$userfriend_id, $message_title, $content_message);
$count_is_true = self::send_invitation_friend(api_get_user_id(), $userfriend_id, $message_title, $content_message);
if ($count_is_true) {
echo Display::display_normal_message(api_htmlentities(get_lang('InvitationHasBeenSent'), ENT_QUOTES,$charset),false);
}else {
} else {
echo Display::display_error_message(api_htmlentities(get_lang('YouAlreadySentAnInvitation'), ENT_QUOTES,$charset),false);
}
}
}
}

@ -51,13 +51,14 @@ if (empty($group_id)) {
if (empty($group_info)) {
api_not_allowed(true);
}
$user_role = GroupPortalManager::get_user_group_role(api_get_user_id(), $group_id);
if (!in_array($user_role, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_MODERATOR, GROUP_USER_PERMISSION_READER))) {
api_not_allowed(true);
$is_member = GroupPortalManager::is_group_member($group_id);
if ($group_info['visibility'] == GROUP_PERMISSION_CLOSED && !$is_member ) {
api_not_allowed(true);
}
}
Display :: display_header($tool_name, 'Groups');
Display::display_header($tool_name, 'Groups');
// save message group
if (isset($_POST['token']) && $_POST['token'] === $_SESSION['sec_token']) {
@ -75,6 +76,9 @@ if (isset($_POST['token']) && $_POST['token'] === $_SESSION['sec_token']) {
$edit_message_id = intval($_POST['message_id']);
$res = MessageManager::send_message(0, $title, $content, $_FILES, '', $group_id, $parent_id, $edit_message_id);
} else {
if ($_POST['action'] == 'add_message_group' && !$is_member) {
api_not_allowed();
}
$res = MessageManager::send_message(0, $title, $content, $_FILES, '', $group_id, $parent_id);
}
@ -121,7 +125,7 @@ echo '<div id="social-content">';
if (!empty($show_message)){
Display::display_confirmation_message($show_message);
}
$content = MessageManager::display_message_for_group($group_id, $topic_id);
$content = MessageManager::display_message_for_group($group_id, $topic_id, $is_member);
echo $content;
echo '</div>';
echo '</div>';

@ -149,6 +149,7 @@ $my_group_role = 0;
if ($group_id != 0 ) {
$user_leave_message = false;
$user_added_group_message = false;
$user_invitation_sent = false;
$group_info = GroupPortalManager::get_group_data($group_id);
if (isset($_GET['action']) && $_GET['action']=='leave') {
@ -169,7 +170,7 @@ if ($group_id != 0 ) {
$user_added_group_message = true;
} else {
GroupPortalManager::add_user_to_group($user_join, $group_id, GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER);
$user_added_group_message = true;
$user_invitation_sent = true;
}
}
}
@ -207,6 +208,12 @@ if ($group_id != 0 ) {
if ($user_added_group_message) {
Display::display_confirmation_message(get_lang('UserIsSubscribedToThisGroup'), false);
}
if ($user_invitation_sent) {
Display::display_confirmation_message(get_lang('InvitationSent'), false);
}
$is_group_member = GroupPortalManager::is_group_member($group_id);
// details about the current group
echo '<div class="head_group">';
@ -216,15 +223,26 @@ if ($group_id != 0 ) {
//Group's description
echo '<div class="social-group-details-info">'.$group_info['description'].'</div>';
echo '<div class="social-group-details-info"><a target="_blank" href="'.$group_info['url'].'">'.$group_info['url'].'</a></div>';
//Privacy
echo '<div class="social-group-details-info">';
echo '<span>'.get_lang('Privacy').' : </span>';
if ($group_info['visibility']== GROUP_PERMISSION_OPEN) {
echo get_lang('ThisIsAnOpenGroup');
} elseif ($group_info['visibility']== GROUP_PERMISSION_CLOSED) {
echo get_lang('ThisIsACloseGroup');
}
echo '</div>';
if (!$is_group_member) {
echo '<div class="social-group-details-info">';
echo '<span>'.get_lang('Privacy').' : </span>';
if ($group_info['visibility']== GROUP_PERMISSION_OPEN) {
echo get_lang('ThisIsAnOpenGroup');
} elseif ($group_info['visibility']== GROUP_PERMISSION_CLOSED) {
echo get_lang('ThisIsACloseGroup');
}
echo '</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) {
echo Display::display_normal_message(get_lang('YouAlreadySentAnInvitation'));
}
}
if (!empty($relation_group_title)) {
/*
echo '<div class="social-group-details-info">';
@ -241,23 +259,36 @@ if ($group_id != 0 ) {
echo '<div class="clear"></div>';
//-- Show message groups
echo '<div class="messages" style="width:700px">';
if (GroupPortalManager::is_group_member($group_id)) {
echo '<div class="messages" style="width:700px">';
if ($is_group_member || $group_info['visibility'] == GROUP_PERMISSION_OPEN) {
if (!$is_group_member) {
if (!in_array($my_group_role, array(GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER, GROUP_USER_PERMISSION_PENDING_INVITATION))) {
echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.Display::return_icon('group_join.png', get_lang('YouShouldJoinTheGroup'), array('hspace'=>'6')).'<span class="social-menu-text4" >'.get_lang('YouShouldJoinTheGroup').'</a></span>';
} elseif ($my_group_role == GROUP_USER_PERMISSION_PENDING_INVITATION) {
echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.Display::return_icon('group_join.png', get_lang('YouHaveBeenInvitedJoinNow'), array('hspace'=>'6')).'<span class="social-menu-text4" >'.get_lang('YouHaveBeenInvitedJoinNow').'</span></a>';
}
echo '<br /><br />';
}
$content = MessageManager::display_messages_for_group($group_id);
if (empty($content)) {
$content = '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=400&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&action=add_message_group" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display::return_icon('compose_message.png', get_lang('NewTopic'), array('hspace'=>'6')).get_lang('YouShouldCreateATopic').'</a></li>';
} else {
$create_thread_link = '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=400&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&action=add_message_group" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display::return_icon('compose_message.png', get_lang('NewTopic'), array('hspace'=>'6')).get_lang('NewTopic').'</a>';
$content = $create_thread_link.$content;
}
if ($is_group_member) {
if (empty($content)) {
$content = '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=400&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&action=add_message_group" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display::return_icon('compose_message.png', get_lang('NewTopic'), array('hspace'=>'6')).get_lang('YouShouldCreateATopic').'</a></li>';
} else {
$create_thread_link = '<a href="'.api_get_path(WEB_CODE_PATH).'social/message_for_group_form.inc.php?view_panel=1&height=400&width=610&&user_friend='.api_get_user_id().'&group_id='.$group_id.'&action=add_message_group" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display::return_icon('compose_message.png', get_lang('NewTopic'), array('hspace'=>'6')).get_lang('NewTopic').'</a>';
$content = $create_thread_link.$content;
}
}
$members = GroupPortalManager::get_users_by_group($group_id);
$member_content = '';
//Members
if (count($members) > 0) {
$min_count_members = 4;
$i = 1;
$member_content .= Display::url(Display::return_icon('edit.gif', get_lang('EditMembersList')).' '.get_lang('EditMembersList'), 'group_members.php?id='.$group_id);
if ($my_group_role == GROUP_USER_PERMISSION_ADMIN) {
$member_content .= Display::url(Display::return_icon('edit.gif', get_lang('EditMembersList')).' '.get_lang('EditMembersList'), 'group_members.php?id='.$group_id);
}
foreach($members as $member) {
if ($i > $min_count_members) break;

@ -17,20 +17,21 @@ require_once api_get_path(LIBRARY_PATH).'fckeditor/fckeditor.php';
$tok = Security::get_token();
if ( isset($_REQUEST['user_friend']) ) {
if (isset($_REQUEST['user_friend'])) {
$info_user_friend=array();
$info_path_friend=array();
$userfriend_id=Security::remove_XSS($_REQUEST['user_friend']);
// panel=1 send message
// panel=2 send invitation
$panel=Security::remove_XSS($_REQUEST['view_panel']);
$info_user_friend=api_get_user_info($userfriend_id);
$info_path_friend=UserManager::get_user_picture_path_by_id($userfriend_id,'web',false,true);
$info_user_friend = api_get_user_info($userfriend_id);
$info_path_friend = UserManager::get_user_picture_path_by_id($userfriend_id,'web',false,true);
}
$group_id = intval($_GET['group_id']);
$message_id = intval($_GET['message_id']);
$actions = array('add_message_group','edit_message_group','reply_message_group');
$actions = array('add_message_group', 'edit_message_group', 'reply_message_group');
$allowed_action = (isset($_GET['action']) && in_array($_GET['action'],$actions))?Security::remove_XSS($_GET['action']):'';
@ -39,6 +40,12 @@ $subject = '';
$message = '';
if (!empty($group_id) && $allowed_action) {
$group_info = GroupPortalManager::get_group_data($group_id);
$is_member = GroupPortalManager::is_group_member($group_id);
if ($group_info['visibility'] == GROUP_PERMISSION_CLOSED && !$is_member) {
api_not_allowed(true);
}
$to_group = $group_info['name'];
if (!empty($message_id)) {
$message_info = MessageManager::get_message_by_id($message_id);

Loading…
Cancel
Save