Вход Регистрация
Файл: chatigniter v2/application/modules/chat/controllers/chat.php
Строк: 132
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class 
Chat extends MY_Controller {
    protected 
$smiley_url = 'assets/images/smileys';
    function 
__construct()
    {
        
parent::__construct();
        
$this->load->model('user_model', 'user');
        
$this->load->model('message_model', 'message');
        
$this->load->model('lastmsg_model', 'last');
        
$this->load->helper('smiley');
    }

    public function 
index()
    {
        
$this->load->view('chat');
    }
    public function 
messages(){
        
//get paginated messages 
        
$per_page = 5;
        
$user         = $this->authentication->read('identifier');
        
$buddy         = $this->input->post('user');
        
$limit         = isset($_POST['limit']) ? $this->input->post('limit') : $per_page ;

        
$messages     = array_reverse($this->message->conversation($user, $buddy, $limit));
        
$total         = $this->message->thread_len($user, $buddy);

        
$thread = array();
        foreach (
$messages as $message) {
            
$owner = $this->user->get($message->from);
            
$chat = array(
                
'msg'         => $message->id,
                
'sender'     => $message->from, 
                
'recipient' => $message->to,
                
'avatar'     => $owner->avatar != '' ? $owner->avatar : 'no-image.jpg',
                
'body'         => parse_smileys($message->message, $this->smiley_url),
                
'time'         => date("M j, Y, g:i a", strtotime($message->time)),
                
'type'        => $message->from == $user ? 'out' : 'in',
                
'name'        => $message->from == $user ? 'You' : ucwords($owner->firstname)
                );
            
array_push($thread, $chat);
        }

        
$chatbuddy = $this->user->get($buddy);

        
$contact = array(
            
'name'=>ucwords($chatbuddy->firstname.' '.$chatbuddy->lastname),
            
'status'=>$chatbuddy->online,
            
'id'=>$chatbuddy->id,
            
'limit'=>$limit + $per_page,
            
'more' => $total  <= $limit ? false : true, 
            
'scroll'=> $limit > $per_page  ?  false : true,
            
'remaining'=> $total - $limit
            
);


        
$response = array(
                    
'success' => true,
                    
'errors'  => '',
                    
'message' => '',
                    
'buddy'      => $contact,
                    
'thread'  => $thread
                    
);
        
//add the header here
        
header('Content-Type: application/json');
        echo 
json_encode( $response );
    }
    public function 
save_message(){
        
$logged_user = $this->authentication->read('identifier');
        
$buddy         = $this->input->post('user');
        
$message     = $this->input->post('message');
        if(
$message != '' && $buddy != '')
        {
            
$msg_id = $this->message->insert(array(
                        
'from'         => $logged_user,
                        
'to'         => $buddy,
                        
'message'     => $message,
                        
'message'     => $message,
                    ));
            
$msg = $this->message->get($msg_id);

            
$owner = $this->user->get($msg->from);
            
$chat = array(
                
'msg'         => $msg->id,
                
'sender'     => $msg->from, 
                
'recipient' => $msg->to,
                
'avatar'     => $owner->avatar != '' ? $owner->avatar : 'no-image.jpg',
                
'body'         => parse_smileys($msg->message, $this->smiley_url),
                
'time'         => date("M j, Y, g:i a", strtotime($msg->time)),
                
'type'        => $msg->from == $logged_user ? 'out' : 'in',
                
'name'        => $msg->from == $logged_user ? 'You' : ucwords($owner->firstname)
                );

            
$response = array(
                
'success' => true,
                
'message' => $chat       
                
);
        }
        else{
              
$response = array(
                
'success' => false,
                
'message' => 'Empty fields exists'
                
);
        }
        
//add the header here
        
header('Content-Type: application/json');
        echo 
json_encode( $response );
    }

    public function 
updates(){
        
$new_exists = false;
        
$user_id     = $this->authentication->read('identifier');
        
$last_seen  = $this->last->get_by('user_id', $user_id);
        
$last_seen  = empty($last_seen) ? 0 : $last_seen->message_id;
        
$exists = $this->message->latest_message($user_id, $last_seen);
        
//echo $exists;
        
if($exists){
            
$new_exists = true;
        }
        
// THIS WHOLE SECTION NEED A GOOD OVERHAUL TO CHANGE THE FUNCTIONALITY
        
if ($new_exists) {
            
$new_messages = $this->message->unread($user_id);
            
$thread = array();
            
$senders = array();
            foreach (
$new_messages as $message) {
                if(!isset(
$senders[$message->from])){
                    
$senders[$message->from]['count'] = 1; 
                }
                else{
                    
$senders[$message->from]['count'] += 1; 
                }
                
$owner = $this->user->get($message->from);
                
$chat = array(
                    
'msg'         => $message->id,
                    
'sender'     => $message->from, 
                    
'recipient' => $message->to,
                    
'avatar'     => $owner->avatar != '' ? $owner->avatar : 'no-image.jpg',
                    
'body'         => parse_smileys($message->message, $this->smiley_url),
                    
'time'         => date("M j, Y, g:i a", strtotime($message->time)),
                    
'type'        => $message->from == $user_id ? 'out' : 'in',
                    
'name'        => $message->from == $user_id ? 'You' : ucwords($owner->firstname)
                    );
                
array_push($thread, $chat);
            }

            
$groups = array();
            foreach (
$senders as $key=>$sender) {
                
$sender = array('user'=> $key, 'count'=>$sender['count']);
                
array_push($groups, $sender);
            }
            
// END OF THE SECTION THAT NEEDS OVERHAUL DESIGN
            
$this->last->update_lastSeen($user_id);

            
$response = array(
                
'success' => true,
                
'messages' => $thread,
                
'senders' =>$groups
            
);

            
//add the header here
            
header('Content-Type: application/json');
            echo 
json_encode( $response );
        } 
    }
    public function 
mark_read(){
        
$this->message->mark_read();
    }
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
Онлайн: 1
Реклама