skala
Julio Montoya Armas 15 years ago
commit afbdbda9df
  1. 48
      main/admin/add_users_to_group.php
  2. 2
      main/admin/group_add.php
  3. 1
      main/admin/group_edit.php
  4. 2
      main/inc/header.inc.php
  5. 48
      main/inc/lib/group_portal_manager.lib.php
  6. 8
      main/inc/lib/main_api.lib.php
  7. 128
      main/inc/lib/social.lib.php
  8. 76
      main/messages/message.class.php
  9. 38
      main/messages/send_message.php
  10. 4
      main/messages/send_message_to_userfriend.inc.php
  11. 68
      main/social/group_add.php
  12. 5
      main/social/group_edit.php
  13. 76
      main/social/group_members.php
  14. 94
      main/social/groups.php
  15. 245
      main/social/invitations.php
  16. 23
      main/social/profile.php
  17. 13
      main/social/register_friend.php

@ -44,15 +44,6 @@ if(isset($_REQUEST['add_type']) && $_REQUEST['add_type']!=''){
$add_type = Security::remove_XSS($_REQUEST['add_type']);
}
/*
if (!api_is_platform_admin()) {
$sql = 'SELECT session_admin_id FROM '.Database :: get_main_table(TABLE_MAIN_SESSION).' WHERE id='.$id_session;
$rs = Database::query($sql,__FILE__,__LINE__);
if(Database::result($rs,0,0)!=$_user['user_id']) {
api_not_allowed(true);
}
}*/
//checking for extra field with filter on
include_once (api_get_path(LIBRARY_PATH).'usermanager.lib.php');
include_once (api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php');
@ -203,49 +194,30 @@ $UserList=$SessionList=array();
$users=$sessions=array();
$noPHP_SELF=true;
$group_info = GroupPortalManager::get_group_data($group_id);
Display::display_header($tool_name);
//api_display_tool_title($tool_name.' ('.$session_info['name'].')');
if($_POST['form_sent']) {
$form_sent = $_POST['form_sent'];
$firstLetterUser = $_POST['firstLetterUser'];
$firstLetterSession = $_POST['firstLetterSession'];
$UserList = $_POST['sessionUsersList'];
$ClassList = $_POST['sessionClassesList'];
$ClassList = $_POST['sessionClassesList'];
$group_id = intval($_POST['id']);
if(!is_array($UserList)) {
$UserList=array();
}
if ($form_sent == 1) {
if ($form_sent == 1) {
GroupPortalManager::delete_users($group_id);
$result = GroupPortalManager::add_users_to_groups($UserList, array($group_id));
//SessionManager::suscribe_users_to_session($id_session,$UserList,true,true);
//adding the session to the access_url_rel_session table
/*global $_configuration;
require_once (api_get_path(LIBRARY_PATH).'urlmanager.lib.php');
if ($_configuration['multiple_access_urls']==true) {
$tbl_user_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$access_url_id = api_get_current_access_url_id();
UrlManager::add_session_to_url($id_session,$access_url_id);
} else {
// we are filling by default the access_url_rel_session table
UrlManager::add_session_to_url($id_session,1);
}*/
//if(empty($_GET['add']))
//header('Location: '.Security::remove_XSS($_GET['page']).'?id_session='.$id_session);
//else
header('Location: group_list.php');
Display :: display_confirmation_message(get_lang('UsersEdited'));
}
}
$group_info = GroupPortalManager::get_group_data($group_id);
Display::display_header($tool_name);
//api_display_tool_title($tool_name.' ('.$session_info['name'].')');
$nosessionUsersList = $sessionUsersList = array();
/*$sql = 'SELECT COUNT(1) FROM '.$tbl_user;
$rs = Database::query($sql, __FILE__, __LINE__);
@ -477,7 +449,7 @@ if(!empty($errorMsg)) {
<td align="center"><b><?php echo get_lang('UserListInPlatform') ?> :</b>
</td>
<td></td>
<td align="center"><b><?php echo get_lang('UserListInSession') ?> :</b></td>
<td align="center"><b><?php echo get_lang('UserListInGroup') ?> :</b></td>
</tr>
<?php if ($add_type=='multiple') { ?>

@ -68,6 +68,8 @@ $form->addRule('picture', get_lang('OnlyImagesAllowed').' ('.implode(',', $allow
$status = array();
$status[GROUP_PERMISSION_OPEN] = get_lang('Open');
$status[GROUP_PERMISSION_CLOSED] = get_lang('Closed');
$status[GROUP_PERMISSION_APPROVAL_NEEDED] = get_lang('ApprovalNeeded');
$form->addElement('select', 'visibility', get_lang('GroupPermissions'), $status);
// Set default values

@ -71,6 +71,7 @@ if (strlen($group_data['picture_uri']) > 0) {
$status = array();
$status[GROUP_PERMISSION_OPEN] = get_lang('Open');
$status[GROUP_PERMISSION_CLOSED] = get_lang('Closed');
$status[GROUP_PERMISSION_APPROVAL_NEEDED] = get_lang('ApprovalNeeded');
$form->addElement('select', 'visibility', get_lang('GroupPermissions'), $status, array());

@ -219,4 +219,4 @@ include(api_get_path(LIBRARY_PATH).'/javascript/email_links.lib.js.php');
<?php
// Banner
include api_get_path(INCLUDE_PATH).'banner.inc.php';
require_once api_get_path(INCLUDE_PATH).'banner.inc.php';

@ -11,9 +11,11 @@
define('GROUP_PERMISSION_OPEN' , '1');
define('GROUP_PERMISSION_CLOSED', '2');
define('GROUP_PERMISSION_APPROVAL_NEEDED', '3');
define('GROUP_USER_PERMISSION_ADMIN' ,'1');
define('GROUP_USER_PERMISSION_READER' ,'2');
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'); // user pending invitation to a group
class GroupPortalManager
{
@ -257,7 +259,7 @@ class GroupPortalManager
$where_relation_condition = "AND gu.relation_type = $relation_type ";
}
$sql = "SELECT g.picture_uri, g.name, g.description, g.id
$sql = "SELECT g.picture_uri, g.name, g.description, g.id , gu.relation_type
FROM $tbl_group g
INNER JOIN $table_group_rel_user gu
ON gu.group_id = g.id WHERE gu.user_id = $user_id $where_relation_condition ORDER BY created_on desc ";
@ -345,12 +347,14 @@ class GroupPortalManager
}
function get_users_by_group($group_id='', $with_image = false)
function get_users_by_group($group_id='', $with_image = false, $relation_type = 0, $limit = 100)
{
$where = '';
$table_group_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_GROUP);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$group_id = intval($group_id);
$limit = intval($limit);
if ($relation_type == 0) {
$where_relation_condition = '';
@ -359,9 +363,9 @@ class GroupPortalManager
$where_relation_condition = "AND gu.relation_type = $relation_type ";
}
$sql="SELECT u.user_id, u.firstname, u.lastname, picture_uri, relation_type FROM $tbl_user u
$sql="SELECT picture_uri, u.user_id, u.firstname, u.lastname, relation_type FROM $tbl_user u
INNER JOIN $table_group_rel_user gu
ON (gu.user_id = u.user_id) WHERE gu.group_id= $group_id $where_relation_condition ORDER BY relation_type, firstname";
ON (gu.user_id = u.user_id) WHERE gu.group_id= $group_id $where_relation_condition ORDER BY relation_type, firstname LIMIT $limit";
$result=Database::query($sql,__FILE__,__LINE__);
$array = array();
@ -708,6 +712,38 @@ class GroupPortalManager
}
}
}
/**
* Updates the group_rel_user table with a given user and group ids
* @author Julio Montoya
* @param int user id
* @param int group id
* @param int relation type
* */
function update_user_permission($user_id, $group_id, $relation_type = GROUP_USER_PERMISSION_READER)
{
$table_group_rel_user = Database :: get_main_table(TABLE_MAIN_USER_REL_GROUP);
$group_id = intval($group_id);
$user_id = intval($user_id);
$sql = "UPDATE $table_group_rel_user
SET relation_type = ".intval($relation_type)." WHERE user_id = $user_id AND group_id = $group_id" ;
$result = Database::query($sql, __FILE__, __LINE__);
}
function get_group_admin_list($user_id, $group_id)
{
$table_group_rel_user = Database :: get_main_table(TABLE_MAIN_USER_REL_GROUP);
$group_id = intval($group_id);
$user_id = intval($user_id);
$sql = "UPDATE $table_group_rel_user
SET relation_type = ".intval($relation_type)." WHERE user_id = $user_id AND group_id = $group_id" ;
$result = Database::query($sql, __FILE__, __LINE__);
}
/**

@ -674,7 +674,7 @@ function api_protect_admin_script($allow_sessions_admins = false) {
function api_block_anonymous_users() {
global $_user;
if (!(isset($_user['user_id']) && $_user['user_id']) || api_is_anonymous($_user['user_id'], true)) {
include api_get_path(INCLUDE_PATH).'header.inc.php';
require_once api_get_path(INCLUDE_PATH).'header.inc.php';
api_not_allowed();
return false;
}
@ -1010,7 +1010,7 @@ function api_session_start($already_installed = true) {
$storeSessionInDb = false;
}
if ($storeSessionInDb && function_exists('session_set_save_handler')) {
include_once api_get_path(LIBRARY_PATH).'session_handler.class.php';
require_once api_get_path(LIBRARY_PATH).'session_handler.class.php';
$session_handler = new session_handler();
@session_set_save_handler(array(& $session_handler, 'open'), array(& $session_handler, 'close'), array(& $session_handler, 'read'), array(& $session_handler, 'write'), array(& $session_handler, 'destroy'), array(& $session_handler, 'garbage'));
}
@ -2165,7 +2165,7 @@ function api_not_allowed($print_headers = false) {
if ($print_headers && $origin != 'learnpath') { Display::display_footer(); }
die();
}
include_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
$form = new FormValidator('formLogin', 'post', api_get_self().'?'.$_SERVER['QUERY_STRING']);
$form->addElement('static', null, null, 'Username');
$form->addElement('text', 'login', '', array('size' => USERNAME_MAX_LENGTH));
@ -2810,7 +2810,7 @@ function api_plugin($location) {
global $_plugins;
if (isset($_plugins[$location]) && is_array($_plugins[$location])) {
foreach ($_plugins[$location] as $this_plugin) {
include api_get_path(SYS_PLUGIN_PATH)."$this_plugin/index.php";
require_once api_get_path(SYS_PLUGIN_PATH)."$this_plugin/index.php";
}
}
}

@ -1,12 +1,16 @@
<?php //$id: $
/* For licensing terms, see /dokeos_license.txt */
define(USERUNKNOW,0);
define(SOCIALUNKNOW,1);
define(SOCIALPARENT,2);
define(SOCIALFRIEND,3);
define(SOCIALGOODFRIEND,4);
define(SOCIALENEMY,5);
define(SOCIALDELETED,6);
// Relation type between users
define('USERUNKNOW', '0');
define('SOCIALUNKNOW', '1');
define('SOCIALPARENT', '2');
define('SOCIALFRIEND', '3');
define('SOCIALGOODFRIEND','4');
define('SOCIALENEMY', '5');
define('SOCIALDELETED', '6');
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
class SocialManager extends UserManager {
@ -17,27 +21,33 @@ class SocialManager extends UserManager {
/**
* Allow to register contact to social network
* @author isaac flores paz <isaac.flores@dokeos.com>
* @author Julio Montoya <gugli100@gmail.com> Cleaning code
* @param int user friend id
* @param int user id
* @param int kind of relation between users
* @param int relation between users see constants definition
* @return void
*/
public static function register_friend ($friend_id,$my_user_id,$relation_type) {
public static function register_friend ($friend_id,$my_user_id,$relation_type) {
$tbl_my_friend = Database :: get_main_table(TABLE_MAIN_USER_FRIEND);
$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE friend_user_id=' . ((int)$friend_id).' AND user_id='.((int)$my_user_id);
$friend_id = intval($friend_id);
$my_user_id = intval($my_user_id);
$relation_type = intval($relation_type);
$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE friend_user_id=' .$friend_id.' AND user_id='.$my_user_id;
error_log($sql);
$result = Database::query($sql, __FILE__, __LINE__);
$row = Database :: fetch_array($result, 'ASSOC');
if ($row['count'] == 0) {
$current_date=date('Y-m-d H:i:s');
$sql_i = 'INSERT INTO ' . $tbl_my_friend . '(friend_user_id,user_id,relation_type,last_edit)values(' . ((int)$friend_id) . ','.((int)$my_user_id).','.((int)$relation_type).',"'.$current_date.'");';
$sql_i = 'INSERT INTO ' . $tbl_my_friend . '(friend_user_id,user_id,relation_type,last_edit)values(' . $friend_id . ','.$my_user_id.','.$relation_type.',"'.$current_date.'");';
Database::query($sql_i, __FILE__, __LINE__);
} else {
$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE friend_user_id=' . ((int)$friend_id) . ' AND user_id='.((int)$my_user_id);
$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE friend_user_id=' . $friend_id . ' AND user_id='.$my_user_id;
$result = Database::query($sql, __FILE__, __LINE__);
$row = Database :: fetch_array($result, 'ASSOC');
if ($row['count'] == 1) {
$sql_i = 'UPDATE ' . $tbl_my_friend . ' SET relation_type='.((int)$relation_type).' WHERE friend_user_id=' . ((int)$friend_id).' AND user_id='.((int)$my_user_id);
$sql_i = 'UPDATE ' . $tbl_my_friend . ' SET relation_type='.$relation_type.' WHERE friend_user_id=' . $friend_id.' AND user_id='.$my_user_id;
Database::query($sql_i, __FILE__, __LINE__);
}
}
@ -46,23 +56,26 @@ class SocialManager extends UserManager {
/**
* Allow to delete contact to social network
*@author isaac flores paz <isaac.flores@dokeos.com>
*@author Julio Montoya <gugli100@gmail.com> Cleaning code
*@param int user friend id
*@return void
*/
public static function removed_friend ($friend_id) {
$tbl_my_friend = Database :: get_main_table(TABLE_MAIN_USER_FRIEND);
$tbl_my_friend = Database :: get_main_table(TABLE_MAIN_USER_FRIEND);
$tbl_my_message = Database :: get_main_table(TABLE_MAIN_MESSAGE);
$user_id=api_get_user_id();
$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE user_id=' . ((int)$user_id) . ' AND relation_type<>6 AND friend_user_id='.((int)$friend_id);
$friend_id = intval($friend_id);
$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE user_id=' . $user_id . ' AND relation_type<>6 AND friend_user_id='.$friend_id;
$result = Database::query($sql, __FILE__, __LINE__);
$row = Database :: fetch_array($result, 'ASSOC');
if ($row['count'] == 1) {
//Delete user friend
$sql_i = 'UPDATE ' . $tbl_my_friend . ' SET relation_type=6 WHERE user_id=' . ((int)$user_id).' AND friend_user_id='.((int)$friend_id);
$sql_j = 'UPDATE ' . $tbl_my_message . ' SET msg_status=7 WHERE user_receiver_id=' . ((int)$user_id).' AND user_sender_id='.((int)$friend_id);
$sql_i = 'UPDATE ' . $tbl_my_friend .' SET relation_type='.SOCIALDELETED.' WHERE user_id=' . $user_id.' AND friend_user_id='.$friend_id;
$sql_j = 'UPDATE ' . $tbl_my_message.' SET msg_status=7 WHERE user_receiver_id=' . $user_id.' AND user_sender_id='.$friend_id;
//Delete user
$sql_ij = 'UPDATE ' . $tbl_my_friend . ' SET relation_type=6 WHERE user_id=' . ((int)$friend_id).' AND friend_user_id='.((int)$user_id);
$sql_ji = 'UPDATE ' . $tbl_my_message . ' SET msg_status=7 WHERE user_receiver_id=' . ((int)$friend_id).' AND user_sender_id='.((int)$user_id);
$sql_ij = 'UPDATE ' . $tbl_my_friend . ' SET relation_type='.SOCIALDELETED.' WHERE user_id=' . $friend_id.' AND friend_user_id='.$user_id;
$sql_ji = 'UPDATE ' . $tbl_my_message . ' SET msg_status=7 WHERE user_receiver_id=' . $friend_id.' AND user_sender_id='.$user_id;
Database::query($sql_i, __FILE__, __LINE__);
Database::query($sql_j, __FILE__, __LINE__);
Database::query($sql_ij, __FILE__, __LINE__);
@ -189,8 +202,9 @@ class SocialManager extends UserManager {
return $list_path_image_friend;
}
/**
* allow to sent an invitation to my contacts
* Sends an invitation to contacts
* @author isaac flores paz <florespaz@bidsoftperu.com>
* @author Julio Montya <gugli100@gmail.com> Cleaning code
* @param int user id
* @param int user friend id
* @param string title of the message
@ -198,22 +212,29 @@ class SocialManager extends UserManager {
* @return boolean
*/
public static function send_invitation_friend ($user_id,$friend_id,$message_title,$message_content) {
$tbl_message=Database::get_main_table(TABLE_MAIN_MESSAGE);
$current_date=date('Y-m-d H:i:s',time());
$tbl_message = Database::get_main_table(TABLE_MAIN_MESSAGE);
$user_id = intval($user_id);
$friend_id = intval($friend_id);
$message_title = Database::escape_string($message_title);
$message_content = Database::escape_string($message_content);
$current_date = date('Y-m-d H:i:s',time());
$status_invitation=5;//status of pending invitation
$sql_exist='SELECT COUNT(*) AS count FROM '.$tbl_message.' WHERE user_sender_id='.((int)$user_id).' AND user_receiver_id='.((int)$friend_id).' AND msg_status IN(5,6,7);';
$sql_exist='SELECT COUNT(*) AS count FROM '.$tbl_message.' WHERE user_sender_id='.($user_id).' AND user_receiver_id='.($friend_id).' AND msg_status IN(5,6,7);';
$res_exist=Database::query($sql_exist,__FILE__,__LINE__);
$row_exist=Database::fetch_array($res_exist,'ASSOC');
if ($row_exist['count']==0) {
$sql='INSERT INTO '.$tbl_message.'(user_sender_id,user_receiver_id,msg_status,send_date,title,content) VALUES('.((int)$user_id).','.((int)$friend_id).','.((int)$status_invitation).',"'.$current_date.'","'.$message_title.'","'.$message_content.'")';
if ($row_exist['count']==0) {
$sql='INSERT INTO '.$tbl_message.'(user_sender_id,user_receiver_id,msg_status,send_date,title,content) VALUES('.$user_id.','.$friend_id.','.$status_invitation.',"'.$current_date.'","'.$message_title.'","'.$message_content.'")';
Database::query($sql,__FILE__,__LINE__);
return true;
} elseif ($row_exist['count']==1) {
$sql_if_exist='SELECT COUNT(*) AS count FROM '.$tbl_message.' WHERE user_sender_id='.((int)$user_id).' AND user_receiver_id='.((int)$friend_id).' AND msg_status=7';
//invitation already exist
$sql_if_exist='SELECT COUNT(*) AS count FROM '.$tbl_message.' WHERE user_sender_id='.$user_id.' AND user_receiver_id='.$friend_id.' AND msg_status=7';
$res_if_exist=Database::query($sql_if_exist,__FILE__,__LINE__);
$row_if_exist=Database::fetch_array($res_if_exist,'ASSOC');
if ($row_if_exist['count']==1) {
$sql_if_exist_up='UPDATE '.$tbl_message.'SET msg_status=5 WHERE user_sender_id='.((int)$user_id).' AND user_receiver_id='.((int)$friend_id).';';
$sql_if_exist_up='UPDATE '.$tbl_message.'SET msg_status=5 WHERE user_sender_id='.$user_id.' AND user_receiver_id='.$friend_id.';';
Database::query($sql_if_exist_up,__FILE__,__LINE__);
return true;
} else {
@ -234,13 +255,14 @@ class SocialManager extends UserManager {
public static function get_message_number_invitation_by_user_id ($user_receiver_id) {
$status_invitation=5;//status of pending invitation
$tbl_message=Database::get_main_table(TABLE_MAIN_MESSAGE);
$sql='SELECT COUNT(*) as count_message_in_box FROM '.$tbl_message.' WHERE user_receiver_id='.((int)$user_receiver_id).' AND msg_status=5;';
$sql='SELECT COUNT(*) as count_message_in_box FROM '.$tbl_message.' WHERE user_receiver_id='.((int)$user_receiver_id).' AND msg_status=5';
$res=Database::query($sql,__FILE__,__LINE__);
$row=Database::fetch_array($res,'ASSOC');
return $row['count_message_in_box'];
}
/**
* get invitation list by user id
* Get invitation list received by user
* @author isaac flores paz <florespaz@bidsoftperu.com>
* @param int user id
* @return array()
@ -248,13 +270,32 @@ class SocialManager extends UserManager {
public static function get_list_invitation_of_friends_by_user_id ($user_id) {
$list_friend_invitation=array();
$tbl_message=Database::get_main_table(TABLE_MAIN_MESSAGE);
$sql='SELECT user_sender_id,send_date,title,content FROM '.$tbl_message.' WHERE user_receiver_id='.((int)$user_id).' AND msg_status=5;';
$sql='SELECT user_sender_id,send_date,title,content FROM '.$tbl_message.' WHERE user_receiver_id='.((int)$user_id).' AND msg_status = 5';
$res=Database::query($sql,__FILE__,__LINE__);
while ($row=Database::fetch_array($res,'ASSOC')) {
$list_friend_invitation[]=$row;
}
return $list_friend_invitation;
}
/**
* Get invitation list sent by user
* @author Julio Montoya <gugli100@gmail.com>
* @param int user id
* @return array()
*/
public static function get_list_invitation_sent_by_user_id ($user_id) {
$list_friend_invitation=array();
$tbl_message=Database::get_main_table(TABLE_MAIN_MESSAGE);
$sql='SELECT user_receiver_id, send_date,title,content FROM '.$tbl_message.' WHERE user_sender_id = '.intval($user_id).' AND msg_status = 5';
$res=Database::query($sql,__FILE__,__LINE__);
while ($row=Database::fetch_array($res,'ASSOC')) {
$list_friend_invitation[$row['user_receiver_id']]=$row;
}
return $list_friend_invitation;
}
/**
* allow accept invitation
* @author isaac flores paz <florespaz@bidsoftperu.com>
@ -295,19 +336,20 @@ class SocialManager extends UserManager {
Database::query($sql,__FILE__,__LINE__);
}
/**
* Send invitation a your friends
* Sends invitations to friends
* @author Isaac Flores Paz <isaac.flores.paz@gmail.com>
* @author Julio Montoya <gugli100@gmail.com> Cleaning code
* @param void
* @return string message invitation
*/
public static function send_invitation_friend_user ($userfriend_id,$subject_message='',$content_message='') {
//$id_user_friend=array();
$user_info=array();
$user_info=api_get_user_info($userfriend_id);
$succes=get_lang('MessageSentTo');
$user_info = array();
$user_info = api_get_user_info($userfriend_id);
$succes = get_lang('MessageSentTo');
$succes.= ' : '.api_get_person_name($user_info['firstName'], $user_info['lastName']);
if (isset($subject_message) && isset($content_message) && isset($userfriend_id)) {
$send_message = MessageManager::send_message(((int)$userfriend_id),Database::escape_string($subject_message), Database::escape_string($content_message));
if (isset($subject_message) && isset($content_message) && isset($userfriend_id)) {
$send_message = MessageManager::send_message($userfriend_id, $subject_message, $content_message);
if ($send_message) {
echo Display::display_confirmation_message($succes,true);
} else {
@ -318,16 +360,12 @@ class SocialManager extends UserManager {
$count_is_true=false;
$count_number_is_true=0;
if (isset($userfriend_id) && $userfriend_id>0) {
$user_info=array();
$user_id=api_get_user_id();
$user_info=api_get_user_info($user_id);
$message_title=get_lang('Invitation');
$message_content=$content_message;
$count_is_true=self::send_invitation_friend(((int)$user_id),((int)$userfriend_id),Database::escape_string($message_title),Database::escape_string($message_content));
$message_title = get_lang('Invitation');
$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(get_lang('InvitationHasBeenSent'));
}else {
echo Display::display_error_message(get_lang('InvitationHasBeenNotSent'));
echo Display::display_error_message(get_lang('YouAlreadySentAnInvitation'));
}
}

@ -5,6 +5,20 @@ require_once api_get_path(LIBRARY_PATH).'fileUpload.lib.php';
require_once api_get_path(LIBRARY_PATH).'fileDisplay.lib.php';
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
/*
* @todo use constants!
*/
define('MESSAGE_STATUS_NEW', '0');
define('MESSAGE_STATUS_UNREAD', '1');
define('MESSAGE_STATUS_DELETED', '2');
define('MESSAGE_STATUS_INVITATION_PENDING', '5');
define('MESSAGE_STATUS_INVITATION_ACCEPTED','6');
define('MESSAGE_STATUS_INVITATION_DENIED', '7');
class MessageManager
{
function MessageManager() {
@ -154,29 +168,30 @@ class MessageManager
return $message_list;
}
public static function send_message ($receiver_user_id, $title, $content, $file_attachments = array(), $file_comments = '', $group_id = 0, $parent_id = 0) {
public static function send_message ($receiver_user_id, $title, $content, $file_attachments = array(), $file_comments = '', $group_id = 0, $parent_id = 0) {
global $charset;
$table_message = Database::get_main_table(TABLE_MESSAGE);
$group_id = intval($group_id);
$group_id = intval($group_id);
$receiver_user_id = intval($receiver_user_id);
$parent_id = intval($parent_id);
if (is_numeric($receiver_user_id)) {
if (is_numeric($receiver_user_id)) {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$title = api_convert_encoding($title,$charset,'UTF-8');
$content = api_convert_encoding($content,$charset,'UTF-8');
$sql = "SELECT COUNT(*) as count FROM $table_message WHERE user_sender_id = ".api_get_user_id()." AND user_receiver_id='$receiver_user_id' AND title = '".Database::escape_string($title)."' AND content ='".Database::escape_string($content)."' AND group_id='$group_id' AND parent_id='$parent_id'";
$content = api_convert_encoding($content,$charset,'UTF-8');
//message in inbox
$sql = "SELECT COUNT(*) as count FROM $table_message WHERE user_sender_id = ".api_get_user_id()." AND user_receiver_id='".Database::escape_string($receiver_user_id)."' AND title = '".Database::escape_string($title)."' AND content ='".Database::escape_string($content)."' ";
$res_exist = Database::query($sql,__FILE__,__LINE__);
$row_exist = Database::fetch_array($res_exist,'ASSOC');
if ($row_exist['count'] ==0) {
if ($row_exist['count'] == 0) {
//message in outbox
$sql = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id) ".
$sql = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content ) ".
" VALUES (".
"'".api_get_user_id()."', '".Database::escape_string($receiver_user_id)."', '4', '".date('Y-m-d H:i:s')."','".Database::escape_string($title)."','".Database::escape_string($content)."','$group_id','$parent_id'".
"'".api_get_user_id()."', '".Database::escape_string($receiver_user_id)."', '4', '".date('Y-m-d H:i:s')."','".Database::escape_string($title)."','".Database::escape_string($content)."'".
")";
$rs = Database::query($sql,__FILE__,__LINE__);
$outbox_last_id = Database::insert_id();
$outbox_last_id = Database::insert_id();
// save attachment file for outbox messages
if (is_array($file_attachments)) {
$o = 0;
@ -194,6 +209,7 @@ class MessageManager
")";
$result = Database::query($query,__FILE__,__LINE__);
$inbox_last_id = Database::insert_id();
// save attachment file for inbox messages
if (is_array($file_attachments)) {
$i = 0;
@ -206,6 +222,8 @@ class MessageManager
}
return $result;
}
} else {
return false;
}
return false;
@ -261,56 +279,55 @@ class MessageManager
return false;
}
/**
* Save message attachment file
* @param array contain info about uploaded file
* @param string a comment about the file
* @param int message id
* @param int receiver user id
* @param int sender user id
* @return void
*/
public static function save_message_attachment_file($file_attach,$file_comment,$message_id,$receiver_user_id=0,$sender_user_id=0) {
$tbl_message_attach = Database::get_main_table(TABLE_MESSAGE_ATTACHMENT);
// Try to add an extension to the file if it hasn't one
$new_file_name = add_ext_on_mime(stripslashes($file_attach['name']), $file_attach['type']);
$new_file_name = add_ext_on_mime(stripslashes($file_attach['name']), $file_attach['type']);
// user's file name
$file_name =$file_attach['name'];
$file_name =$file_attach['name'];
if (!filter_extension($new_file_name)) {
Display :: display_error_message(get_lang('UplUnableToSaveFileFilteredExtension'));
} else {
$new_file_name = uniqid('');
$message_user_id = '';
if (!empty($receiver_user_id)) {
$message_user_id = $receiver_user_id;
} else {
$message_user_id = $sender_user_id;
}
}
// User-reserved directory where photos have to be placed.
$path_user_info = UserManager::get_user_picture_path_by_id($message_user_id, 'system', true);
$path_message_attach = $path_user_info['dir'].'message_attachments/';
$path_message_attach = $path_user_info['dir'].'message_attachments/';
// If this directory does not exist - we create it.
if (!file_exists($path_message_attach)) {
$perm = api_get_setting('permissions_for_new_directories');
$perm = octdec(!empty($perm) ? $perm : '0770');
@mkdir($path_message_attach, $perm, true);
}
$new_path=$path_message_attach.$new_file_name;
if (!empty($receiver_user_id)) {
$result= @copy($file_attach['tmp_name'], $new_path);
} else {
$result= @move_uploaded_file($file_attach['tmp_name'], $new_path);
}
$safe_file_comment= Database::escape_string($file_comment);
$safe_file_name = Database::escape_string($file_name);
$safe_new_file_name = Database::escape_string($new_file_name);
// Storing the attachments if any
$sql="INSERT INTO $tbl_message_attach(filename,comment, path,message_id,size)
VALUES ( '$safe_file_name', '$safe_file_comment', '$safe_new_file_name' , '$message_id', '".$file_attach['size']."' )";
$result=Database::query($sql, __LINE__, __FILE__);
$result=Database::query($sql, __LINE__, __FILE__);
$message.=' / '.get_lang('FileUploadSucces').'<br />';
}
}
@ -321,9 +338,11 @@ class MessageManager
* @return void
*/
public static function delete_message_attachment_file($message_id,$message_uid) {
$message_id = intval($message_id);
$message_uid = intval($message_uid);
$table_message_attach = Database::get_main_table(TABLE_MESSAGE_ATTACHMENT);
$sql= "SELECT * FROM $table_message_attach WHERE message_id = '$message_id'";
$rs = Database::query($sql,__FILE__,__LINE__);
$new_paths = array();
@ -445,7 +464,7 @@ class MessageManager
$i++;
}
return $message_list;
}
}
/**
* Gets information about number messages sent
* @author Isaac FLores Paz <isaac.flores@dokeos.com>
@ -591,6 +610,7 @@ class MessageManager
}
}
}
$row = Database::fetch_array($result);
$user_con = self::users_connected_by_id();
$band=0;

@ -1,28 +1,6 @@
<?php
/*
==============================================================================
Dokeos - elearning and course management software
/* For licensing terms, see /dokeos_license.txt */
Copyright (c) 2009 Dokeos SPRL
Copyright (c) 2009 Julio Montoya Armas <gugli100@gmail.com>
Copyright (c) Facultad de Matematicas, UADY (México)
Copyright (c) Evie, Free University of Brussels (Belgium)
Copyright (c) 2009 Isaac Flores Paz <isaac.flores@dokeos.com>
For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt".
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
See the GNU General Public License for more details.
Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
Mail: info@dokeos.com
==============================================================================
*/
$language_file = array('registration','messages','userInfo','admin');
$cidReset=true;
require_once '../inc/global.inc.php';
@ -35,12 +13,14 @@ if (api_is_anonymous()) {
api_not_allowed();
}
$user_id=intval($_POST['user_id']);
$panel_id=intval($_POST['panel_id']);
$content_message=Security::remove_XSS($_POST['txt_content'],COURSEMANAGERLOWSECURITY); //check this is filtered on output
$subject_message=Security::remove_XSS($_POST['txt_subject']); //check this is filtered on output
$user_info=array();
$user_info=api_get_user_info($user_id);
$user_id = intval($_POST['user_id']);
$panel_id = intval($_POST['panel_id']);
$content_message = Security::remove_XSS($_POST['txt_content'],COURSEMANAGERLOWSECURITY); //check this is filtered on output
$subject_message = Security::remove_XSS($_POST['txt_subject']); //check this is filtered on output
$user_info = array();
$user_info = api_get_user_info($user_id);
if ($panel_id==2) {
?>
<td height="20"><?php //echo api_xml_http_response_encode(get_lang('Info')).' :'; ?></td>

@ -1,4 +1,4 @@
<?php //$id: $
<?php
/* For licensing terms, see /dokeos_license.txt */
$language_file = array('registration','messages','userInfo','admin');
$cidReset=true;
@ -11,7 +11,7 @@ if (api_is_anonymous()) {
api_not_allowed();
}
if (api_get_setting('allow_message_tool')<>'true' && api_get_setting('allow_social_tool')<>'true'){
if (api_get_setting('allow_message_tool') != 'true' && api_get_setting('allow_social_tool') != 'true'){
api_not_allowed();
}

@ -3,8 +3,22 @@ $language_file= 'admin';
$cidReset=true;
require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'/formvalidator/FormValidator.class.php';
$request=api_is_xml_http_request();
$nameTools = api_xml_http_response_encode(get_lang('AddGroup'));
require_once api_get_path(LIBRARY_PATH).'social.lib.php';
require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
api_block_anonymous_users();
$nameTools = get_lang('AddGroup');
$this_section = SECTION_SOCIAL;
$interbreadcrumb[]= array ('url' =>'home.php','name' => get_lang('Social'));
Display :: display_header($tool_name, 'Groups');
//show the action menu
SocialManager::show_social_menu();
echo '<div class="actions-title">';
echo get_lang('Groups');
echo '</div>';
global $charset;
$table_message = Database::get_main_table(TABLE_MESSAGE);
@ -22,7 +36,7 @@ $form->applyFilter('name', 'trim');
$form->addRule('name', get_lang('ThisFieldIsRequired'), 'required');
// Description
$form->addElement('text', 'description', get_lang('Description'));
$form->addElement('textarea', 'description', get_lang('Description'));
$form->applyFilter('description', 'html_filter');
$form->applyFilter('description', 'trim');
@ -34,40 +48,42 @@ $form->applyFilter('url', 'trim');
// Picture
$form->addElement('file', 'picture', get_lang('AddPicture'));
$allowed_picture_types = array ('jpg', 'jpeg', 'png', 'gif');
$form->addRule('picture', get_lang('OnlyImagesAllowed').' ('.implode(',', $allowed_picture_types).')', 'filetype', $allowed_picture_types);
// Status
$status = array();
$status[GROUP_PERMISSION_OPEN] = get_lang('Open');
$status[GROUP_PERMISSION_CLOSED] = get_lang('Closed');
$status[GROUP_PERMISSION_APPROVAL_NEEDED] = get_lang('ApprovalNeeded');
/*
$form->add_textfield('id_text_name', api_xml_http_response_encode(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', api_xml_http_response_encode(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'));
$form->add_textfield('title', api_xml_http_response_encode(get_lang('Title')));
$form->add_html_editor('content', '', false, false, array('ToolbarSet' => 'Messages', 'Width' => '95%', 'Height' => '250'));
if (isset($_GET['re_id'])) {
$form->addElement('hidden','re_id',Security::remove_XSS($_GET['re_id']));
$form->addElement('hidden','save_form','save_form');
}
$form->addElement('select', 'visibility', get_lang('GroupPermissions'), $status);
*/
$form->addElement('style_submit_button','add_group', api_xml_http_response_encode(get_lang('AddGroup')),'class="save"');
$form->addElement('style_submit_button','add_group', get_lang('AddGroup'),'class="save"');
$form->setRequiredNote(api_xml_http_response_encode('<span class="form_required">*</span> <small>'.get_lang('ThisFieldIsRequired').'</small>'));
$form->setDefaults($default);
if ($form->validate()) {
$values = $form->exportValues();
var_dump($values);
$receiver_user_id = $values['user_list'];
$title = $values['title'];
$content = $values['content'];
//all is well, send the message
//MessageManager::send_message($receiver_user_id, $title, $content);
//MessageManager::display_success_message($receiver_user_id);
$picture_element = & $form->getElement('picture');
$picture = $picture_element->getValue();
$picture_uri = '';
$name = $values['name'];
$description = $values['description'];
$url = $values['url'];
$status = intval($values['visibility']);
$picture = $_FILES['picture'];
$group_id = GroupPortalManager::add($name, $description, $url, $status);
GroupPortalManager::add_user_to_group(api_get_user_id(), $group_id,GROUP_USER_PERMISSION_ADMIN);
if (!empty($picture['name'])) {
$picture_uri = GroupPortalManager::update_group_picture($group_id, $_FILES['picture']['name'], $_FILES['picture']['tmp_name']);
GroupPortalManager::update($group_id, $name, $description, $url,$status, $picture_uri);
}
} else {
$form->display();
}

@ -49,7 +49,7 @@ $form->applyFilter('name', 'trim');
$form->addRule('name', get_lang('ThisFieldIsRequired'), 'required');
// Description
$form->addElement('text', 'description', get_lang('Description'));
$form->addElement('textarea', 'description', get_lang('Description'));
$form->applyFilter('description', 'html_filter');
$form->applyFilter('description', 'trim');
@ -71,9 +71,10 @@ if (strlen($group_data['picture_uri']) > 0) {
$status = array();
$status[GROUP_PERMISSION_OPEN] = get_lang('Open');
$status[GROUP_PERMISSION_CLOSED] = get_lang('Closed');
$status[GROUP_PERMISSION_APPROVAL_NEEDED] = get_lang('ApprovalNeeded');
$form->addElement('select', 'visibility', get_lang('GroupPermissions'), $status, array());
// Submit button
$form->addElement('style_submit_button', 'submit', get_lang('ModifyInformation'), 'class="save"');

@ -0,0 +1,76 @@
<?php
/* For licensing terms, see /dokeos_license.txt */
$language_file = array('admin');
require '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
require_once api_get_path(LIBRARY_PATH).'social.lib.php';
$this_section = SECTION_SOCIAL;
$interbreadcrumb[]= array ('url' =>'home.php','name' => get_lang('Social'));
api_block_anonymous_users();
Display :: display_header($tool_name, 'Groups');
SocialManager::show_social_menu();
echo '<div class="actions-title">';
echo get_lang('GroupMembers');
echo '</div>';
// Group information
$group_id = intval($_GET['id']);
$admins = GroupPortalManager::get_users_by_group($group_id, true,GROUP_USER_PERMISSION_ADMIN);
$show_message = '';
if (isset($_GET['action']) && $_GET['action']=='add') {
// we add a user only if is a open group
$user_join = intval($_GET['u']);
//if i'm the admin
if (isset($admins[api_get_user_id()]) && $admins[api_get_user_id()]['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
GroupPortalManager::update_user_permission($user_join, $group_id);
$show_message = get_lang('UserAdded');
}
}
if (isset($_GET['action']) && $_GET['action']=='delete') {
// we add a user only if is a open group
$user_join = intval($_GET['u']);
//if i'm the admin
if (isset($admins[api_get_user_id()]) && $admins[api_get_user_id()]['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
GroupPortalManager::delete_user_rel_group($user_join, $group_id);
$show_message = get_lang('UserDeleted');
}
}
$users = GroupPortalManager::get_users_by_group($group_id, true);
if (! empty($show_message)){
Display :: display_normal_message($show_message);
}
$new_member_list = array();
foreach($users as $user) {
switch ($user['relation_type']) {
case GROUP_USER_PERMISSION_ADMIN:
$user['link'] = Display::return_icon('admin_star.png', get_lang('Admin'));
break;
case GROUP_USER_PERMISSION_READER:
$user['link'] = '<a href="group_members.php?id='.$group_id.'&u='.$user['user_id'].'&action=delete">'.Display::return_icon('delete.png', get_lang('Delete')).'</a>';
break;
case GROUP_USER_PERMISSION_PENDING_INVITATION:
$user['link'] = '<a href="group_members.php?id='.$group_id.'&u='.$user['user_id'].'&action=add">'.Display::return_icon('pending_invitation.png', get_lang('PendingInvitation')).'</a>';
break;
}
$new_member_list[] = $user;
}
if (count($new_member_list) > 0) {
Display::display_sortable_grid('search_users', array(), $new_member_list, array('hide_navigation'=>true, 'per_page' => 100), $query_vars, false, array(true, false, true,true,false,true,true));
}
Display :: display_footer();
?>

@ -19,25 +19,41 @@ echo '<div class="actions-title">';
echo get_lang('Groups');
echo '</div>';
// getting group information
$group_id = intval($_GET['id']);
$group_info = GroupPortalManager::get_group_data($group_id);
if ($group_id != 0 ) {
if ($group_id != 0 ) {
//Loading group information
if (isset($_GET['status']) && $_GET['status']=='sent') {
Display::display_confirmation_message(api_xml_http_response_encode(get_lang('MessageHasBeenSent')), false);
}
if (isset($_GET['action']) && $_GET['action']=='leave') {
$user_leaved = intval($_GET['u']);
GroupPortalManager::delete_user_rel_group($user_leaved, $group_id);
}
}
// add a user to a group if its open
if (isset($_GET['action']) && $_GET['action']=='join') {
$user_join = intval($_GET['u']);
GroupPortalManager::add_user_to_group($user_join, $group_id);
}
$group_info = GroupPortalManager::get_group_data($group_id);
// we add a user only if is a open group
$user_join = intval($_GET['u']);
if ($group_info['visibility'] != GROUP_PERMISSION_CLOSED) {
if ($group_info['visibility'] == GROUP_PERMISSION_OPEN) {
GroupPortalManager::add_user_to_group($user_join, $group_id);
} else {
GroupPortalManager::add_user_to_group($user_join, $group_id, GROUP_USER_PERMISSION_PENDING_INVITATION);
}
}
}
$picture = GroupPortalManager::get_picture_group($group_id, $group_info['picture_uri'],160,'medium_');
$tags = GroupPortalManager::get_group_tags($group_id,true);
$users = GroupPortalManager::get_users_by_group($group_id,true);
$tags = GroupPortalManager::get_group_tags($group_id, true);
$users = GroupPortalManager::get_users_by_group($group_id, true);
//@todo this must be move to default.css for dev use only
echo '<style>
@ -47,6 +63,7 @@ if ($group_id != 0 ) {
</style>';
echo '<div id="layout-left" style="float: left; width: 280px; height: 100%;">';
//Group's title
echo '<h1>'.$group_info['name'].'</h1>';
@ -80,18 +97,28 @@ if ($group_id != 0 ) {
echo '<div id="actions" style="margin:10px">';
echo '<a href="/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>';
echo get_lang('Members').' : ';
echo '<div id="group_members">';
foreach($users as $user) {
echo '<div class="group_member_item">'.$user['picture_uri'].'<br />'.$user['firstname'].'&nbsp;'.$user['lastname'].'</div>';
foreach($users as $user) {
if ($user['relation_type'] != GROUP_USER_PERMISSION_PENDING_INVITATION) {
if ($user['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
$user['lastname'].= Display::return_icon('admin_star.png', get_lang('Admin'));
}
echo '<div class="group_member_item"><a href="profile.php?u='.$user['user_id'].'">'.$user['picture_uri'].$user['firstname'].$user['lastname'].'</a></div>';
}
}
echo '</div>';
echo '<div id="group_permissions">';
echo '<div id="group_permissions">';
if (is_array($users[api_get_user_id()]) && count($users[api_get_user_id()]) > 0) {
//im a member
if ($users[api_get_user_id()]['relation_type']!='') {
if ($users[api_get_user_id()]['relation_type'] !='' ) {
$my_group_role = $users[api_get_user_id()]['relation_type'];
// I'm just a reader
if ($my_group_role == GROUP_USER_PERMISSION_READER) {
@ -101,15 +128,22 @@ if ($group_id != 0 ) {
} elseif ($my_group_role == GROUP_USER_PERMISSION_ADMIN) {
echo 'Im the admin/';
echo '<a href="group_edit.php?id='.$group_id.'">'.get_lang('EditGroup').'</a>';
echo '<a href="group_members.php?id='.$group_id.'">'.get_lang('MemberList').'</a>';
echo 'Invite others';
} elseif ($my_group_role == GROUP_USER_PERMISSION_PENDING_INVITATION) {
echo 'You should Wait';
}
} else {
//im not a member
echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a>';
if ($group_info['visibility']!= GROUP_PERMISSION_CLOSED ) {
//im not a member
echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a>';
}
}
} else {
//im not a member
echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a>';
if ($group_info['visibility'] != GROUP_PERMISSION_CLOSED) {
echo '<a href="groups.php?id='.$group_id.'&action=join&u='.api_get_user_id().'">'.get_lang('JoinGroup').'</a>';
}
}
echo '</div>'; // end layout permissions
echo '</div>'; // end layout left
@ -118,9 +152,12 @@ if ($group_id != 0 ) {
MessageManager::display_messages_for_group($group_id);
echo '</div>'; // end layout messages
echo '</div>'; // end layout right
} else {
// Newest groups ----------------
// Newest groups --------
$results = GroupPortalManager::get_groups_by_age(10 , true);
$groups = array();
foreach ($results as $result) {
@ -132,9 +169,10 @@ 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));
}
}
// Pop groups -----
// Pop groups ----------------
$results = GroupPortalManager::get_groups_by_popularity(10 , true);
$groups = array();
foreach ($results as $result) {
@ -149,25 +187,25 @@ if ($group_id != 0 ) {
}
// My groups
// My groups -----
$results = GroupPortalManager::get_groups_by_user(api_get_user_id(), 0, true);
$groups = array();
foreach ($results as $result) {
$id = $result['id'];
$url_open = '<a href="groups.php?id='.$id.'">';
$url_close = '</a>';
$url_close = '</a>';
if ($result['relation_type'] == GROUP_USER_PERMISSION_ADMIN) {
$result['name'].= Display::return_icon('admin_star.png', get_lang('Admin'));
}
$groups[]= array($url_open.$result['picture_uri'].$url_close, $url_open.$result['name'].$url_close);
}
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));
} else {
echo get_lang('CreateAgroup');
}
}
}
Display :: display_footer();
?>

@ -1,7 +1,7 @@
<?php
/* For licensing terms, see /dokeos_license.txt */
$language_file = array('registration','messages','userInfo','admin');
$language_file = array('messages','userInfo','admin');
require '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'image.lib.php';
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
@ -10,119 +10,166 @@ $this_section = SECTION_SOCIAL;
$interbreadcrumb[]= array ('url' =>'home.php','name' => get_lang('Social'));
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.js" type="text/javascript" language="javascript"></script>'; //jQuery
$htmlHeadXtra[] = '
<script type="text/javascript">
function denied_friend (element_input) {
name_button=$(element_input).attr("id");
name_div_id="id_"+name_button.substring(13);
user_id=name_div_id.split("_");
friend_user_id=user_id[1];
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(objeto) {
$("#id_response").html("<img src=\'../inc/lib/javascript/indicator.gif\' />"); },
type: "POST",
url: "../social/register_friend.php",
data: "denied_friend_id="+friend_user_id,
success: function(datos) {
$("div#"+name_div_id).hide("slow");
$("#id_response").html(datos);
}
});
}
function register_friend(element_input) {
if(confirm("'.get_lang('AddToFriends').'")) {
name_button=$(element_input).attr("id");
name_div_id="id_"+name_button.substring(13);
user_id=name_div_id.split("_");
user_friend_id=user_id[1];
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(objeto) {
$("div#dpending_"+user_friend_id).html("<img src=\'../inc/lib/javascript/indicator.gif\' />"); },
type: "POST",
url: "../social/register_friend.php",
data: "friend_id="+user_friend_id+"&is_my_friend="+"friend",
success: function(datos) { $("div#"+name_div_id).hide("slow");
$("form").submit()
}
});
}
}
</script>';
api_block_anonymous_users();
Display :: display_header($tool_name, 'Groups');
SocialManager::show_social_menu();
echo '<div class="actions-title">';
echo get_lang('Invitations');
echo '</div>';
echo '</div>';
api_block_anonymous_users();
$request=api_is_xml_http_request();
$language_variable=api_xml_http_response_encode(get_lang('PendingInvitations'));
$language_comment=api_xml_http_response_encode(get_lang('SocialInvitesComment'));
$request = api_is_xml_http_request();
$language_variable = api_xml_http_response_encode(get_lang('PendingInvitations'));
$language_comment = api_xml_http_response_encode(get_lang('SocialInvitesComment'));
//api_display_tool_title($language_variable);
?>
<div id="id_response" align="center"></div>
<?php
$list_get_invitation=array();
$list_get_path_web=array();
$user_id=api_get_user_id();
$list_get_invitation=SocialManager::get_list_invitation_of_friends_by_user_id($user_id);
$list_get_path_web=SocialManager::get_list_web_path_user_invitation_by_user_id($user_id);
$user_id = api_get_user_id();
$list_get_invitation = SocialManager::get_list_invitation_of_friends_by_user_id($user_id);
$list_get_invitation_sent = SocialManager::get_list_invitation_sent_by_user_id($user_id);
$number_loop=count($list_get_invitation);
if ($number_loop==0) {
Display::display_normal_message(api_xml_http_response_encode(get_lang('YouDontHaveInvites')));
//@todo move this to default.css
echo '<style>
.confirm {
border-top:1px solid #D8DFEA;
}
for ($i=0;$i<$number_loop;$i++) {
?>
<div id="<?php echo 'id_'.$list_get_invitation[$i]['user_sender_id'] ?>" align="center">
<table width="600" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="600" height="20" valign="top"><table width="100%" border="0"
cellpadding="0" cellspacing="0" bgcolor="#9DACBF">
<tr>
<td width="600" height="20" valign="top" style="padding:4px;"><div align="left"><b><?php echo api_xml_http_response_encode(get_lang('RequestContact')); ?></b></div></td>
</tr>
</table></td>
</tr>
<tr>
<td height="135" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="600" height="135" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="600" height="110" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100" height="110" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#C8D5E4">
<tr>
<td width="100" height="110" style="padding:4px;" >
<?php $friends_profile = SocialManager::get_picture_user($list_get_invitation[$i]['user_sender_id'], $list_get_path_web[$i]['file'], 92); ?>
<center><img src="<?php echo $friends_profile['file']; ?>" <?php echo $friends_profile['style']; ?> /></center></td>
</tr>
</table></td>
<td width="500" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="500" height="22" valign="top">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="500" height="22" valign="top" style="padding:2px;">
<?php
$user_id=$list_get_invitation[$i]['user_sender_id'];
$user_info=api_get_user_info($user_id);
echo api_xml_http_response_encode(api_get_person_name($user_info['firstName'], $user_info['lastName']));
?></td>
</tr>
</table></td>
</tr>
<tr>
<td height="5" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="500" height="5"></td>
</tr>
</table></td>
</tr>
<tr>
<td height="22" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="500" height="22" valign="top" style="padding:2px;"><?php
$title=get_lang($list_get_invitation[$i]['title']);
$content=get_lang($list_get_invitation[$i]['content']);
echo api_xml_http_response_encode($title.' : '.$content);
?> </td>
</tr>
</table></td>
</tr>
<tr>
<td height="61" valign="top" style="padding:2px;"><?php
$date=$list_get_invitation[$i]['send_date'];
echo api_xml_http_response_encode(get_lang('DateSend').' : '.$date);
?></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td height="25" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#9DACBF">
<tr>
<td width="600" height="25" valign="top" style="padding:4px;"><div align="right">
<button class="save" name="btn_accepted" type="submit" id="<?php echo "btn_accepted_".$user_id ?>" value="<?php echo api_xml_http_response_encode(get_lang('Accept'));?>"onclick="javascript:register_friend(this)"><?php echo api_xml_http_response_encode(get_lang('Accept')) ?></button>
<button class="cancel" name="btn_denied" type="submit" id="<?php echo "btn_deniedst_".$user_id ?>" value="<?php echo api_xml_http_response_encode(get_lang('Deny')); ?>" onclick="javascript:denied_friend(this)" ><?php echo api_xml_http_response_encode(get_lang('Deny'))?></button>
</div></td>
</tr>
</table></td>
</tr>
</style>';
</table></td>
</tr>
</table></td>
</tr>
</table>
</div>
<br/>
<?php
if ($number_loop==0) {
Display::display_normal_message(get_lang('NoPendingInvitations'));
} else {
echo get_lang('InvitationReceived');
foreach ($list_get_invitation as $invitation) {
$sender_user_id = $invitation['user_sender_id']
?>
<div id="<?php echo 'id_'.$sender_user_id ?>" class="confirm">
<?php
$picture = UserManager::get_user_picture_path_by_id($sender_user_id,'web',false,true);
$friends_profile = SocialManager::get_picture_user($sender_user_id, $picture['file'], 92);
$user_info = api_get_user_info($sender_user_id);
$title = get_lang($invitation['title']);
$content = get_lang($invitation['content']);
$date = $invitation['send_date'];
?>
<table cellspacing="0" border="0">
<tbody>
<tr>
<td class="image">
<a href="profile.php?u=<?=$sender_user_id?>">
<img src="<?php echo $friends_profile['file']; ?>" <?php echo $friends_profile['style']; ?> /></a>
</td>
<td class="info">
<a class="profile_link" href="profile.php?u=<?=$sender_user_id?>"><?= api_get_person_name($user_info['firstName'], $user_info['lastName']);?></a>
<div>
<?= $title.' : '.$content;?>
</div>
<div>
<?= get_lang('DateSend').' : '.$date;?>
</div>
<div class="buttons">
<button class="save" name="btn_accepted" type="submit" id="<?php echo "btn_accepted_".$sender_user_id ?>" value="<?php echo get_lang('Accept');?>"onclick="javascript:register_friend(this)">
<?php echo get_lang('Accept') ?></button>
<button class="cancel" name="btn_denied" type="submit" id="<?php echo "btn_deniedst_".$sender_user_id ?>" value="<?php echo get_lang('Deny'); ?>" onclick="javascript:denied_friend(this)" >
<?php echo get_lang('Deny')?></button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<?php
}
}
echo '<div class="clear"></div>';
if (count($list_get_invitation_sent) > 0 ){
echo get_lang('InvitationSent');
foreach ($list_get_invitation_sent as $invitation) {
$sender_user_id = $invitation['user_receiver_id'];?>
<div id="<?php echo 'id_'.$sender_user_id ?>" class="confirm">
<?php
$picture = UserManager::get_user_picture_path_by_id($sender_user_id,'web',false,true);
$friends_profile = SocialManager::get_picture_user($sender_user_id, $picture['file'], 92);
$user_info = api_get_user_info($sender_user_id);
$title = get_lang($invitation['title']);
$content = get_lang($invitation['content']);
$date = $invitation['send_date'];
?>
<table cellspacing="0" border="0">
<tbody>
<tr>
<td class="image">
<a href="profile.php?u=<?=$sender_user_id?>">
<img src="<?php echo $friends_profile['file']; ?>" <?php echo $friends_profile['style']; ?> /></a>
</td>
<td class="info">
<a class="profile_link" href="profile.php?u=<?=$sender_user_id?>"><?= api_get_person_name($user_info['firstName'], $user_info['lastName']);?></a>
<div>
<?= $title.' : '.$content;?>
</div>
<div>
<?= get_lang('DateSend').' : '.$date;?>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<?php
}
}
Display::display_footer();
?>

@ -391,9 +391,9 @@ echo '<div id="social-profile-wrapper">';
// Images uploaded by course
$file_list = '';
if (is_array($course_list_code) && count($course_list_code)>0) {
foreach ($course_list_code as $course) {
$file_list.= UserManager::get_user_upload_files_by_course($user_id,$course['code']);
}
foreach ($course_list_code as $course) {
$file_list.= UserManager::get_user_upload_files_by_course($user_id,$course['code']);
}
}
if (!empty($file_list)) {
@ -456,7 +456,10 @@ echo '<div id="social-profile-wrapper">';
echo '<div id="social-profile-container">';
//-------------------------------------
// LEFT COLUMN
echo '<div id="social-profile-left">';
//--- User image
@ -481,7 +484,19 @@ echo '<div id="social-profile-container">';
} else {
echo '<br/>';
echo '<div class="actions" style="margin-right:5px;">';
echo '&nbsp;<a href="../messages/send_message_to_userfriend.inc.php?height=365&width=610&user_friend='.$user_id.'&view=profile&view_panel=1" class="thickbox" title="'.get_lang('SendMessage').'">'.Display::return_icon('message_new.png').'&nbsp;&nbsp;'.get_lang('SendMessage').'</a><br />';
echo '&nbsp;<a href="/main/messages/send_message_to_userfriend.inc.php?height=365&width=610&user_friend='.$user_id.'&view=profile&view_panel=1" class="thickbox" title="'.get_lang('SendMessage').'">'.Display::return_icon('message_new.png').'&nbsp;&nbsp;'.get_lang('SendMessage').'</a><br />';
//check if I already sent an invitation message
$invitation_sent_list = SocialManager::get_list_invitation_sent_by_user_id(api_get_user_id());
if (is_array($invitation_sent_list) && is_array($invitation_sent_list[$user_id]) && count($invitation_sent_list[$user_id]) >0 ) {
echo '<a href="'.api_get_path(WEB_PATH).'main/social/invitations.php">'.get_lang('YouAlreadySentAnInvitation').'</a>';
} else {
echo '&nbsp;<a href="/main/messages/send_message_to_userfriend.inc.php?view_panel=2&height=300&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 '</div>';
}
echo '<br />';

@ -17,21 +17,22 @@ $friend_id_qualify = Security::remove_XSS($_POST['user_id_friend_q']);
$type_friend_qualify = Security::remove_XSS($_POST['type_friend_q']); //filtered?
$is_my_friend = Security::remove_XSS($_POST['is_my_friend']); //filtered?
if (isset($_POST['is_my_friend'])) {
$relation_type='3';//my friend
$relation_type=SOCIALFRIEND;//my friend
} else {
$relation_type='1';//Contact unknown
$relation_type=SOCIALUNKNOW;//Contact unknown
}
if (isset($_POST['friend_id'])) {
SocialManager::register_friend ((int)$the_current_user_id,(int)$my_current_friend,(int)$relation_type);
SocialManager::register_friend ((int)$my_current_friend,(int)$the_current_user_id,(int)$relation_type);
SocialManager::invitation_accepted ((int)$my_current_friend,(int)$the_current_user_id);
SocialManager::register_friend($the_current_user_id,$my_current_friend,$relation_type);
SocialManager::register_friend($my_current_friend,$the_current_user_id,$relation_type);
SocialManager::invitation_accepted($my_current_friend,$the_current_user_id);
if (isset($_POST['is_my_friend'])) {
echo api_xml_http_response_encode(get_lang('AddedContactToList'));
} else {
Display::display_normal_message(api_xml_http_response_encode(get_lang('AddedContactToList')));
}
}
if (isset($_POST['denied_friend_id'])) {
SocialManager::invitation_denied((int)$my_denied_current_friend,(int)$the_current_user_id);

Loading…
Cancel
Save