Вход Регистрация
Файл: 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) ? $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
Реклама