Вход Регистрация
Файл: setk/mail/classes/class.EmailUser.php
Строк: 90
<?php 

/**
* Класс для определения пользователя
* А так же разбор адресов 
* $to = Email / ID / Null
* $EmailUser = new EmailUser($to);
* $user = $EmailUser->getUser();
* return Array()
*/
class EmailUser
{
    protected 
$address;
    
    public function 
__construct($to null) {
        
$this->address $to;
    }
    
    
/**
    * Вызов метода для определение пользователя
    * @return Callback
    */
    
public function getUser() {
        
$callback $this->getAddres();
        
        return 
call_user_func(array($this$callback['method']));
    }
    
    
/**
    * Определение адреса
    * @return Array()
    */
    
protected function getAddres() {
        if (
preg_match("#^[A-z0-9-._-]+@[A-z0-9._-]{2,}.[A-z]{2,8}$#ui"$this->address)) {
            
$data = array('method' => 'getUserEmail');
        } elseif (
$this->address === '0') {
            
$data = array('method' => 'getUserSystem');
        } elseif (
is_numeric($this->address) || preg_match('/^([A-z0-9-.-_]+)$/ui'$this->address$matches)) {
            
$data = array('method' => 'getUserSite');
        } else {
            
$data = array('method' => 'getUserNew');
        }
        
        return 
$data;
    }
    
    
/**
    * Пользователь Email
    * 
    * @return Array() 
    */
    
protected function getUserEmail() {
        global 
$config;
        
        if (
preg_match("#^[A-z0-9-._-]+@[A-z0-9._-]{2,}.[A-z]{2,4}$#ui"$this->address)) {
            if (
in_array(strtolower(preg_replace("/.*?@/"''$this->address)), $config['aliase'])) {
                
$user mysql_fetch_assoc(mysql_query("SELECT * FROM `user` AS u
                                                       WHERE `nick` = '" 
my_esc(preg_replace("/@.*/"''$this->address)) . "'
                                                       LIMIT 1"
));
                return 
$this->getUserSite($user);
            }
        }
        
        return array(
            
'avatar' => '<img src="style/icons/email.jpg" />'
            
'icon' => '<img src="style/icons/e.gif" />'
            
'nick' => text($this->address), 
            
'link' => text($this->address), 
            
'id' => $this->address
            
'ban' => false
        );
    }
    
    
/**
    * Пользователь сайт
    * @param undefined $user
    * 
    * @return Array()
    */
    
protected function getUserSite($user null) {
        if (
$user == null) {
            
$user mysql_fetch_assoc(mysql_query("SELECT * FROM `user` AS u
                                                   WHERE `id` = '" 
. (int) $this->address "' OR `nick` = '" my_esc($this->address) . "'
                                                   LIMIT 1"
));
        }
        
        if (empty(
$user)) {
            return 
$this->getUserNew();
        }
        
        
/**
        * Иконка пользователя
        */
        
$user['ban'] = false;
        
        if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `ban` WHERE `id_user` = '$user[id]' AND (`time` > '" time() . "' OR `navsegda` = '1')"), 0) != 0) {
            
$ic_id 'ban';
            
$user['ban'] = true;
        } else {
            if (
$user['group_access'] > && ($user['group_access'] < 10 || $user['group_access'] > 14)) {
                if (
$user['pol'] == 1) {
                    
$ic_id 1;
                } else {
                    
$ic_id 2;
                }
            } elseif ((
$user['group_access'] > && $user['group_access'] <= 7) || ($user['group_access'] > 10 && $user['group_access'] <= 14)) {
                if (
$user['pol'] == 1) {
                    
$ic_id 3;
                } else {
                    
$ic_id 4;
                }
            } else {
                if (
$user['pol'] == 1) {
                    
$ic_id 5;
                } else {
                    
$ic_id 6;
                }    
            }
        }
        
        
$user['avatar'] = $this->getAvatar($user['id'], $user['pol']);
        
$user['icon'] = '<img src="/style/user/' $ic_id '.png" class="icon" />';
                          
        
$user['link'] = $user['icon'] . ' <a class="' . ($user['ban'] == true 'user-ban' '') . '" href="/info.php?id=' $user['id'] . '">' $user['nick'] . '</a> ' . ($user['date_last'] > time() - 600 '<img src="style/icons/online.png" />' '');
        return 
$user;
    }
    
    
/**
    * Система сайта
    * @return Array()
    */
    
protected function getUserSystem() {
        return array(
            
'avatar' => '<img src="style/icons/system.png" />'
            
'icon' => '<img src="style/icons/ic_system.png" />'
            
'id' => 0
            
'nick' => 'Система',
            
'ban' => false
        );
    }
    
    
/**
    * Если новое сообщение
    * @return Array()
    */
    
protected function getUserNew() {
        return array(
            
'avatar' => ''
            
'icon' => ''
            
'id' => ''
            
'ban' => false
            
'nick' => 'Новое сообщение'
        
);
    }
    
    
/**
    * Определение аватара от социала или 6.6.4
    * @param undefined $id
    * @param undefined $sex
    * 
    * @return Url Avatar
    */
    
protected function getAvatar($id$sex) {
        if (
is_dir(H.'sys/avatar/')) {
            if (
is_file(H.'sys/avatar/' $id '.gif')) {
                
$patch '/sys/avatar/' $id '.gif';
            } elseif (
is_file(H.'sys/avatar/' $id '.png')) {
                
$patch '/sys/avatar/' $id '.png';
            } elseif (
is_file(H.'sys/avatar/' $id '.jpg')) {
                
$patch '/sys/avatar/' $id '.jpg';
            }
        } else {
            
$avatar mysql_fetch_assoc(mysql_query("SELECT * FROM `gallery_foto`
                                                     WHERE `id_user` = '" 
$id "' AND `avatar` = '1'
                                                     LIMIT 1"
));
            
            if (isset(
$avatar['id'])) {
                
$patch '/foto/foto50/' $avatar['id'] . '.' $avatar['ras'];
            }
        }
        
        if (!isset(
$patch)) {
            
$patch 'style/avatar/' $sex '.png';
        }
        
        return 
'<img class="avatar" src="' $patch '" />';
    }
}
Онлайн: 1
Реклама