Вход Регистрация
Файл: system/classes/messages.php
Строк: 91
<?php

class messages {
    
    public function 
send_message($from$whom$text){
        
       global 
$db;
        
       if(empty(
$text))
           return 
false;
       
       if(
$db -> query('INSERT INTO `messages` (`time`, `group`, `from`, `whom`, `text`) VALUES (UNIX_TIMESTAMP() , ?, ?, ?, ?);'self::generate_group($from$whom), $from$whom$text) == TRUE)
            return 
true;
       else
           return 
false;
                    
    }
    
    private function 
generate_group($one_user$two_user){
        
        if(
$one_user $two_user)
            return 
$two_user.$one_user;
        else
            return 
$one_user.$two_user;
        
    }
    
    public function 
get_messages($one_user$two_user$n){
        
        global 
$db;
        
        
$group self::generate_group($one_user$two_user);
        
        
$messages $db -> query("SELECT `id`,`from`,`whom`,`read`,`time`,`text` from `messages` WHERE `group` = ? and `delete` != ? ORDER by `time` DESC LIMIT ?,?"$group$one_user$nget_elements());
        
        if(!empty(
$messages)){
        
            return 
$messages;
        
        }else{
            
            return 
false;
            
        }
        
    }
    
    public function 
count_messages($one_user$two_user){
        
        global 
$db;
        
        
$group self::generate_group($one_user$two_user);
        
        
$messages $db -> query("SELECT count(*) from `messages` WHERE `group` = ? and `delete` != ?"$group$one_user);
        
        if(!empty(
$messages)){
        
            return 
$messages[0]['count(*)'];
        
        }else{
            
            return 
0;
            
        }
        
    }
    
    public function 
unread($user){
        
        global 
$db;
        
        
$messages $db -> query("SELECT count(*) from `messages` WHERE `whom` = ? and `read` = 0 and `delete` != ?"$user$user);
        
        if(!empty(
$messages)){
        
            return 
$messages[0]['count(*)'];
        
        }else{
            
            return 
0;
            
        }
        
    }
    
    public function 
unread_group($user$one_user$two_user){
        
        global 
$db;
        
        
$group self::generate_group($one_user$two_user);
        
        
$messages $db -> query("SELECT count(*) from `messages` WHERE `whom` = ? and `group` = ? and `read` = 0 and `delete` != ?"$user$group$one_user);
        
        if(!empty(
$messages)){
        
            return 
$messages[0]['count(*)'];
        
        }else{
            
            return 
0;
            
        }
        
    }
    
    public function 
delete($user$id){
        
        global 
$db;
        
        
$messages $db -> query("SELECT `delete` from `messages` WHERE `id` = ? and (`from` = ? or `whom` = ?)"$id$user$user);
        
        if(
$messages[0]['delete'] != $user and $messages[0]['delete'] != 0){
            
            
$db -> query("DELETE FROM `messages` WHERE `id` = ? and (`from` = ? or `whom` = ?)"$id$user$user);
            
        }else{
            
            
$db -> query("UPDATE `messages` SET `delete` = ? WHERE `id` = ? and (`from` = ? or `whom` = ?)"$user$id$user$user);
            
        }
        
    }
    
    public function 
delete_dialog($user$autor){
        
        global 
$db;
        
        
$group self::generate_group($user$autor);
        
        
$update $db -> query("SELECT `id` from `messages` WHERE `delete` = 0 and `group` = ?"$group);
        
$delete $db -> query("SELECT `id` from `messages` WHERE `delete` != 0 and `delete` != ? and `group` = ?"$user$group);
        
        
$update_c count($update);
        
$delete_c count($delete);
        
        if(
$update_c 0){
            
            
$db -> query('UPDATE `messages` SET `delete` = ? WHERE `id` IN ('.db::generate_ins($update'id').')'$user);
            
        }
        
        if(
$delete_c 0){

            
$db -> query('DELETE FROM `messages` WHERE `id` IN ('.db::generate_ins($delete'id').')');
            
        }
        
    }
    
    public function 
set_read($ids){
        
        global 
$db;
        
        if(
is_array($ids)){
        
            
$ids_c count($ids);

            
$sql_text 'UPDATE `messages` SET `read` = 1 WHERE `id` IN (';

            foreach (
$ids as $key => $value) {

                
$sql_text .= $value;
                if(
$ids_c-!= $key)
                    
$sql_text .= ', ';

            }
            
            
$sql_text .= ')';
        
        }else{
            
            
$sql_text 'UPDATE `messages` SET `read` = 1 WHERE `id` = '.$ids;
            
        }
        
        
$db -> query($sql_text);
        
    }
    
    public function 
get_list($user){
        
        global 
$db;
        
        
$messages $db -> query("SELECT MAX(id) as `id` FROM `messages` WHERE (`from` = ? or `whom` = ?) and `delete` != ? GROUP BY `group`"$user$user$user);

        if(!empty(
$messages)){
            
            
$messages_text $db -> query('SELECT `text`,`from`,`whom`,`id`,`time`,`read` from `messages` WHERE `id` IN ('.db::generate_ins($messages'id').') ORDER by `time` DESC');
            
            foreach(
$messages_text as $key_t => $value_t){

                foreach(
$messages as $key => $value){
                    
                    if(
$messages[$key]['id'] == $messages[$key_t]['id']){
                        
                        
$result[] = array('id' => $messages[$key]['id'], 
                                          
'time' => $messages_text[$key_t]['time'],
                                          
'text' => $messages_text[$key_t]['text'],
                                          
'from' => $messages_text[$key_t]['from'],
                                          
'whom' => $messages_text[$key_t]['whom'],
                                          
'read' => $messages_text[$key_t]['read']);
                        
                    }
                    
                }
                
            }
        
        }else{
            
            
$result false;
            
        }
        
        return 
$result;
        
    }
    
}

?>
Онлайн: 0
Реклама