Файл: sys/inc/classes/class.user.php
Строк: 272
<?
class user {
public static function nick($user = 0, $url = 1,
$on = 0, $medal = 0){
$nick = null;$online = null;$icon_medal = null;
$ank = mysql_fetch_assoc(mysql_query('
SELECT `nick`, `date_last`, `rating`, `browser`
FROM `user`
WHERE `id` = "'.$user.'" LIMIT 1'));
// --- Вывод ника
if ($user == 0) {
$ank = array('id' => '0', 'nick' => 'Cистема', 'pol' => '1', 'rating' => '0', 'browser' => 'wap', 'date_last' => time());
} elseif (!$ank) {
$ank = array('id' => '0', 'nick' => '[Удален]', 'pol' => '1', 'rating' => '0', 'browser' => 'wap', 'date_last' => time());
}
if ($url == true) {
$nick='</span><a href="/id'.$user.'"> '.text($ank['nick']).'</a>';
}else{$nick = text($ank['nick']);}
// --- Вывод значка онлайн
if ($user!=0 && $ank['date_last']>time()-600 && $on==true){
$online = ' <img src="/style/icons/online' . ($ank['browser'] == 'wap' ? '' : '_web') . '.gif" alt="Online" /> ';
}
// --- Вывод медали
$R = $ank['rating'];
if ($medal == 1 && $R >= 6){
if ($R >= 6 && $R <= 11) {$img = 1;}
elseif ($R >= 12 && $R <= 19) {$img = 2;}
elseif ($R >= 20 && $R <= 27) {$img = 3;}
elseif ($R >= 28 && $R <= 37) {$img = 4;}
elseif ($R >= 38 && $R <= 47) {$img = 5;}
elseif ($R >= 48 && $R <= 59) {$img = 6;}
elseif ($R >= 60) {$img = 7;}
$icon_medal = ' <img src="/style/medal/'.$img.'.png" alt="N"/>';
}
return $reSES_ = $nick . $icon_medal . $online;
}
// ---Обновление--- Аватар, иконка группы пользователя
public static function avatar($user = 0, $type = 0){
$AVATAR = '';$icon = '';
$ank = mysql_fetch_array(mysql_query("
SELECT LEFT(pu.nick,1),
pu.pol, pu.date_last, pu.group_access,
(SELECT pk.id
FROM gallery_foto AS pk
WHERE pk.id_user = pu.id
AND pk.avatar = '1') AS 'id'
FROM user AS pu
WHERE pu.id = '$user' LIMIT 1"));
if ($ank==''){
$ank = array('id' => '-1', 'pol' => '0', 'ras' => 'jpg',
'group_access' => '0', 'date_last' => '0');$ank[0]='S';
}
// --- Аватар
if ($type == 0 || $type == 1) {
$colorPOL=$ank['pol']=='1'?'Blue':'HotPink';
$colorON=($ank['date_last']>time()-600)?'Red':'Gray';
if (is_file(H."sys/gallery/foto/$ank[id].jpg")){
$AVATAR = '<img class="avatar-ok"
style = "border-width: 3px;
border-style:solid;
border-left-color:#fff;
border-top-color:#fff;
border-right: 3px solid '.$colorON.';
border-bottom: 3px solid '.$colorPOL.';"
src="/foto/foto50/'.$ank['id'].'.jpg'.'" alt="Avatar" width="48px"/>';
}else{
$userNICK=mb_strtoupper($ank[0], 'UTF-8');
$backgROUND = retranslit($userNICK);
$conclusionCOLOR = array(
'W' => 'Gold','Z' => 'Yellow','Y' => 'LightYellow',
'C' => 'LightYellow',
'X' => 'LemonChiffon','V' => 'LightGoldenrodYellow',
'U' => 'DarkOliveGreen',
'J' => 'DarkOliveGreen',
'[' => 'DarkOliveGreen',
']' => 'DarkOliveGreen',
'T' => 'MediumAquamarine','S' => 'DarkSeaGreen', 'R' => 'LightSeaGreen',
'Q' => 'DarkCyan','P' => 'Teal','O' => 'Cyan',
'N' => 'LightCyan','M' => 'PaleTurquoise','L' => 'Aquamarine',
'K' => 'Turquoise','J' => 'MediumTurquoise','I' => 'DarkTurquoise',
'H' => 'CadetBlue','G' => 'SteelBlue','F' => 'LightSteelBlue',
'A' => 'LightSkyBlue','w' => 'DeepSkyBlue','z' => 'DodgerBlue',
'y' => 'CornflowerBlue','x' => 'MediumSlateBlue','v' => 'RoyalBlue',
'u' => 'Blue','t' => 'MediumBlue','s' => 'DarkBlue',
'r' => 'Navy','q' => 'MidnightBlue', 'p' => 'Cornsilk',
'o' => 'BlanchedAlmond','n' => 'Bisque','m' => 'NavajoWhite',
'l' => 'Wheat', 'k' => 'BurlyWood','j' => 'Tan','i' => 'RosyBrown',
'h' => 'SandyBrown','g' => 'Goldenrod','f' => 'DarkGoldenrod',
'e' => 'Peru','d' => 'Chocolate','b' => 'SaddleBrown','a' => 'Sienna',
'^' => 'MintCream',' ' => 'Azure','' => 'AliceBlue',
'"' => 'Seashell','_' => 'Linen','-' => 'LavenderBlush',
'0' => 'Gainsboro','1' => 'LightGray','2' => 'Silver','3' => 'DarkGray',
'4' => 'Gray','5' => 'DimGray','6' => 'LightSlateGray',
'7' => 'SlateGray','8' => 'DarkSlateGray', '9' => 'Black');
$conclusionCOLOR_
=(@$conclusionCOLOR[$backgROUND]?
"$conclusionCOLOR[$backgROUND]":'Red');
$selectBAC = $conclusionCOLOR_;
?><span style="background-color:<?=$selectBAC?>;
border-width: 3px;
border-style:solid;
border-bottom: 3px solid <?=$colorPOL?>;
border-right: 3px solid <?=$colorON?>;"
class = "avatar-no"><?=$userNICK?></span><?}}
if ($type == 0 || $type == 2) {
if (mysql_result(mysql_query("
SELECT COUNT(id)
FROM `ban`
WHERE `id_user` = '$user'
AND (`time` > '".time()."'
OR `navsegda` = '1')"),0)!= 0){
$ic_ID = 'ban';
} else {
if ($ank['group_access']>7 && ($ank['group_access']<10 || $ank['group_access']>14)){
$ic_ID=$ank['pol']=='1'?'1':'2';
} elseif (($ank['group_access']>1 && $ank['group_access']<=7) || ($ank['group_access']>10 && $ank['group_access']<=14)){
$ic_ID=$ank['pol']=='1'?'3':'4';
}else{$ic_ID=$ank['pol']=='1'?'5':'6';}}
// --- Вывод иконок как на социале
$iconON = ($ank['date_last']>time()-600)?'':'off';
$icon = ' <img src="/style/user/'.$iconON.''.$ic_ID.'.png" alt="N" class="icon" id="icon_group"/>';
}
return $AVATAR . $icon;
}
/*--- Дальше перебирать не стал, по сути бред
static а значит и весь класс, особенно
ниже get_user, можно попытаться сделать из
неё "трансформера"--*/
/**
* / Функция выборки пользовательских данных
* / Выводин данные из таблицы user
* / и генериует аватар, иконки медалей и онлайна в массив
* $ank['link'], $ank['avatar'], $ank['online'],
* $ank['medal'], $ank['icon']
*/
static function get_user($ID = 0, $photo = 1)
{
/*
* $ID - ID юзера
* $photo - Параметр на выборку аватара
*/
global $user;
$ID = (int) $ID;
$ank = array();
$ank['group_name'] = null;
// Если вы авторизованы, и функция вызывает
// ваш ID, то просто берем данные из $user
if ($user['id'] == $ID) {
$ank = $user;
} else {
$ank = mysql_fetch_assoc(mysql_query('SELECT * FROM `user` WHERE `id` = "' . $ID . '" LIMIT 1'));
}
// Если система или неопределенный юзер
if ($ID == 0) {
$ank = array('id' => '0', 'pol' => '1', 'group_access' => '0', 'level' => '999');
} elseif (!$ank) {
$ank = array('id' => '0', 'pol' => '1', 'group_access' => '0', 'level' => '0');
} else {
$tmp_us = mysql_fetch_assoc(mysql_query("SELECT `level`,`name` AS `group_name` FROM `user_group` WHERE `id` = '" . $ank['group_access'] . "' LIMIT 1"));
$ank['group_name'] = $tmp_us['group_name'];
$ank['level'] = $tmp_us['level'];
}
// Если поставлен параметр выводить фото
if ($photo) {
// Определяем аватар
$avatar = mysql_fetch_array(mysql_query("SELECT id,ras FROM `gallery_foto` WHERE `id_user` = '$ID' AND `avatar` = '1' LIMIT 1"));
if (is_file(H.'sys/gallery/50/' . $avatar['id'] . '.jpg')) {
$ank['avatar'] = ' <img class="avatar" src="/sys/gallery/50/' . $avatar['id'] . '.jpg" alt="Avatar" /> ';
} else {
$ank['avatar'] = ' <img class="avatar" src="/style/user/avatar.gif" width="50" alt="No Avatar" /> ';
}
}
// Вывод значка онлайн
if ($ID != 0 && $ank['date_last'] > time() - 600) {
$ank['online'] = ' <img src="/style/icons/online' . ($ank['browser'] == 'wap' ? '' : '_web') . '.gif" alt="Online" /> ';
} else {
$ank['online'] = null;
}
// Вывод медали
$R = $ank['rating'];
if ($R >= 6) {
if ($R >= 6 && $R <= 11) {$img = 1;}
elseif ($R >= 12 && $R <= 19) {$img = 2;}
elseif ($R >= 20 && $R <= 27) {$img = 3;}
elseif ($R >= 28 && $R <= 37) {$img = 4;}
elseif ($R >= 38 && $R <= 47) {$img = 5;}
elseif ($R >= 48 && $R <= 59) {$img = 6;}
elseif ($R >= 60) {$img = 7;}
$ank['medal'] = ' <img src="/style/medal/' . $img . '.png" alt="*" /> ';
} else {
$ank['medal'] = null;
}
// Иконка пользователя
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ban` WHERE `id_user` = '$ID' AND (`time` > '" . time() . "' OR `navsegda` = '1')"), 0) != 0) {
$ic_id = 'ban';
} else {
if ($ank['group_access'] > 7 && ($ank['group_access'] < 10 || $ank['group_access'] > 14)) {
if ($ank['pol'] == 1) {
$ic_id = 1;
} else {
$ic_id = 2;
}
} elseif (($ank['group_access'] > 1 && $ank['group_access'] <= 7) || ($ank['group_access'] > 10 && $ank['group_access'] <= 14)) {
if ($ank['pol'] == 1) {
$ic_id = 3;
} else {
$ic_id = 4;
}
} else {
if ($ank['pol'] == 1) {
$ic_id = 5;
} else {
$ic_id = 6;
}
}
}
// --- Вывод иконок как на социале
$iconON = ($ank['date_last']>time()-600)?'':'off';
$ank['icon'] = ' <img src="/style/user/'.$iconON.''.$ic_id.'.png" alt="N" class="icon" id="icon_group"/>';
$ank['link'] = ' <a href="/id' . $ID . '">' . text($ank['nick']) . '</a> ';
$ank['nick'] = text($ank['nick']);
return $ank;
}
public static function onNOW(
$usER_POL,$timES){
$timES=($timES==0?'0':"$timES");
if ($timES!='0'){$polSEL=($usER_POL==1?
'Был в сети':'Была в сети');
$show_NOW=($timES > time()-600 ?
'Сейчас на сайте':"$polSEL: ".vremja($timES)."")
?><div style = 'color:red' class='rekl'>
<?=$show_NOW?></div><?}}
/*-- Черный список --*/
public static function BlackLIST(
$seLES_ = 0, $usBL = 0, $BliST = 0, $myL =0){
global $user, $err, $set, $conf;
$urlREF = '/user/info/black_list.php';
$imG = 'img src=/style/icons/bl_';
$msG = 'Заблокировать';
$msG_ = 'Разблокировать';
$anDU = "AND pu.group_access <= $user[group_access]";
$anDU = $seLES_ !== 'error'?"$anDU":'';
$unDU = $seLES_ !== 'error'?"$usBL":"$user[id]";
$unST = $BliST === 'true'?"$usBL":"$user[id]";
$ank = mysql_fetch_array(mysql_query("
SELECT pu.id, pu.group_access,
(SELECT pm.list FROM black_list AS pm
WHERE pm.id = '$user[id]') AS 'ML',
(SELECT pk.list FROM black_list AS pk
WHERE pk.id = '$unST') AS 'list'
FROM user AS pu
WHERE pu.id = $unDU $anDU LIMIT 1"));
if ($BliST === 'true'){
$aNUMS = JSon_DEcode(@$ank['ML']? "$ank[ML]":'0');
$LISTS_ = @$aNUMS->{'num_id'};
$aSION_ = strripos($LISTS_, $usBL);
$ansTL = @$aSION_ == '1'?'del':'ok';
if ($usBL != $user['id']
and $myL == true)
{
?><<?=$imG?><?=$ansTL?>.png alt='N'/>
<a href='<?=$urlREF?>?list=<?=$ansTL?>&id=<?=$usBL?>'>
<?=$aSION_?
"$msG_":"$msG"
?></a></br><?
}
$aNUM = JSon_DEcode(@$ank['list']? "$ank[list]":'0');
$LIST_ = @$aNUM->{'num_id'};
$LIST_ = str_replace('.', '|', "$LIST_|");
$uS_ = ("|$user[id]|");
$admisSION = strripos($LIST_, $uS_);
if ($admisSION === false){}
else {?><div class='err'>
Сожалеем, но
Вы в чёрном списке</div>
<div class='nav1'>
<a href='<?=$urlREF?>?list=ok&id=
<?=$unST?>'><?=$msG?></a></div><?
die(require H.'sys/inc/tfoot.php');
}
return;
}
if ($seLES_ === 'error')return $ank;
if ($seLES_ !== 'error'){
$newDAT=$ank['list'] === NULL ?'true':'false';
$aNUM=JSon_DEcode(@$ank['list']? "$ank[list]":false);
$LIST_ = @$aNUM->{'num_id'};
$data = str_replace("$ank[0]", 'false', $LIST_);
$data = $ank[0]?"$data":'false';
$accESS = preg_match("/false/i", "$data")?'0':'true';
if ($seLES_ == 'delete'){$accESS = 'true';
$data = str_replace('false.', '', $data);
$LOs_ = preg_match("/$ank[0]/i", "$LIST_")?'true':'false';
}
else $LOs_ = 'true';
if ($accESS === 'true'
and $seLES_ !== 'error'
and $LOs_ === 'true'){
if ($seLES_ == 'update')$uDAT="$data.$ank[0]";
elseif ($seLES_ == 'delete'){
$uDAT = str_replace('..$ank[0]', '', $data);
$uDAT = str_replace('.false', '', $uDAT);
}
if ($uDAT !== 'false' and $ank[0] != $user['id']){
$aDAT = array('num_id' => $uDAT);
$ank=JSon_ENcode($aDAT);
if ($newDAT === 'true')
mysql_query("INSERT INTO `black_list` (`id`, `list`)
values ('".$user['id']."', '".$ank."')");
else
mysql_query("UPDATE `black_list`
SET `list` = '$ank'
WHERE `id` = '$user[id]' LIMIT 1");
msg('Успешно');
?><a href='<?=$urlREF?>'>Назад</a><?
} else
$err='Упс, ошибка...))';
} else
$err='Ошибка';
}}
/*-- The End --*/
}
?>