Просмотр файла engine/classes/user.class.php

Размер файла: 7.71Kb
<?

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) {
	    //Выводим все данные с таблицы users
            $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'];
			    	//Выводит ID		
			    		} 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 ++; 
				    } 
				    //Вывод $glob_user
        		    return $glob_user;
                }
		//Если пользователь не авторизован	
		}else {
		    foreach ($data as $key) { 
				//Выводит Ник
			    if($key == 'nick'){
			    	$glob_user = 'Системный бот';
			    //Выводит ID		
			    } 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).' лет';
    }
 
 



    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];
    }


    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']."'");
							} //end
						} //end
		    		} //end
				} //end
    } //exit
	
    /**
	  * Функция для работы с алфавитом
	  * param ListUser(язык вывода ников (ru или en))
	*/
    public static function ListUser($lang = 'en'){
        global $db;
            
			//Вывод русского алфавита
		    if($lang == 'ru') {
                $alpha = '<ul>
						  <li>А</li>  <li>Б</li>  <li>В</li>  <li>Г</li>  
						  <li>Д</li>  <li>Е</li>  <li>Ж</li>  <li>З</li>  
						  <li>И</li>  <li>К</li>  <li>Л</li>  <li>М</li>  
						  <li>Н</li>  <li>О</li>  <li>П</li>  <li>Р</li>  
						  <li>С</li>  <li>Т</li>  <li>У</li>  <li>Ф</li>  
						  <li>Х</li>  <li>Ц</li>  <li>Ч</li>  <li>Щ</li>  
						  <li>Ш</li>  <li>Э</li>  <li>Ю</li>  <li>Я</li>
						  <li><a href="?lang=en">END</a></li>  
						  </ul>';
			//Вывод английского алфавита
            }elseif($lang == 'en') {
                $alpha = '<ul>
				          <li>A</li>  <li>B</li>  <li>C</li>  <li>D</li> 
						  <li>E</li>  <li>F</li>  <li>G</li>  <li>H</li>  
						  <li>I</li>  <li>J</li>  <li>K</li>  <li>L</li>  
						  <li>M</li>  <li>N</li>  <li>O</li>  <li>P</li>  
						  <li>Q</li>  <li>R</li>  <li>S</li>  <li>T</li>  
						  <li>U</li>  <li>V</li>  <li>W</li>  <li>X</li>  
						  <li>Y</li>  <li>Z</li>  <li><a href="?lang=ru">Rus</a></li>
						  </ul>';
            }
                //Отправляем запрос в базу для вывода данных по выбранному алфавиту
		        $sql = "SELECT DISTINCT (LEFT(UPPER(nick),1)) as letter from `users` ORDER BY `letter`";
                    $query = $db->query($sql);
                        //Выводм все имеющие ники по алфавиту
					    while($reset = $db->get_array($query)){
						  
								
                            $alpha = str_replace(mb_substr($reset['letter'],0,1,'utf8'),'<a href="?letter='.$reset['letter'].'"><b>'.$reset['letter'].'</b></a>',$alpha);
						}
	    //Выводим значение всех действий					
        return '<div class="mainpost"><div class="abcsort">'.$alpha.'</div></div>';
    }
 
 
}

?>