Вход Регистрация
Файл: engine/classes/user.class.php
Строк: 81
<?php
/**
 * Класс для работы с пользователями
 * 
 * @package Classes
 * @author Shamsik
 * @link http://shcms.ru
 */
class user {

    
/**
     * Выдаем пользователю баллы за активность
     * 
     * @return string
     */
    
public static function points(){
        global 
$users,$db,$id_user;
        
        
$db->query("UPDATE `users` SET `points` = '".($users['points']+1)."' WHERE `id` = '{$id_user}'");
    }
    
/**
     * Понятно использование группы пользователей
     * 
     * @param $id Индификатор пользователя
     */
    
public static function group($id){
        global 
$db;
        
$guser $db->get_array($db->query("SELECT * FROM `users` WHERE `id` = '{$id}'"));
            
            if(
$guser['group'] == 15) {
                
$groups  '<font color="green">Администратор</font>';
            }else{
                
$groups '<font color="red">Пользователь</font>';
            }
        return 
$groups;    
    }
    
/**
     * Получение данных сразу нескольких пользователей и нескольних полей*
     * @param array $id_user - Индефикатор, $data - Данные которых нужно выводить
     * @param $data  = array('nick','id','email',и.т.д) Через запятую выводим поля
     */
    
public static function users($id_user,$data,$icon false) {
    global 
$db;
            
//Если существует пользователь
        
if($id_user == true) {
                
//Выводим данные по пользователю
                
$query $db->query("SELECT * FROM `users` WHERE `id` = '".$id_user."' OR `nick` = '".$id_user."'");
                    while( 
$user_data $db->get_array$query ) ) {
            foreach ( 
$data as $key ){
                            
//Если выдает ник то выводим ее
                 
if( $key == 'nick' ){
                                
//Если с иконкой то выводим
                
if( $icon == true ) {
                                    
//Пол не указан
                    
if($user_data['pol'] == 1) {
                    
$glob_user '<img title="Не определился пол" src="/engine/template/icons/user/1.png">&nbsp;';
                                    
//Мужской пол    
                                    
}elseif($user_data['pol'] == 2){
                    
$glob_user '<img title="Мужской пол" src="/engine/template/icons/user/2.png">&nbsp;';
                                    
//Женский пол
                                    
}elseif($user_data['pol'] == 3) {
                    
$glob_user '<img title="Женский пол" src="/engine/template/icons/user/3.png">&nbsp;';
                                        
                                    }
                }    
                
$glob_user .= $user_data['nick'];
                            
                }elseif(
$key == 'id') {
                    
$glob_user .= $user_data['id'];
                            
                }elseif(
$key == 'group'){
                
$glob_user .= $user_data['group'];
                }elseif(
$key == 'time') {
                
$glob_user .= $user_data['time'];
                }elseif(
$key == 'war_balls') {
                
$glob_user .= $user_data['war_balls'];
                }
            
$x ++; 
            } 
                  
                    return 
$glob_user;
                    }
            
        }else {
        foreach (
$data as $key) { 
            if( 
$key == 'nick' ){
            
$glob_user 'Системный бот';
            } elseif( 
$key == 'id' ) {
            
$glob_user .= 0;
            }
            
$x ++; 
        } 
        
//Вывод
            
return $glob_user;
        }
    }
    
    
/**
     * Получить возраст по дате рождения
     * 
     * @param $y, $m, $d дата рождения в формате 'YYYY-MM-DD'
     * @return int
     */
    
public static function age($y$m$d)
    {
   if(
$m date('m') || $m == date('m') && $d date('d'))
      return (
date('Y') - $y 1).' лет'// если ДР в этом году не было, то ещё -1
    
else
      return (
date('Y') - $y).' лет'// если ДР в этом году был, то отнимаем от этого года год рождения
  
}
 
    
/**
     *  Условие отображение даты и времени
     * 
     * @param $realtime
     */
    
public static function plural($n$plurals) {
    
$plural =
        (
$n 10 == && $n 100 != 11 :
            (
$n 10 >= && $n 10 <= &&
        (
$n 100 10 or $n 100 >= 20) ? 2));
        
       return 
$plurals[$plural];
    }

    
/**
     * Человеское отображение даты и времени
     * 
     * @var plural
     */
    
public static function realtime($dt$precision 2
    {
    
        
$times = array(
            
365*24*60*60    =>  array("год""года""лет"),
            
30*24*60*60     =>  array("месяц""месяца""месяцев"),
            
7*24*60*60      =>  array("неделю""недели""недель"),
            
24*60*60        =>  array("день""дня""дней"),
            
60*60           =>  array("час""часа""часов"),
            
60              =>  array("минуту""минуты""минут"),
        );

        
$diff time() - $dt;
            
            if(
$diff 3)  $output '';
                elseif(
$diff 30)  $output 'только что'
                elseif(
$diff 60)    $output 'меньше минуты';
            else {
            
$output = array();
            
$exit 0;
                        foreach(
$times as $period => $name) {
                            if( 
$exit >= $precision || ($exit && $period 60 ) ) break;
                
$result floor($diff $period);
                            if ( 
$result ){
                if(
$result == 1$output[] = user::plural($result$name);
                else 
$output[] = $result ' ' user::plural($result$name);
                                    
$diff -= $result $period;
                    
$exit++;
                } else if (
$exit 0$exit++;
                }
            if (
$precision 3$sep " и "; else $sep ", ";
                        
$output implode($sep$output);
            
        }
    return 
$output;    
    }
     
    
/**
     * Неудачные попытки авторизации
         * 
    */
    
public static function limit_auth$glob 
    {
        global 
$db;
            
        
$auth $db->query("SELECT * FROM `users`");
        if( 
$db->num_rows$auth ) > ) {
            while( 
$aut $db->get_array$auth ) ) {
            if( 
$aut['limit_auth'] >= $glob ) {
                if(
time() > $aut['limit_time']) {
                                
$db->query("UPDATE `users` SET `limit_auth` = '0' ,`limit_time` = '0' WHERE `id` = '".$aut['id']."'");
                } 
            }
           }
        } 
        } 
    
    
/**
     * Проверка на доступность пользователя
     */
    
public static function userd ($var
    {
        global 
$db
        
        
$vars $db->super_query"SELECT `id` FROM `users` WHERE `id` = '{$id}'" );
        if(
$db->num_rows($vars) != $var ){
            echo 
engine::error(Lang::__('Данных пользователь не существует'));
            echo 
engine::home( array( Lang::__('Назад') , 'index.php' ) );
            exit;
        }

    } 
 
}
Онлайн: 1
Реклама