UI improvements in groups & messages & social network see CT#190

skala
Julio Montoya 16 years ago
parent c72358cce6
commit 1da6d26bda
  1. 87
      main/css/blue_lagoon/default.css
  2. 112
      main/css/chamilo/default.css
  3. 2
      main/inc/lib/display.lib.php
  4. 115
      main/inc/lib/group_portal_manager.lib.php
  5. 1
      main/inc/lib/social.lib.php
  6. 14
      main/inc/lib/sortabletable.class.php
  7. 137
      main/messages/new_message.php
  8. 10
      main/social/groups.php
  9. 7
      main/social/invitations.php
  10. 4
      main/social/profile.php

@ -2186,7 +2186,7 @@ div.comments {
background:#FFF;
border:1px dotted #ccc;
padding: 0px 10px 0 10px;
width:50%;
/* width:50%; */
position:relative;
}
.message-content .message-delete {
@ -2679,16 +2679,23 @@ a.unread {
#inbox-wrapper {width:100%;}
#inbox {width:90%;float:left;}
#inbox {width:80%;float:right;}
#inbox-menu {
width:150px;
float:left;
}
#inbox-menu ul {
list-style-image:none;
list-style-position:outside;
list-style-type:none;
margin:0;
padding:0;
width:10%;
float:left;
padding:0px;
}
#inbox-menu ul li{
padding:2px 0px;
}
#message-reply-link {
@ -2771,8 +2778,6 @@ a.unread {
}
.actions {
background:#efefef;
border:1px solid #ccc;
padding:2px;
@ -2791,17 +2796,77 @@ a.unread {
}
#group_description {
margin: 5px 0px 5px 0px;
margin: 10px 0px 10px 0px;
}
#group_privacy {
margin: 5px 0px 5px 0px;
margin: 10px 0px 10px 0px;
}
#group_permissions {
-moz-background-clip:border;
-moz-background-inline-policy:continuous;
-moz-background-origin:padding;
-moz-border-radius-bottomleft:8px;
-moz-border-radius-bottomright:8px;
-moz-border-radius-topleft:8px;
-moz-border-radius-topright:8px;
background:#EEE none repeat scroll 0 0;
margin: 20px 0px 20px 0px;
}
#group_permissions ul {
#group_permissions ul {
list-style-image:none;
list-style-position:outside;
list-style-type:none;
margin:0;
padding:0;
}
}
#group_permissions ul li {
margin: 10px 0px 10px 5px;
}
/* Groups boxes */
.groups_grid_container { width:100%;}
.groups_grid_item {
border:1px dotted #CCCCCC;
float:left;
height:85px;
margin:8px;
padding:5px;
width:300px;
}
.groups_grid_element_0 { width:100px; float:left; text-align:center; margin-bottom:5px;}
.groups_grid_element_1 { width:100px; float:left; text-align:left;margin-bottom:5px;}
.groups_grid_element_2 { width:150px; float:left;}
/* User boxes */
.search_users_grid_container { width:100%;}
.search_users_grid_item { width:400px; height: 90px; border:1px dotted #ccc; float:left; padding:5px; margin:8px;}
.search_users_grid_element_0 { width:100px; float:left; text-align:center; margin-bottom:5px;}
.search_users_grid_element_1 { width:100px; float:left; text-align:center;margin-bottom:5px;}
.search_users_grid_element_2 { width:150px; float:left;}
.search_users_grid_selectbox { width:50%; float:left;}
.search_users_grid_title { width:30%; float:left;}
.search_users_grid_nav { float:right;}
#menu {
-moz-border-radius: 10px; border: 1px solid #e1e1e0;
-webkit-border-radius: 10px; border: 1px solid #e1e1e0;
-opera-border-radius: 10px; border: 1px solid #e1e1e0;
width:240px;
margin-top:40px;
margin-right:10px;
margin-bottom:40px;
padding-left:10px;
padding-right:20px;
padding-top:5px;
float: right;
min-height: 150px;
padding-bottom:30px;
}

