<?
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"> ';}
elseif($user_data['pol'] == 2)
{
$glob_user = '<img title="Мужской пол" src="/engine/template/icons/user/2.png"> ';}
elseif($user_data['pol'] == 3)
{
$glob_user = '<img title="Женский пол" src="/engine/template/icons/user/3.png"> ';}
}
$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).' лет';
}
/*
* Условие отображение даты и времени
* ¶m $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;
}
}
}
?>