View file engine/classes/user.class.php

File size: 5.84Kb
<?

class user {

    /*
	 * Получение данных сразу нескольких пользователей и нескольних полей
	   @param array $id_user - Индефикатор, $data - Данные которых нужно выводить
	   @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 $birth_date дата рождения в формате 'YYYY-MM-DD'
      * @return int
      */
    public static function Age($birth_date)
	{
	
        return (int)((date('Ymd') - date('Ymd', strtotime($birth_date))) / 10000).' лет';
    
	}
 
    /*
	 * Условие отображение даты и времени 
	 * &param $realtime
	*/
    public static function plural($n, $plurals) 
	{
	    
			$plural =
		    	($n % 10 == 1 && $n % 100 != 11 ? 0 :
		    	($n % 10 >= 2 && $n % 10 <= 4 &&
		    	($n % 100 < 10 or $n % 100 >= 20) ? 1 : 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 > 0 && $period < 60 ) ) break;
				            
							$result = floor($diff / $period);

				                if ( $result > 0 ) 
								{
						            
									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 ) > 1 ) 
			{
				    
				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;
			
				}

	} 
 
}

?>