Beispiel #1
0
/**
 * Ajax Callback
 *
 * @access public
 * @return void
 */
function sc_chat_ajax_callback()
{
    $response = array();
    try {
        // Handling the supported actions:
        switch ($_GET['mode']) {
            case 'login':
                $response = Live_Chat::login(@$_POST['f_chat_user_name'], @$_POST['f_chat_user_email'], $_POST['f_chat_is_admin']);
                break;
            case 'send_contact_from':
                $response = Live_Chat::send_contact_from($_POST);
                break;
            case 'is_user_logged_in':
                $response = Live_Chat::is_user_logged_in();
                break;
            case 'logout':
                $response = Live_Chat::logout();
                break;
            case 'online':
                $response = Live_Chat::online();
                break;
            case 'offline':
                $response = Live_Chat::offline();
                break;
            case 'send_chat_msg':
                $response = Live_Chat::send_chat_msg($_POST);
                break;
            case 'get_online_users':
                $response = Live_Chat::get_online_users();
                break;
            case 'get_chat_lines':
                $response = Live_Chat::get_chat_lines($_POST['last_log_ID'], $_POST['sender']);
                break;
            case 'user_info':
                $response = Live_Chat::user_info($_POST['ID']);
                break;
            default:
                throw new Exception('Wrong action');
        }
    } catch (Exception $e) {
        $response['error'] = $e->getMessage();
    }
    // Response output
    header("Content-Type: application/json");
    echo json_encode($response);
    exit;
}
Beispiel #2
0
 /**
  * Send chat message
  *
  * @access public
  * @return array
  */
 public static function send_chat_msg($params)
 {
     // Get user data from session
     $chat_user_name = $_SESSION['sc_chat']['chat_user_name'];
     $chat_user_gravatar = $_SESSION['sc_chat']['chat_user_gravatar'];
     $chat_user_email = $_SESSION['sc_chat']['chat_user_email'];
     // First check if any OP is online
     if (!Live_Chat::check_if_any_op_online()) {
         // Logout user
         Live_Chat::logout();
         // Prepare email data for last message
         $data = array('f_chat_user_name' => $chat_user_name, 'f_chat_user_email' => $chat_user_email, 'f_chat_user_question' => $params['chat_line'], 'prefix' => '(!) ' . strtoupper(__('User has been sent this message after you disconnected from chat', 'sc_chat')) . ": \r\n\r\n");
         // Send email now
         $email = Live_Chat::send_contact_from($data);
         if (!empty($email['error'])) {
             throw new Exception($email['error']);
         } else {
             throw new Exception(__("We are offline now. However, your message has been sent to us by email. We will contact you as soon as possible", 'sc_chat'));
         }
     }
     if (empty($chat_user_name)) {
         throw new Exception(__('You are not logged in', 'sc_chat'));
     }
     if (empty($params['chat_line'])) {
         throw new Exception(__("You haven't entered a chat message", 'sc_chat'));
     }
     // If receiver ID empty, make it __OP__
     if (current_user_can('chat_with_users') and !empty($params['receiver_ID'])) {
         $receiver_ID = sanitize_key($params['receiver_ID']);
     } else {
         $receiver_ID = '__OP__';
     }
     // sent by visitor
     // Prepare chat line data
     $chat = new Chat_line(array('author' => $chat_user_name, 'gravatar' => $chat_user_gravatar, 'visitor_ID' => !empty($params['visitor_ID']) ? $params['visitor_ID'] : null, 'receiver_ID' => $receiver_ID, 'email' => $chat_user_email, 'chat_line' => Live_Chat::sanitize_chat_line($params['chat_line'])));
     // Save chat message
     $insert_ID = $chat->save();
     return array('status' => 1, 'insert_ID' => $insert_ID);
 }