Bläddra i källkod

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

Julio Montoya 15 år sedan
förälder
incheckning
1da6d26bda

+ 76 - 11
main/css/blue_lagoon/default.css

@@ -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;	
+
+}

+ 85 - 27
main/css/chamilo/default.css

@@ -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;}

+ 1 - 1
main/inc/lib/display.lib.php

@@ -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)) {

+ 49 - 66
main/inc/lib/group_portal_manager.lib.php

@@ -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	
 	

+ 1 - 0
main/inc/lib/social.lib.php

@@ -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>';
 	

+ 0 - 14
main/inc/lib/sortabletable.class.php

@@ -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 {

+ 63 - 74
main/messages/new_message.php

@@ -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();
 
-?>
+?>

+ 5 - 5
main/social/groups.php

@@ -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();

+ 6 - 1
main/social/invitations.php

@@ -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();

+ 2 - 2
main/social/profile.php

@@ -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>';
 	  			}
 	  		}