@ -560,8 +560,7 @@ margin-top:0;
padding-top:30px;
float: right;
min-height: 150px;
padding-bottom:30px;
padding-bottom:30px;
}
@ -574,9 +573,8 @@ margin-top:0;
font-weight: bold;
padding-left: 12px;
}
.menusection {
margin: 24px 6px 0 6px;
.menusection {
margin: 0px 5px 0 6px;
padding-left: 10px;
width: auto;
}
@ -595,7 +593,7 @@ margin-top:0;
.menulist li{
float:left;
margin-left:10px;
/* margin-left:10px; */
margin-bottom:10px;
}
#centerwrap {
@ -2424,13 +2422,14 @@ padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;}
margin-left:20px;
}
/* styles from the my.profile.php file */
.message-content {
float:right;
margin:20px auto;
background:#E5EDF9;
border:2px solid #E5EDF9;
padding:10px;
width:200px;
margin:0px 10px;
background:#FFF;
border:1px dotted #ccc;
padding: 0px 10px 0 10px;
/* width:50%; */
position:relative;
}
.message-content .message-delete {
@ -2452,7 +2451,7 @@ padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;}
}
.message-title {
color:#ff0000;
font-size:15px;
font-size:12px;
}
.message-body {
font-size:11px;
@ -3068,9 +3067,6 @@ button.arrowl {
/* UI improvements for 1.8.6.2 this should be move to the chamilo theme and reproduce in all CSS*/
* {
outline :none;
}
@ -3121,16 +3117,23 @@ a.unread {
#inbox-wrapper {width:100%;}
#inbox {width:90%;float:left;}
#inbox {width:80%;float:right;}
#inbox-menu {
width:150px;
float:left;
}
#inbox-menu ul {
list-style-image:none;
list-style-position:outside;
list-style-type:none;
margin:0;
padding:0;
width:10%;
float:left;
padding:0px;
}
#inbox-menu ul li{
padding:2px 0px;
}
#message-reply-link {
@ -3171,7 +3174,7 @@ a.unread {
-moz-border-radius-bottomright:8px;
-moz-border-radius-topleft:8px;
-moz-border-radius-topright:8px;
background:#eee none repeat scroll 0 0;
background:#F5F5F5 none repeat scroll 0 0;
margin:0 0 5px;
padding:10px;
}
@ -3184,7 +3187,7 @@ a.unread {
-moz-border-radius-bottomright:8px;
-moz-border-radius-topleft:8px;
-moz-border-radius-topright:8px;
background:#ccc none repeat scroll 0 0;
background:#E6EEFB none repeat scroll 0 0;
margin:0 0 5px;
padding:10px;
@ -3203,7 +3206,8 @@ a.unread {
}
.message-group-content {
line-height:150%
line-height:150%;
margin: 5px 0px 8px 0px;
}
.view-message-content {
@ -3212,8 +3216,6 @@ a.unread {
}
.actions {
background:#efefef;
border:1px solid #ccc;
padding:2px;
@ -3221,9 +3223,7 @@ a.unread {
vertical-align:middle;
}
.actions-title {
.actions-title {
background:#efefef;
border:1px solid #ccc;
padding:4px;
@ -3233,3 +3233,61 @@ a.unread {
vertical-align:middle;
}
#group_description {
margin: 10px 0px 10px 0px;
}
#group_privacy {
margin: 10px 0px 10px 0px;
}
#group_permissions {
-moz-background-clip:border;
-moz-background-inline-policy:continuous;
-moz-background-origin:padding;
-moz-border-radius-bottomleft:8px;
-moz-border-radius-bottomright:8px;
-moz-border-radius-topleft:8px;
-moz-border-radius-topright:8px;
background:#EEE none repeat scroll 0 0;
margin: 20px 0px 20px 0px;
}
#group_permissions ul {
list-style-image:none;
list-style-position:outside;
list-style-type:none;
margin:0;
padding:0;
}
#group_permissions ul li {
margin: 10px 0px 10px 5px;
}
/* Groups boxes */
.groups_grid_container { width:100%;}
.groups_grid_item {
border:1px dotted #CCCCCC;
float:left;
height:85px;
margin:8px;
padding:5px;
width:300px;
}
.groups_grid_element_0 { width:100px; float:left; text-align:center; margin-bottom:5px;}
.groups_grid_element_1 { width:100px; float:left; text-align:left;margin-bottom:5px;}
.groups_grid_element_2 { width:150px; float:left;}
/* User boxes */
.search_users_grid_container { width:100%;}
.search_users_grid_item { width:400px; height: 90px; border:1px dotted #ccc; float:left; padding:5px; margin:8px;}
.search_users_grid_element_0 { width:100px; float:left; text-align:center; margin-bottom:5px;}
.search_users_grid_element_1 { width:100px; float:left; text-align:center;margin-bottom:5px;}
.search_users_grid_element_2 { width:150px; float:left;}
.search_users_grid_selectbox { width:50%; float:left;}
.search_users_grid_title { width:30%; float:left;}
.search_users_grid_nav { float:right;}

@ -315,7 +315,7 @@ class Display {
public static function display_sortable_grid ($name, $header, $content, $paging_options = array (), $query_vars = null, $form_actions=array(), $vibility_options = true) {
global $origin;
$column = 0;
$default_items_per_page = isset ($paging_options['per_page']) ? $paging_options['per_page'] : 20;
$default_items_per_page = isset ($paging_options['per_page']) ? $paging_options['per_page'] : 20;
$table = new SortableTableFromArray($content, $column, $default_items_per_page, $name);
if (is_array($query_vars)) {

@ -1,5 +1,5 @@
<?php
/* For licensing terms, see /dokeos_license.txt */
/* For licensing terms, see /chamilo_license.txt */
/**
==============================================================================
* This library provides functions for the access_url management.
@ -15,12 +15,9 @@ define('GROUP_PERMISSION_CLOSED', '2');
// Group user permissions
define('GROUP_USER_PERMISSION_ADMIN' ,'1'); // the admin of a group
define('GROUP_USER_PERMISSION_READER' ,'2'); // a normal user
define('GROUP_USER_PERMISSION_PENDING_INVITATION' ,'3'); // When an admin/moderator invite a user
define('GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER' ,'4'); // When a user whats to join to a group
define('GROUP_USER_PERMISSION_PENDING_INVITATION' ,'3'); // When an admin/moderator invites a user
define('GROUP_USER_PERMISSION_PENDING_INVITATION_SENT_BY_USER' ,'4'); // an user joins a group
define('GROUP_USER_PERMISSION_MODERATOR' ,'5'); // a moderator
define('GROUP_USER_PERMISSION_ANONYMOUS' ,'6'); // an anonymous user
class GroupPortalManager
@ -234,8 +231,6 @@ class GroupPortalManager
return $tags;
}
/**
* Gets the id, url, description, and active status of ALL URLs
* @author Julio Montoya
@ -288,24 +283,24 @@ class GroupPortalManager
}
/** Gets the inner join of users and group table
* @return int quantity of records
* @return bool show groups with image or not
* @return array with group content
* @author Julio Montoya
* @return int access url id
* @return array Database::store_result of the result
* */
public static function get_groups_by_popularity($num = 10, $with_image = false)
public static function get_groups_by_popularity($num = 6, $with_image = true)
{
$where = '';
$table_group_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_GROUP);
$tbl_group = Database::get_main_table(TABLE_MAIN_GROUP);
if (empty($num)) {
$num = 10;
$num = 6;
} else {
$num = intval($num);
}
// only show admins and readers
$where_relation_condition = " WHERE gu.relation_type IN ('".GROUP_USER_PERMISSION_ADMIN."' , '".GROUP_USER_PERMISSION_READER."') ";
$sql = "SELECT count(user_id) as count, g.picture_uri, g.name, g.description, g.id
FROM $tbl_group g
INNER JOIN $table_group_rel_user gu
@ -325,30 +320,25 @@ class GroupPortalManager
}
/** Gets the last groups created
* @author Julio Montoya
* @return int access url id
* @return array Database::store_result of the result
* @return int quantity of records
* @return bool show groups with image or not
* @return array with group content
* @author Julio Montoya
* */
public static function get_groups_by_age($num = 10, $with_image = false, $relation_type = GROUP_USER_PERMISSION_READER)
public static function get_groups_by_age($num = 6, $with_image = true)
{
$where = '';
$table_group_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_GROUP);
$tbl_group = Database::get_main_table(TABLE_MAIN_GROUP);
if (empty($num)) {
$num = 10;
$num = 6;
} else {
$num = intval($num);
}
// only show admins and readers
$where_relation_condition = " WHERE gu.relation_type IN ('".GROUP_USER_PERMISSION_ADMIN."' , '".GROUP_USER_PERMISSION_READER."') ";
}
$sql = "SELECT g.picture_uri, g.name, g.description, g.id
FROM $tbl_group g
INNER JOIN $table_group_rel_user gu
ON gu.group_id = g.id $where_relation_condition ORDER BY created_on desc LIMIT $num ";
ORDER BY created_on desc LIMIT $num ";
$result=Database::query($sql,__FILE__,__LINE__);
$array = array();
@ -1145,8 +1135,7 @@ class GroupPortalManager
//Group's description
echo '<div id="group-url">';
echo $group_info['url'];
echo '</div>';
echo '</div>';
//Privacy
echo '<div id="group_privacy">';
@ -1164,56 +1153,29 @@ class GroupPortalManager
echo get_lang('Tags').' : '.$tags;
echo '</div>';
}
/*//Compose message link
if (in_array($my_group_role, array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_MODERATOR, GROUP_USER_PERMISSION_READER))) {
echo '<div id="actions" style="margin:10px">';
echo '<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.'" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display :: return_icon('message_new.png', get_lang('NewTopic')).'&nbsp;'.get_lang('NewTopic').'</a>';
//echo '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?group_id='.$group_id.'">'.Display::return_icon('message_new.png',api_xml_http_response_encode(get_lang('ComposeMessage'))).api_xml_http_response_encode(get_lang('ComposeMessage')).'</a>';
echo '</div>';
}*/
//Members
echo get_lang('Members').' : ';
echo '<div id="group_members">';
foreach($users as $user) {
if (in_array($user['relation_type'] , array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_READER,GROUP_USER_PERMISSION_MODERATOR))) {
if ($user['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
$user['lastname'].= Display::return_icon('admin_star.png', get_lang('Admin'));
}
if ($user['relation_type'] == GROUP_USER_PERMISSION_MODERATOR) {
$user['lastname'].= Display::return_icon('moderator_star.png', get_lang('Moderator'));
}
echo '<div class="group_member_item"><a href="profile.php?u='.$user['user_id'].'">';
echo '<div class="group_member_picture">'.$user['image'].'</div>';
echo api_get_person_name($user['firstname'], $user['lastname']).'</a></div>';
}
}
echo '</div>';
//loading group permission
echo '<div id="group_permissions">';
echo '<div id="group_permissions" class="actions">';
echo '<ul>';
switch ($my_group_role) {
case GROUP_USER_PERMISSION_READER:
// I'm just a reader
echo '<li><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.'" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display :: return_icon('message_new.png', get_lang('NewTopic')).'&nbsp;'.get_lang('NewTopic').'</a></li>';
echo get_lang('IamAReader');
echo '<li><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.'" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display::return_icon('message_new.png', get_lang('NewTopic')).'&nbsp;'.get_lang('NewTopic').'</a></li>';
echo '<li><a href="groups.php?id='.$group_id.'&action=leave&u='.api_get_user_id().'">'.get_lang('LeaveGroup').'</a></li>';
echo '<li><a href="group_invitation.php?id='.$group_id.'">'.get_lang('InviteFriends').'</a></li>';
break;
case GROUP_USER_PERMISSION_ADMIN:
echo 'Im the admin/';
echo '<li><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.'" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display :: return_icon('message_new.png', get_lang('NewTopic')).'&nbsp;'.get_lang('NewTopic').'</a></li>';
echo get_lang('IamAnAdmin');
echo '<li><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.'" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display::return_icon('message_new.png', get_lang('NewTopic')).'&nbsp;'.get_lang('NewTopic').'</a></li>';
echo '<li><a href="group_edit.php?id='.$group_id.'">'.get_lang('EditGroup').'</a>';
echo '<li><a href="group_members.php?id='.$group_id.'">'.get_lang('MemberList').'</a>';
echo '<li><a href="group_waiting_list.php?id='.$group_id.'">'.get_lang('WaitingList').'</a></li>';
echo '<li><a href="group_invitation.php?id='.$group_id.'">'.get_lang('InviteFriends').'</a></li>';
echo '<li><a href="group_edit.php?id='.$group_id.'">'. Display::return_icon('edit.gif', get_lang('EditGroup')).'&nbsp;'.get_lang('EditGroup').'</a></li>';
echo '<li><a href="group_members.php?id='.$group_id.'">'. Display::return_icon('coachs.gif', get_lang('MemberList')).'&nbsp;'.get_lang('MemberList').'</a></li>';
echo '<li><a href="group_waiting_list.php?id='.$group_id.'">'. Display::return_icon('group_na.gif', get_lang('WaitingList')).'&nbsp;'.get_lang('WaitingList').'</a></li>';
echo '<li><a href="group_invitation.php?id='.$group_id.'">'. Display::return_icon('login_as.gif', get_lang('InviteFriends')).'&nbsp;'.get_lang('InviteFriends').'</a></li>';
break;
case GROUP_USER_PERMISSION_PENDING_INVITATION:
echo '<li><a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang(YouHaveBeenInvitedJoinNow).'</a></li>';
@ -1222,8 +1184,8 @@ class GroupPortalManager
echo get_lang('WaitingForAdminResponse');
break;
case GROUP_USER_PERMISSION_MODERATOR:
echo '<li><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.'" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display :: return_icon('message_new.png', get_lang('NewTopic')).'&nbsp;'.get_lang('NewTopic').'</a></li>';
echo get_lang('IamAModerator');
echo '<li><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.'" class="thickbox" title="'.get_lang('ComposeMessage').'">'.Display::return_icon('message_new.png', get_lang('NewTopic')).'&nbsp;'.get_lang('NewTopic').'</a></li>';
echo '<li><a href="group_members.php?id='.$group_id.'">'.get_lang('MemberList').'</a></li>';
echo '<li><a href="group_waiting_list.php?id='.$group_id.'">'.get_lang('WaitingList').'</a></li>';
echo '<li><a href="group_invitation.php?id='.$group_id.'">'.get_lang('InviteFriends').'</a></li>';
@ -1234,6 +1196,27 @@ class GroupPortalManager
echo '</ul>';
echo '</div>'; // end layout permissions
//Members
echo get_lang('Members').' : ';
echo '<div id="group_members">';
foreach($users as $user) {
if (in_array($user['relation_type'] , array(GROUP_USER_PERMISSION_ADMIN, GROUP_USER_PERMISSION_READER,GROUP_USER_PERMISSION_MODERATOR))) {
if ($user['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
$user['lastname'].= Display::return_icon('admin_star.png', get_lang('Admin'));
}
if ($user['relation_type'] == GROUP_USER_PERMISSION_MODERATOR) {
$user['lastname'].= Display::return_icon('moderator_star.png', get_lang('Moderator'));
}
echo '<div class="group_member_item"><a href="profile.php?u='.$user['user_id'].'">';
echo '<div class="group_member_picture">'.$user['image'].'</div>';
echo api_get_person_name($user['firstname'], $user['lastname']).'</a></div>';
}
}
echo '</div>';
echo '</div>'; // end layout left

@ -701,6 +701,7 @@ class SocialManager extends UserManager {
$name = api_get_person_name($user_info['firstName'], $user_info['lastName']);
$table_row[] = '<a href="'.$url.'"><img title = "'.$name.'" alt="'.$name.'" src="'.$friends_profile['file'].'" '.$friends_profile['style'].' border="1"></a>';
$table_row[] = '<a href="'.$url.'" style="font-size:10px;">'.api_get_person_name($user_info['firstName'], $user_info['lastName']).'</a>';
//$table_row[] = '<a href="'.$url.'">'.$user_info['lastName'].'</a>';

@ -479,20 +479,6 @@ class SortableTable extends HTML_Table {
}
}
// @todo This style css must be moved to default.css only for dev
echo '<style>
.search_users_grid_container { width:100%;}
.search_users_grid_item { width:400px; height: 90px; border:1px dotted #ccc; float:left; padding:5px; margin:8px;}
.search_users_grid_element_0 { width:100px; float:left; text-align:center; margin-bottom:5px;}
.search_users_grid_element_1 { width:100px; float:left; text-align:center;margin-bottom:5px;}
.search_users_grid_element_2 { width:150px; float:left;}
.search_users_grid_selectbox { width:50%; float:left;}
.search_users_grid_title { width:30%; float:left;}
.search_users_grid_nav { float:right;}
</style>';
if ($hide_navigation == true ) {
$items = $this->table_data; //this is a faster way to get what we want
} else {

@ -37,8 +37,7 @@ $nameTools = api_xml_http_response_encode(get_lang('Messages'));
*/
$htmlHeadXtra[]='
<script language="javascript">
function validate(form,list)
{
function validate(form,list) {
if(list.selectedIndex<0)
{
alert("Please select someone to send the message to.")
@ -110,29 +109,37 @@ function show_compose_to_any ($user_id) {
function show_compose_reply_to_message ($message_id, $receiver_id) {
global $charset;
$table_message = Database::get_main_table(TABLE_MESSAGE);
$query = "SELECT * FROM $table_message WHERE user_receiver_id=".$receiver_id." AND id='".$message_id."';";
$query = "SELECT user_sender_id FROM $table_message WHERE user_receiver_id=".intval($receiver_id)." AND id='".intval($message_id)."';";
$result = Database::query($query,__FILE__,__LINE__);
$row = Database::fetch_array($result);
if (!isset($row[1])) {
$row = Database::fetch_array($result,'ASSOC');
if (!isset($row['user_sender_id'])) {
echo get_lang('InvalidMessageId');
die();
}
echo api_xml_http_response_encode(get_lang('To').':&nbsp;<strong>'. GetFullUserName($row[1]).'</strong>');
$default['title'] = api_xml_http_response_encode(get_lang('EnterTitle'));
$default['user_list'] = $row[1];
$pre_html = '<div class="row">
<div class="label">'.get_lang('SendMessageTo').'</div>
<div class="formw">';
$post = '</div></div>';
$multi_select = '<select id="users" name="users">
</select>';
echo $pre_html.'<strong>'.GetFullUserName($row['user_sender_id']).'</strong>'.$post;
//echo get_lang('To').':&nbsp;<strong>'. GetFullUserName($row['user_sender_id']).'</strong>';
//$default['title'] = get_lang('EnterTitle');
$default['users'] = array($row['user_sender_id']);
manage_form($default);
}
function show_compose_to_user ($receiver_id) {
global $charset;
echo get_lang('To').':&nbsp;<strong>'. GetFullUserName($receiver_id).'</strong>';
$default['title'] = api_xml_http_response_encode(get_lang('EnterTitle'));
$default['user_list'] = $receiver_id;
$default['title'] = api_xml_http_response_encode(get_lang('EnterTitle'));
$default['users'] = array($receiver_id);
manage_form($default);
}
function manage_form ($default, $select_from_user_list = null) {
global $charset;
$table_message = Database::get_main_table(TABLE_MESSAGE);
@ -140,47 +147,26 @@ function manage_form ($default, $select_from_user_list = null) {
$message_id = intval($_GET['message_id']);
$form = new FormValidator('compose_message',null,null,null,array('enctype'=>'multipart/form-data'));
if (empty($group_id)) {
if (empty($group_id)) {
if (isset($select_from_user_list)) {
$form->add_textfield('id_text_name', get_lang('SendMessageTo'),true,array('size' => 40,'id'=>'id_text_name','onkeyup'=>'send_request_and_search()','autocomplete'=>'off','style'=>'padding:0px'));
$form->addRule('id_text_name', get_lang('ThisFieldIsRequired'), 'required');
$form->addElement('html','<div id="id_div_search" style="padding:0px" class="message-select-box" >&nbsp;</div>');
$form->addElement('hidden','user_list',0,array('id'=>'user_list'));
} else {
if (count($default['users'])==0) {
if (empty($default['users'])) {
//the magic should be here
$pre_html = '<div class="row">
<div class="label">'.get_lang('SendTo').'</div>
<div class="formw">';
$post = '</div></div>';
$multi_select = '<select id="users" name="users">
</select>';
$form->addElement('html',$pre_html.$multi_select.$post );
$url = api_get_path(WEB_CODE_PATH).'user';
//if cache is set to true the jquery will be called 1 time
$jquery_ready_content.= <<<EOF
$("#extra_$field_details[1]").fcbkcomplete({
json_url: "$url/$field_details[1].php?field_id=$field_details[0]",
cache: false,
filter_case: true,
filter_hide: true,
firstselected: true,
//onremove: "testme",
//onselect: "testme",
filter_selected: true,
newel: true
});
EOF;
$pre_html = '<div class="row">
<div class="label">'.get_lang('SendMessageTo').'</div>
<div class="formw">';
$post = '</div></div>';
$multi_select = '<select id="users" name="users">
</select>';
$form->addElement('html',$pre_html.$multi_select.$post );
// $form->add_textfield('id_text_name', get_lang('SendMessageTo'),true,array('size' => 40,'id'=>'id_text_name','onkeyup'=>'send_request_and_search()','autocomplete'=>'off','style'=>'padding:0px'));
// $form->addRule('id_text_name', get_lang('ThisFieldIsRequired'), 'required');
// $form->addElement('html','<div id="id_div_search" style="padding:0px" class="message-select-box" >&nbsp;</div>');
} else {
$form->addElement('hidden','hidden_user',$default['users'][0],array('id'=>'hidden_user'));
}
//$form->addElement('hidden','user_list',0,array('id'=>'user_list'));
}
} else {
$group_info = GroupPortalManager::get_group_data($group_id);
@ -188,7 +174,7 @@ EOF;
$form->addElement('hidden','group_id',$group_id);
$form->addElement('hidden','parent_id',$message_id);
}
$form->add_textfield('title', api_xml_http_response_encode(get_lang('Title')));
$form->add_textfield('title', get_lang('Title'),true ,array('size' => 75));
//$form->add_html_editor('content', '', false, false, array('ToolbarSet' => 'Messages', 'Width' => '95%', 'Height' => '250'));
$form->addElement('textarea','content', get_lang('Message'), array('cols' => 75,'rows'=>5));
@ -215,22 +201,21 @@ EOF;
}
$form->setDefaults($default);
if ($form->validate()) {
$values = $default;
$user_list = $values['users'];
$file_comments = $_POST['legend'];
$title = $values['title'];
$content = $values['content'];
$values = $default;
$user_list = $values['users'];
$file_comments = $_POST['legend'];
$title = $values['title'];
$content = $values['content'];
$group_id = $values['group_id'];
$parent_id = $values['parent_id'];
$group_id = $values['group_id'];
$parent_id = $values['parent_id'];
if (is_array($user_list) && count($user_list)> 0) {
//all is well, send the message
foreach ($user_list as $user) {
MessageManager::send_message($user, $title, $content, $_FILES, $file_comments, $group_id, $parent_id);
MessageManager::display_success_message($user);
}
}
}
} else {
$form->display();
}
@ -287,9 +272,9 @@ if ($group_id != 0) {
echo '<div id="inbox-wrapper">';
echo '<div id="inbox-wrapper" >';
//LEFT COLUMN
echo '<div id="inbox-menu">';
echo '<div id="inbox-menu" class="actions" >';
echo '<ul>';
echo '<li><a href="'.api_get_path(WEB_PATH).'main/messages/inbox.php'.$social_parameter.'">'.Display::return_icon('inbox.png',get_lang('Inbox')).get_lang('Inbox').'</a>'.'</li>';
echo '<li><a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php'.$social_parameter.'">'.Display::return_icon('message_new.png',get_lang('ComposeMessage')).get_lang('ComposeMessage').'</a>'.'</li>';
@ -301,38 +286,42 @@ echo '<div id="inbox-wrapper">';
//MAIN CONTENT
if (!isset($_POST['compose'])) {
if (!isset($_POST['compose'])) {
if(isset($_GET['re_id'])) {
$message_id = $_GET['re_id'];
$receiver_id = api_get_user_id();
show_compose_reply_to_message($message_id, $receiver_id);
show_compose_reply_to_message($_GET['re_id'], api_get_user_id());
} elseif(isset($_GET['send_to_user'])) {
show_compose_to_user($_GET['send_to_user']);
} else {
show_compose_to_any($_user['user_id']);
}
} else {
}
} else {
$restrict = false;
if (isset($_POST['users'])) {
$restrict = $_POST['users'];
} else if (isset($_POST['group_id'])) {
$restrict = $_POST['group_id'];
}
$restrict = true;
} elseif (isset($_POST['group_id'])) {
$restrict = true;
} elseif(isset($_POST['hidden_user'])) {
$restrict = true;
}
if (isset($_GET['re_id'])) {
$default['title'] = api_xml_http_response_encode($_POST['title']);
$default['content'] = api_xml_http_response_encode($_POST['content']);
$default['title'] = $_POST['title'];
$default['content'] = $_POST['content'];
// comes from a reply button
if (isset($_GET['re_id'])) {
manage_form($default);
} else {
if ($restrict) {
$default['title'] = api_xml_http_response_encode($_POST['title']);
} else {
// post
if ($restrict) {
if (!isset($_POST['group_id'])) {
$default['users'] = $_POST['users'];
} else {
$default['group_id'] = $_POST['group_id'];
}
if (isset($_POST['hidden_user'])) {
$default['users'] = array($_POST['hidden_user']);
}
manage_form($default);
} else {
Display::display_error_message(get_lang('ErrorSendingMessage'));
@ -350,4 +339,4 @@ echo '</div>';
*/
Display::display_footer();
?>
?>

@ -136,7 +136,7 @@ if ($group_id != 0 ) {
// Newest groups --------
$results = GroupPortalManager::get_groups_by_age(10 , true);
$results = GroupPortalManager::get_groups_by_age();
$groups = array();
foreach ($results as $result) {
$id = $result['id'];
@ -146,12 +146,12 @@ if ($group_id != 0 ) {
}
if (count($groups) > 0) {
echo '<h1>'.get_lang('Newest').'</h1>';
Display::display_sortable_grid('search_users', array(), $groups, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,false));
Display::display_sortable_grid('groups', array(), $groups, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,false));
}
// Pop groups -----
$results = GroupPortalManager::get_groups_by_popularity(10 , true);
$results = GroupPortalManager::get_groups_by_popularity();
$groups = array();
foreach ($results as $result) {
$id = $result['id'];
@ -168,7 +168,7 @@ if ($group_id != 0 ) {
}
if (count($groups) > 0) {
echo '<h1>'.get_lang('Popular').'</h1>';
Display::display_sortable_grid('search_users', array(), $groups, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,true,true));
Display::display_sortable_grid('groups', array(), $groups, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,true,true));
}
@ -190,7 +190,7 @@ if ($group_id != 0 ) {
echo '<h1>'.get_lang('MyGroups').'</h1>';
echo '<a href="group_add.php">'.get_lang('CreateAgroup').'</a>';
if (count($groups) > 0) {
Display::display_sortable_grid('search_users', array(), $groups, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,false));
Display::display_sortable_grid('groups', array(), $groups, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,false));
}
}
Display :: display_footer();

@ -18,6 +18,9 @@ $interbreadcrumb[]= array ('url' =>'profile.php','name' => get_lang('Social'));
$interbreadcrumb[]= array ('url' =>'#','name' => get_lang('Invitations'));
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.js" type="text/javascript" language="javascript"></script>'; //jQuery
$htmlHeadXtra[] = '<script type="text/javascript" src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/thickbox.js"></script>';
$htmlHeadXtra[] = '<link rel="stylesheet" href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/thickbox.css" type="text/css" media="projection, screen">';
$htmlHeadXtra[] = '
<script type="text/javascript">
@ -213,9 +216,11 @@ if (count($pending_invitations) > 0) {
$invitation['name'] = '<a href="groups.php?id='.$invitation['id'].'">'.$invitation['name'].'</a>';
$invitation['join'] = '<a href="invitations.php?accept='.$invitation['id'].'">'.get_lang('AcceptInvitation').'</a>';
$invitation['deny'] = '<a href="invitations.php?deny='.$invitation['id'].'">'.get_lang('DenyInvitation').'</a>';
$invitation['send_message'] = '<a href="'.api_get_path(WEB_PATH).'main/messages/send_message_to_userfriend.inc.php?height=300&width=610&user_friend='.$invitation['id'].'&view=profile&view_panel=1" class="thickbox" title="'.get_lang('SendMessage').'">';
$invitation['send_message'] .= Display::return_icon('message_new.png').'&nbsp;&nbsp;'.get_lang('SendMessage').'</a>';
$new_invitation[]=$invitation;
}
Display::display_sortable_grid('search_users', array(), $new_invitation, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,false,false,true,true));
Display::display_sortable_grid('search_users', array(), $new_invitation, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, true, true,false,false,true,true,true,true));
}
Display::display_footer();

@ -465,7 +465,7 @@ echo '<div id="social-profile-container">';
echo '<br/>';
echo '<div class="actions" style="margin-right:5px;">';
echo '&nbsp;<a href="/main/messages/send_message_to_userfriend.inc.php?height=300&width=610&user_friend='.$user_id.'&view=profile&view_panel=1" class="thickbox" title="'.get_lang('SendMessage').'">';
echo '&nbsp;<a href="'.api_get_path(WEB_PATH).'main/messages/send_message_to_userfriend.inc.php?height=300&width=610&user_friend='.$user_id.'&view=profile&view_panel=1" class="thickbox" title="'.get_lang('SendMessage').'">';
echo Display::return_icon('message_new.png').'&nbsp;&nbsp;'.get_lang('SendMessage').'</a><br />';
//check if I already sent an invitation message
@ -475,7 +475,7 @@ echo '<div id="social-profile-container">';
echo '<a href="'.api_get_path(WEB_PATH).'main/social/invitations.php">'.get_lang('YouAlreadySentAnInvitation').'</a>';
} else {
if (!$show_full_profile) {
echo '&nbsp;<a href="/main/messages/send_message_to_userfriend.inc.php?view_panel=2&height=260&width=610&user_friend='.$user_id.'" class="thickbox" title="'.get_lang('SendInvitation').'">'.Display :: return_icon('add_multiple_users.gif', get_lang('SocialInvitationToFriends')).'&nbsp;'.get_lang('SendInvitation').'</a>';
echo '&nbsp;<a href="'.api_get_path(WEB_PATH).'main/messages/send_message_to_userfriend.inc.php?view_panel=2&height=260&width=610&user_friend='.$user_id.'" class="thickbox" title="'.get_lang('SendInvitation').'">'.Display :: return_icon('add_multiple_users.gif', get_lang('SocialInvitationToFriends')).'&nbsp;'.get_lang('SendInvitation').'</a>';
}
}

Loading…
Cancel
Save