message.ajax.php 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Responses to AJAX calls
  5. */
  6. $language_file = array('messages','userInfo');
  7. require_once '../global.inc.php';
  8. $action = $_GET['a'];
  9. switch ($action) {
  10. case 'send_message':
  11. $result = MessageManager::send_message($_REQUEST['user_id'], $_REQUEST['subject'], $_REQUEST['content']);
  12. if ($result) {
  13. echo Display::display_confirmation_message(get_lang('MessageHasBeenSent'));
  14. } else {
  15. echo Display::display_error_message(get_lang('ErrorSendingMessage'));
  16. }
  17. break;
  18. case 'send_invitation':
  19. SocialManager::send_invitation_friend_user($_REQUEST['user_id'], $_REQUEST['subject'], $_REQUEST['content']);
  20. break;
  21. case 'find_users':
  22. if (api_is_anonymous()) {
  23. echo '';
  24. break;
  25. }
  26. $track_online_table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ONLINE);
  27. $tbl_my_user = Database :: get_main_table(TABLE_MAIN_USER);
  28. $tbl_my_user_friend = Database :: get_main_table(TABLE_MAIN_USER_REL_USER);
  29. $tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
  30. $search = Database::escape_string($_REQUEST['tag']);
  31. $current_date = date('Y-m-d H:i:s',time());
  32. $user_id = api_get_user_id();
  33. $is_western_name_order = api_is_western_name_order();
  34. if (api_get_setting('allow_social_tool')=='true' && api_get_setting('allow_message_tool') == 'true') {
  35. //all users
  36. if (api_get_setting('allow_send_message_to_all_platform_users') == 'true' || api_is_platform_admin() ) {
  37. $sql = 'SELECT DISTINCT u.user_id as id, '.($is_western_name_order ? 'concat(u.firstname," ",u.lastname," ","( ",u.email," )")' : 'concat(u.lastname," ",u.firstname," ","( ",u.email," )")').' as name
  38. FROM '.$tbl_user.' u
  39. WHERE u.status <> 6 AND u.user_id <>'.$user_id.' AND '.($is_western_name_order ? 'concat(u.firstname, " ", u.lastname)' : 'concat(u.lastname, " ", u.firstname)').' LIKE CONCAT("%","'.$search.'","%") ';
  40. } else {
  41. //only my contacts
  42. $sql = 'SELECT DISTINCT u.user_id as id, '.($is_western_name_order ? 'concat(u.firstname," ",u.lastname," ","( ",u.email," )")' : 'concat(u.lastname," ",u.firstname," ","( ",u.email," )")').' as name
  43. FROM '.$tbl_my_user_friend.' uf INNER JOIN '.$tbl_my_user.' AS u ON uf.friend_user_id = u.user_id ' .
  44. 'WHERE u.status <> 6 AND relation_type NOT IN('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.')
  45. AND uf.user_id = '.$user_id.' AND friend_user_id<>'.$user_id.'
  46. AND '.($is_western_name_order ? 'concat(u.firstname, " ", u.lastname)' : 'concat(u.lastname, " ", u.firstname)').' LIKE CONCAT("%","'.$search.'","%") ';
  47. }
  48. } elseif (api_get_setting('allow_social_tool')=='false' && api_get_setting('allow_message_tool')=='true') {
  49. $valid = api_get_setting('time_limit_whosonline');
  50. $sql='SELECT DISTINCT u.user_id as id, '.($is_western_name_order ? 'concat(u.firstname," ",u.lastname," ","( ",u.email," )")' : 'concat(u.lastname," ",u.firstname," ","( ",u.email," )")').' as name
  51. FROM '.$tbl_my_user.' u INNER JOIN '.$track_online_table.' t ON u.user_id=t.login_user_id
  52. WHERE DATE_ADD(login_date,INTERVAL "'.$valid.'" MINUTE) >= "'.$current_date.'" AND '.($is_western_name_order ? 'concat(u.firstname, " ", u.lastname)' : 'concat(u.lastname, " ", u.firstname)').' LIKE CONCAT("%","'.$search.'","%") ';
  53. }
  54. $sql .=' LIMIT 20';
  55. $result=Database::query($sql);
  56. if (Database::num_rows($result) > 0) {
  57. while ($row = Database::fetch_array($result,'ASSOC')) {
  58. $return[] = array('caption'=>$row['name'], 'value'=>$row['id']);
  59. }
  60. }
  61. echo json_encode($return);
  62. break;
  63. default:
  64. echo '';
  65. }
  66. exit;