Файл: system/class/func.php
Строк: 638
<?
defined('GCMS') or die('Ошибка!');
////Файл,отвечающий за функции и операции (Идиотам не суваться!)
//Кодировщик
function shit($s){
$s = htmlspecialchars($s);
$search = array("n","rn",'|', ''', '$', '\', '^', '%', '`', " ", "x00", "x1A", "⁄∩");
$replace = array('<br />','<br />','|', ''', '$', '\', '^', '%', '`', '', '', '', '');
$s = str_replace($search, $replace, $s);
$s = stripslashes(trim($s));
return $s;
}
///обработка mb_strlen
if (!function_exists('mb_strlen')) {
function mb_strlen($str)
{
return strlen(iconv("UTF-8","cp1251", $str));
}
}
///обработка бб-кода изображений
function img($img){
$file = shit('http://'.$img[1]);
ini_set('display_errors','Off');
error_reporting('E_ALL');
if(preg_match("#http://(.*)(/)([a-zA-Z_0-9.])+(gif|png|jpg|jpeg)#ui",$file)){
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if($ext == 'gif' or $ext == 'jpeg' or $ext == 'jpg' or $ext == 'png'){
$img=' <a href="'.$file.'"><img src="'.$file.'" alt="Изображение" width="65" height="45"></a> ';
}else $img='[Изображение не найдено]';
}else $img='[Изображение не найдено]';
ini_set('display_errors','On');
return $img;
}
///YouTube видео
function youtube($url){
///**преобразуем
$url[1] = preg_replace('#(.*)/#si', '', $url[1]);
$url[1] = preg_replace('#(.*)v=#si', '', $url[1]);
///**формируем название видео
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://www.youtube.com/watch?v='.$url[1]);
curl_setopt($ch,CURLOPT_USERAGENT,'Sony Ericson j10i2');
curl_setopt($ch,CURLOPT_TIMEOUT,6);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$video_name = curl_exec($ch);
curl_close($ch);
$video_name = preg_replace('|(.*?)<title>(.*?)</title>(.*)|is','2',$video_name);
//Видео с YouTube
return '<br/><b>'.$video_name.'</b>
<video width="320" height="240">
<source type="video/youtube" src="http://www.youtube.com/watch?v='.$url[1].'" />
</video>';
}
final class func {
///Создание капчи
function capcha($activate=false){
global $db;
$nas = $db -> query("SELECT `name`,`parametr` FROM `settings` where `name`='capcha' or `name`='captcha_eazy'");
while ($assoc = $nas -> fetch_assoc()) {
$nastr[$assoc['name']]=$assoc['parametr'];
}
if($nastr['capcha']==0 or $activate==true){
if($nastr['captcha_eazy']==1)$array = array('1','2','3','4','5','6','7','8','9');
if($nastr['captcha_eazy']==2)$array = array('Q','W','E','R','T','Y','U','I','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M');
if($nastr['captcha_eazy']==3)$array = array('1','2','3','4','5','6','7','8','9','Q','W','E','R','T','Y','U','I','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M');
$i = 0;
$cod = '';
while ($i < 4) {
$cod .= $array[array_rand($array)];
++$i;
}
$capcha = $cod;
}else $capcha=null;
return $capcha;
}
///функция склонения в зависимости от пола
public function ifsex($id,$text_m,$text_w){
global $db;
$us = $db -> query("SELECT `sex` FROM `users` where `id`='".$id."'")-> fetch_assoc();
if($us['sex']=='m') return $text_m; else return $text_w;
}
//функция со склонением в зависимости от числа
public function GetName ($col, $name_one, $name_two, $name_three) {
$col = abs($col) % 100;
$intval = $col % 10;
if ($col > 10 && $col < 20) {
return $col.' '.$name_three;
}
else if ($intval > 1 && $intval < 5) {
return $col.' '.$name_two;
}
else if ($intval == 1) {
return $col.' '.$name_one;
}
return $col.' '.$name_three;
}
////функции транслита
function translate1 ($text){
$str = explode('!', $text);
$a = array('_','YA','Ya','ya','yee','YO','yo','Yo','ZH','zh','Zh','Z','z','CH','ch','Ch','SH','sh','Sh','YE','ye','Ye','YU','yu','Yu','JA','ja','Ja','A','a','B','b','V','v','G','g','D','d','E','e','I','i','J','j','K','k','L','l','M','m','N','n','O','o','P','p','R','r','S','s','T','t','U','u','F','f','H','h','W','w','x','q','Y','y','C','c','!');
$b = array(' ','Я','Я','я','ые','Ё','ё','Ё','Ж','ж','Ж','З','з','Ч','ч','Ch','Ш','ш','Ш','Э','э','Э','Ю','ю','Ю','Я','я','Я','А','а','Б','б','В','в','Г','г','Д','д','Е','е','И','и','Й','й','К','к','Л','л','М','м','Н','н','О','о','П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Щ','щ','ъ','ь','Ы','ы','Ц','ц','');
return $str[0].str_replace($a, $b, $str[1]);
}
function translate2 ($text) {
return str_replace('_', ' ', $text);
}
//Размер файла
public function size($file) {
if ($file >= 1048576000) {
$file = round(($file / 1073741824), 2)." Gb";
} elseif ($file >= 1024000) {
$file = round(($file / 1048576), 2)." Mb";
} elseif ($file >= 1000) {
$file = round(($file / 1024), 2)." Kb";
} else {
$file = round($file)." byte";
}
return $file;
}
///округлениче значения
public function kol($kol){
if(round($kol/1000)>0)$kol=round($kol/1000).'k+'; ///если больше 1 000,то выводим количество тысяч+
return $kol;
}
//Месяца
public function mes($mon) {
$mon = strtr($mon,array('1' => 'Января','2' => 'Февраля', '3' => 'Марта', '4' => 'Апреля', '5' => 'Мая', '6' => 'Июня',
'7' => 'Июля', '8' => 'Августа', '9' => 'Сентября', '10' => 'Октября', '11' => 'Ноября', '12' => 'Декабря'));
return $mon;
}
//Определение дня недели
public function date_day($date) {
$date=strftime("%w", strtotime(date('Y-m-d',$date)));
$date = strtr($date,array('1' => 'Понедельник', '2' => 'Вторник', '3' => 'Среда', '4' => 'Четверг',
'5' => 'Пятница', '6' => 'Суббота', '0' => 'Воскресение'));
return $date;
}
//Перевод времени
public function times($time) {
$dat = explode(' ',$time);
if ($dat[0]{0} == '0') $dat[0] = substr($dat[0],1);
$dat[1] = strtr($dat[1],array('01' => 'Января', '02' => 'Февраля', '03' => 'Марта', '04' => 'Апреля',
'05' => 'Мая', '06' => 'Июня', '07' => 'Июля', '08' => 'Августа', '09' => 'Сентября','10' => 'Октября',
'11' => 'Ноября', '12' => 'Декабря'));
$time = implode(' ',$dat);
return $time;
}
///плеер
public function player($url,$type,$width=320,$height=240) {
if($type!=1)$ext = strtolower(pathinfo('/'.$url, PATHINFO_EXTENSION));
//Видео с YouTube
if($type==1){
///**преобразуем
$url = preg_replace('#(.*)/#si', '', $url);
$url = preg_replace('#(.*)v=#si', '', $url);
echo '<video width="'.$width.'" height="'.$height.'">
<source type="video/youtube" src="http://www.youtube.com/watch?v='.$url.'" />
</video>';
}
//обычное видео формата mp4
if($type==2 and $ext=='mp4'){
echo '<video width="'.$width.'" height="'.$height.'" controls="controls">
<source src="'.$url.'" type="video/mp4" codecs="avc1.42E01E, mp4a.40.2">
</video>';
}
///аудиофайл формата mp3
if($type==3 and $ext=='mp3'){
echo '<audio controls="control"/>
<source src="'.$url.'" type="audio/mp3">
</audio>';
}
}
///проверяем нахождение пользователя и записываем нужное
public function where($where){
global $db;
$where=$db -> real_escape_string(htmlentities($where));
//главная стандартно
$wh='<a href="/">На главной</a>';
if(preg_match("#/users.php#si",$where))$wh='<a href="/users.php">Пользователи</a>';
if(preg_match("#/online.php#si",$where))$wh='<a href="/online.php">Кто онлайн</a>';
if(preg_match("#/help/#si",$where))$wh='<a href="/help/">Помощь/Инфо</a>';
//анкеты
if(preg_match("#/id([0-9])#",$where)){
$id=intval(abs(preg_replace("#/id([0-9])#",'1', $where)));
$arr = $db -> query("SELECT * FROM `users` WHERE `id` = '$id'")->fetch_array();
if($arr['id']!=null)$wh='<a href="/id'.$arr['id'].'"/>Анкета '.$arr['login'].'</a>';
}
//выводим в power.php на добавление
return $wh;
}
//Функция со временем
public function vremja($time = NULL) {
if ($time == NULL) $time = time();
$timep = date('d M Y в H:i', $time);
$time_p[0] = date('d M Y', $time);
$time_p[1] = date('H:i', $time);
$time_p[2] = date('H:i:s', $time);
if ($time_p[0] == date('d M Y')) $timep = 'Сегодня в '.$time_p[2].'';
if ($time_p[0] == date('d M Y', time()-60 * 60 * 24)) $timep = 'Вчера в '.$time_p[1];
if ($time_p[0] == date('d M Y', time()-60 * 60 * 48)) $timep = 'Позавчера в '.$time_p[1];
$timep = str_replace(array('Jan','Feb','Mar','May','Apr','Jun','Jul','Aug','Sep','Oct','Nov','Dec'),
array('Янв','Фев','Марта','Мая','Апр','Июня','Июля','Авг','Сент','Окт','Ноября','Дек'),$timep);
return $timep;
}
///Перевод секунд в нужный формат
public function ontime($string) {
if(floor($string/86400)>0){$day=floor($string/86400).' дней ';}else{$day=null;}
$hours=floor(($string/3600)-$day*24);
$min=floor(($string-$hours*3600-$day*86400)/60);
$sec=$string-($min*60+$hours*3600+$day*86400);
return $day.''.$hours.'ч. '.$min.'м. '.$sec.'сек.';
}
// Вырезание bb-кодов из цитаты
public function nobb($text = '') {
$text = strtr($text, array('[c]' => '', '[/c]' => '','[blue]' => '', '[/blue]' => ''));
return $text;
}
// Вырезание пробелов
public function delprobel($text = '') {
$text = strtr($text, array(' ' => ''));
return $text;
}
// Вырезание ненужных символов
public function delsim($text = '') {
$text = strtr($text, array('%' => '','_' => ''));
return $text;
}
// Замена точек на _
public function perf($text) {
$text = strtr($text, array('.' => '_'));
return $text;
}
////Корректировка html переносов
function br($msg)
{
$search = array("<br />");
$replace = array('');
$msg = str_replace($search, $replace, $msg);
return $msg;
}
///определение возраста
public function vozrast($d,$m,$y) {
if(!empty($d) and !empty($m) and !empty($y)){
$v=$d-date("d");
$vo=$m-date("m");
if($vo<=0 and $v<=0)
{
$voz=date("Y")-$y;
}
else
{
$voz=date("Y")-$y-1;
}
return $voz;
}
}
///Определяем ОС устройства
public function browser($my_browser) {
$oses = array (
'iPhone' => '(iPhone)','Android' => '(android)','iPad' => '(iPad)',
'Blackberry OS' => '(rim)','Windows 3.11' => 'Win16','Windows 95' => '(Windows 95)|(Win95)|(Windows_95)',
'Windows 98' => '(Windows 98)|(Win98)','Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
'Windows XP' => '(Windows NT 5.1)|(Windows XP)','Windows 2003' => '(Windows NT 5.2)',
'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)','Windows 7' => '(Windows NT 6.1)|(Windows 7)',
'Windows 8' => '(Windows NT 6.2)|(Windows 8)','Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
'Windows ME' => 'Windows ME','Open BSD'=>'OpenBSD','Sun OS'=>'SunOS','Linux'=>'(Linux)|(X11)',
'Safari' => '(Safari)','Macintosh'=>'(Mac_PowerPC)|(Macintosh)','QNX'=>'QNX','BeOS'=>'BeOS','OS/2'=>'OS/2',
'Google' => '(Googlebot)','Yahoo! | AOL' => '(Slurp) | (Yahoo! Slurp) | (Yammybot)','MSN | Live' => '(MSNBot)',
'Ask' => '(Teoma)','AltaVista' => '(Scooter)','Alexa' => '(ia_archiver)','Lycos' => '(Lycos)',
'Яндекс' => '(Yandex)','Рамблер' => '(StackRambler)','Мэйл.ру' => '(Mail.Ru)','Aport' => '(Aport)',
'Search Bot'=>'(nuhk)|(Openbot)|(Slurp/cat)');
foreach($oses as $os=>$pattern){if(preg_match('#'.$pattern.'#si', $my_browser)) {return $os;}}
return 'Other';
}
///Класс ленты
public function lenta($uid,$mess,$type,$where,$url=null) {
global $db;
$sql = $db -> query("SELECT * FROM `users` WHERE `id` = '".$uid."' LIMIT 1");
if ($sql-> num_rows > 0) {
//
if($where=='friends'){
$sql = $db -> query("SELECT * FROM `nuts` where `time`<>'0' and `user`='".$uid."' and `where`='friends'");
while ($u = $sql -> fetch_assoc()) {
$db -> query("INSERT INTO `lenta` (`uid`,`text`,`type`,`where`,`time`) VALUES ('".$uid."','".$mess."','".$type."','".$u['idwh']."','".time()."')");
}
}
if($where=='user'){
$db -> query("INSERT INTO `lenta` (`uid`,`text`,`type`,`where`,`time`) VALUES ('".$uid."','".$mess."','".$type."','".$uid."','".time()."')");
}
//
}
}
///вывод места проживания
public function max_import($max){
$max=$max*1024*1024;
return $max;
}
///вывод места проживания
public function region($city,$type=1,$view_none=0){
global $db;
$city=intval(abs($city));
$sql = $db -> query("SELECT * FROM `country_city` WHERE `id` = '".$city."' LIMIT 1");
if ($sql-> num_rows > 0) {
$city=$sql->fetch_assoc();
$region = $db -> query("SELECT * FROM `country_region` WHERE `id` = '".$city['region']."' LIMIT 1")->fetch_assoc();
$country = $db -> query("SELECT * FROM `country` WHERE `id` = '".$city['country']."' LIMIT 1")->fetch_assoc();
if($type==1)$view=$city['name']; // вывод: Город
if($type==2)$view=$city['name'].' ('.$region['name'].')'; // вывод: Город (Регион)
if($type==3)$view=$city['name'].' ('.$country['name'].')'; // вывод: Город (Страна)
if($type==4)$view=$region['name']; // вывод: Регион
if($type==5)$view=$country['name']; // вывод: Страна
}else if($view_none==1) $view='Не указан'; else $view=null;
return $view;
}
///поиск города по имени
public function cityname($name){
global $db;
$name=mysql_real_escape_string(htmlspecialchars(trim($name)));
$back=null;
$sql = $db -> query("SELECT * FROM `country_city` WHERE `name` = '".$name."' LIMIT 1");
if ($sql-> num_rows > 0) {
$city=$sql->fetch_assoc();
$back=$city['id'];
}
return $back;
}
///Класс системных уведомлений
public function sysmail($mess,$id) {
global $db;
$nas = $db -> query("SELECT `name`,`parametr` FROM `settings` where `name`='sys_mail'");
while ($assoc = $nas -> fetch_assoc()) {
$nastr[$assoc['name']]=$assoc['parametr'];
}
$nas->free();
if($nastr['sys_mail']!='0'){
$id = abs(intval($id));
$dialog = abs(intval($dialog));
$mess = shit($mess);
$user = $db -> dbcount('COUNT(`id`)','users',"`id`='$id'");
if($user>0){
$sq1 = $db -> query("SELECT `id` FROM `dialogs` WHERE `user`='$id' and `oid`='2' LIMIT 1");
$sq2= $db -> query("SELECT `id` FROM `dialogs` WHERE `oid`='$id' and `user`='2' LIMIT 1");
if (($sq1-> num_rows == 0)and($sq2-> num_rows == 0)) {
$db -> query("INSERT INTO `dialogs` (`user`,`oid`,`time`) VALUES ('".$id."','2','".time()."')");
$dialog = $db -> insert_id;
$db -> query("INSERT INTO `mail` (`fid`,`oid`,`dialog`,`text`,`time`) VALUES ('$id','2','$dialog','$mess','".time()."')");
}else{
if ($sq1-> num_rows > 0) {
$d=$sq1->fetch_assoc();
}elseif($sq2-> num_rows > 0){
$d=$sq2->fetch_assoc();
}
$dialog=$d['id'];
$db -> query("INSERT INTO `mail` (`fid`,`oid`,`dialog`,`text`,`time`) VALUES ('$id','2','$dialog','$mess','".time()."')");
$db -> query("Update `dialogs` set `time`='".time()."' where `id`='$dialog'");
}
}
}
}
///Обработчик ссылок на сайте(лента)
public function lenta_tag($text){
$text = preg_replace('/[gomy=(?:http://)?(.*?)](.*?)[/gomy]/',' <a href="'.ROOT.'1">2</a> ', $text);
$text = preg_replace('#[img](.*?)[/img]#si', '<img src="1">', $text);
return $text;
}
///проверка: является ли пользователь другом
public function friends($id,$ya){
global $db;
$sql = $db -> query("SELECT * FROM `nuts` WHERE `where`='frends' and `user`='".$id."' and `idwh`='".$ya."' and `time`<>'0' or `where`='frends' and `user`='".$ya."' and `idwh`='".$id."' LIMIT 1");
if($sql->num_rows>0){
return true;
}else return false;
}
///проверка: нахожусь ли я в игноре у пользователя
public function ignor($id,$ya){
global $db;
$sql = $db -> query("SELECT * FROM `nuts` WHERE `where`='ignor' and `idwh`='".$id."' and `user`='".$ya."' LIMIT 1");
if($sql->num_rows>0){
return true;
}else return false;
}
///bb-коды
public function tags($var)
{
global $db;
$nas = $db -> query("SELECT `name`,`parametr` FROM `settings` where `name`='bbcodes'");
while ($assoc = $nas -> fetch_assoc()) {
$nastr[$assoc['name']]=$assoc['parametr'];
}
$nas->free();
$var = preg_replace('#([^s&/<>"\-[]]|&[#a-z0-9]{1,7}){50}#i', '$0 ', $var);
if($nastr['bbcodes']=='on'){
$var = preg_replace('#[center](.*?)[/center]#si', '<center>1</center>', $var);
$var = preg_replace('#[b](.*?)[/b]#si', '<span style="font-weight: bold;"> 1 </span>', $var);
$var = preg_replace('#[i](.*?)[/i]#si', '<span style="font-style:italic;"> 1 </span>', $var);
$var = preg_replace('#[u](.*?)[/u]#si', '<span style="text-decoration:underline;"> 1 </span>', $var);
$var = preg_replace('#[s](.*?)[/s]#si', '<span style="text-decoration: line-through;"> 1 </span>', $var);
$var = preg_replace('#[red](.*?)[/red]#si', '<span style="color:red"> 1 </span>', $var);
$var = preg_replace('#[green](.*?)[/green]#si', '<span style="color:green"> 1 </span>', $var);
$var = preg_replace('#[blue](.*?)[/blue]#si', '<span style="color:blue"> 1 </span>', $var);
$var = preg_replace('#[c](.*?)[/c]#si', '<div class="cit">Цитата: 1 </div>', $var);
$var = preg_replace('/[url](?:http://)?(.*?)[/url]/', ' <a href="'.ROOT.'exit.php?mode=1&do=1&act='.$_SERVER['REQUEST_URI'] .'"> 1 </a> ', $var);
$var = preg_replace('/[urls?=s?(['"]?)(?:http://)?(.*?)1](.*?)[/url]/', ' <a href="http://$2"> $3 </a> ', $var);
$var = preg_replace_callback("|[img=(?:http://)?(.*?)]|",'img', $var);
$var = preg_replace_callback("/[youtube](?:http://)?(.*?)[/youtube]/",'youtube', $var);
$var = preg_replace("#[size=([0-9])](.+)[/size]#",'<font size="1">2</font>', $var);
$var = preg_replace("#[left](.+)[/left]#",'<p style="text-align:left">1</p>', $var);
$var = preg_replace("#[center](.+)[/center]#",'<p style="text-align:center">1</p>', $var);
$var = preg_replace("#[right](.+)[/right]#",'<p style="text-align:right">1</p>', $var);
return $var;
}else return $var;
}
////Копирайт на фотографии
public function copy($file,$papka,$text)
{
global $db;
$nas = $db -> query("SELECT `name`,`parametr` FROM `settings` where `name`='copyright'");
while ($assoc = $nas -> fetch_assoc()) {
$nastr[$assoc['name']]=$assoc['parametr'];
}
$nas->free();
if($nastr['copyright']=='yes'){
$path = pathinfo(ROOT.$papka.$file);
if ($path['extension'] == 'gif') {
$create = ImageCreateFromGif(ROOT.$papka.$file);
$type = 'ImageGif';}
else if ($path['extension'] == 'jpg' || $path['extension'] == 'jpeg') {
$create = ImageCreateFromJpeg(ROOT.$papka.$file);
$type = 'ImageJpeg';}
if ($create) {
$color = ImageColorALLocate($create,255,255,255);
$padding = imageSY($create) - (2 * 8);
ImageString($create, intval(2), ImageSX($create) -(iconv_strlen($text) * 8), $padding, htmlspecialchars($text), $color);
$type($create, ROOT.$papka.$file, 100);
}
}
}
///функция сохранения настроек
public function save_settings($array){
global $db;
foreach ($array as $key => $value) {
$db -> query("UPDATE `settings` SET `parametr` = '".$value."' where `name`='".$key."'");
}
return true;
}
////Вывод аватара
public function avatar($id,$w=56,$h=55,$url=0){
global $db;
$nas = $db -> query("SELECT `name`,`parametr` FROM `settings` where `name`='ststyle'");
while ($assoc = $nas -> fetch_assoc()) {
$nastr[$assoc['name']]=$assoc['parametr'];
}
$nas->free();
$arr = $db -> query("SELECT `login`,`foto`,`sex` FROM `users` WHERE `id` = '".$id."' LIMIT 1");
if ($arr -> num_rows > 0) {
$array = $arr -> fetch_assoc();
if($url==0){
$url1='<a href="/id'.$id.'">';
$url2='</a>';
}else{$url1=$url2=null;}
if($array['foto']!=0){
$foto = $db -> query("SELECT `url` FROM `files` where `what`='foto' and `id`='".$array['foto']."'")->fetch_assoc();
$avatar=$url1.'<img src="/system/resize.php?img=../downloads/foto/'.$foto['url'].'&width='.$w.'&height='.$h.'&i=0">'.$url2;
}else{
$avatar=$url1.'<img src="/styles/'.STYLE.'/images/'.$array['sex'].'.png" width='.$w.' height='.$h.' alt="нет авы"/>'.$url2;
}
}else $avatar=null;
if($avatar!=null)$avatar=$avatar;
return $avatar;
}
// Функции обработки текста
public function smiles($text){
global $db;
////Функция АнтиПост
$s = $db -> query("SELECT `mess`,`messoff` FROM `antimessage`");
while ($anti = $s -> fetch_assoc()) {
$text = strtr($text, array($anti['mess']=>$anti['messoff']));}
///Смайлы
$nas = $db -> query("SELECT `name`,`parametr` FROM `settings` where `name`='smiles'");
while ($assoc = $nas -> fetch_assoc()) {
$nastr[$assoc['name']]=$assoc['parametr'];
}
$nas->free();
if($nastr['smiles']=='on'){
$sm = $db -> query("SELECT * FROM `smiles`");
if ($sm -> num_rows > 0) {
while ($smile = $sm -> fetch_assoc()) {
if(mb_strlen($smile['smile']) >= 2)$text = strtr($text, array($smile['smile']=>'<img src="'.ROOT.'downloads/smiles/'.$smile['file'].'" alt="'.$smile['smile'].'"/>'));
}
}
}
///
return $text;
}
//Функция вывода онлайн или нет
public function online($user,$off=false){
global $db;
$arr = $db -> query("SELECT `login`,`lasttime` FROM `users` WHERE `id` = '$user'")->fetch_array();
if ($arr> 0){
if($online=1){
$only = $db -> query("SELECT `login` FROM `online` WHERE `login` = '$arr[login]'")->fetch_array();
if($only>''){
$log='<span class="date"/><b>Online</b></span>';
}else{
if($off==true)$log='<span class="date"/><b>Offline</b></span>';
}
}
}else $log=null;
return $log;
}
//Функция вывода ника
public function login($user,$url=1) {
global $db;
$arr = $db -> query("SELECT `login` FROM `users` WHERE `id` = '$user'")->fetch_array();
if ($arr> 0){
if($url==1)$log='<a href="'.ROOT.'id'.$user.'">'.$arr['login'].'</a>'; else $log=$arr['login'];
}else $log='[Удалён]';
return $log;
}
//Функция вывода Имя Фамилия или если не указаны-просто ник
public function famname($user,$url=1) {
global $db;
$arr = $db -> query("SELECT `login`,`name`,`fami` FROM `users` WHERE `id` = '$user'")->fetch_array();
if ($arr> 0){
if(mb_strlen($arr['name'])>0 or mb_strlen($arr['fami'])>0)
{
if($url==1)$log='<a href="'.ROOT.'id'.$user.'">'.$arr['name'].' '.$arr['fami'].'</a>'; else $log=$arr['name'].' '.$arr['fami'];
}else{
if($url==1)$log='<a href="'.ROOT.'id'.$user.'">'.$arr['login'].'</a>'; else $log=$arr['login'];
}
}else $log='[Удалён]';
return $log;
}
//Функция вывода ника+статус
public function user($user) {
global $db;
$arr = $db -> query("SELECT `login` FROM `users` WHERE `id` = '$user'")->fetch_array();
if ($arr> 0){
$only = $db -> query("SELECT `login` FROM `online` WHERE `login` = '$arr[login]'")->fetch_array();
if($only>''){
$log='<a href="'.ROOT.'id'.$user.'">'.$arr['login'].'</a> [Online]';
}else{
$log='<a href="'.ROOT.'id'.$user.'">'.$arr['login'].'</a> [Offline]';
}
}else $log='[Удалён]';
return $log;
}
//-------------функции зодиака-------------//
public function zodiak($d,$m)
{
if ($d != NULL and $m != NULL) {
if (($d >= 20) and ($m == 3)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_aries.png" title = "Овен" alt="Овен"/>';
}
elseif (($d <= 20) and ($m == 4)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_aries.png" title = "Овен" alt="Овен"/>';
}
if (($d >= 20) and ($m == 4)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_taurus.png" title = "Телец" alt="Телец"/>';
}
elseif (($d <= 21) and ($m == 5)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_taurus.png" title = "Телец" alt="Телец"/>';
}
if (($d >= 21) and ($m == 5)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_gemini.png" title = "Близнецы" alt="Близнецы"/>';
}
elseif (($d <= 21) and ($m == 6)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_gemini.png" title = "Близнецы" alt="Близнецы"/>';
}
if (($d >= 21) and ($m == 6)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_cancer.png" title = "Рак" alt="Рак"/>';
}
elseif (($d <= 22) and ($m == 7)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_cancer.png" title = "Рак" alt="Рак"/>';
}
if (($d >= 22) and ($m == 7)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_leo.png" title = "Лев" alt="Лев"/>';
}
elseif (($d <= 22) and ($m == 8)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_leo.png" title = "Лев" alt="Лев"/>';
}
if (($d >= 23) and ($m == 8)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_virgo.png" title = "Дева" alt="Дева"/>';
}
elseif (($d <= 20) and ($m == 9)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_virgo.png" title = "Дева" alt="Дева"/>';
}
if (($d >= 23) and ($m == 9)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_libra.png" title = "Весы" alt="Весы"/>';
}
elseif (($d <= 23) and ($m == 10)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_libra.png" title = "Весы" alt="Весы"/>';
}
if (($d >= 24) and ($m == 10)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_scorpio.png" title = "Скорпион" alt="Скорпион"/>';
}
elseif (($d <= 22) and ($m == 11)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_scorpio.png" title = "Скорпион" alt="Скорпион"/>';
}
if (($d >= 23) and ($m == 11)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_sagittarius.png" title = "Стрелец" alt="Стрелец"/>';
}
elseif (($d <= 21) and ($m == 12)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_sagittarius.png" title = "Стрелец" alt="Стрелец"/>';
}
if (($d >= 22) and ($m == 12)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_capricorn.png" title = "Козерог" alt="Козерог"/>';
}
elseif (($d <= 20) and ($m == 1)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_capricorn.png" title = "Козерог" alt="Козерог"/>';
}
if (($d >= 21) and ($m == 1)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac.png" title = "Водолей" alt="Водолей"/>';
}
elseif (($d <= 18) and ($m == 2)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac.png" title = "Водолей" alt="Водолей"/>';
}
if (($d >= 19) and ($m == 2)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_pisces.png" title = "Рыбы" alt="Рыбы"/>';
}
elseif (($d <= 20) and ($m == 3)) {
$znak = '<img src="/styles/'.STYLE.'/images/zodiak/zodiac_pisces.png" title = "Рыбы" alt="Рыбы"/>';
}
return $znak;
}
}
//Функция проверки авторизации
public function aut() {
global $db;
if ((isset($_SESSION['uid']) && isset($_SESSION['pass']))or(isset($_COOKIE['uid']) && isset($_COOKIE['pass']))) {
$uid = abs(intval($_SESSION['uid']));
$pass = shit($_SESSION['pass']);
$sql = $db -> query("SELECT * FROM `users` WHERE `id` = '".$uid."' AND `pass` = '".$pass."' LIMIT 1");
if ($sql -> num_rows == 0) {
$aut=false;
unset($_SESSION['uid']);
unset($_SESSION['pass']);
header('Location: /aut.php');
exit();
}
}else{
header('Location: /aut.php');
exit();
}
}
//Навигация
public function pagenav($act,$page,$total) {
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = ' <a class="page_nave" href="'.$act.'&page=1"><<</a>
<a class="page_nave" href="'.$act.'&page='. ($page - 1) .'"><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a class="page_nave" href="'.$act.'&page='. ($page + 1) .'">></a> <a class="page_nave" href="'.$act.'&page=' .$total. '">>></a>';
// Находим три ближайшие станицы с обоих краев, если они есть
if($page - 3 > 0) $page3left = ' <a class="page_nave" href="'.$act.'&page='. ($page - 3) .'">'. ($page - 3) .'</a> ';
if($page - 2 > 0) $page2left = ' <a class="page_nave" href="'.$act.'&page='. ($page - 2) .'">'. ($page - 2) .'</a> ';
if($page - 1 > 0) $page1left = ' <a class="page_nave" href="'.$act.'&page='. ($page - 1) .'">'. ($page - 1) .'</a> ';
if($page + 3 <= $total) $page3right = ' <a class="page_nave" href="'.$act.'&page='. ($page + 3) .'">'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' <a class="page_nave" href="'.$act.'&page='. ($page + 2) .'">'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' <a class="page_nave" href="'.$act.'&page='. ($page + 1) .'">'. ($page + 1) .'</a>';
// Вывод страниц
$nav = $pervpage.$page3left.$page2left.$page1left.' <span class="page_nave"/><b>'.$page.'</b></span> '.$page1right.$page2right.$page3right.$nextpage;
$class= '</div><div class="page">'.$nav.'</div>';
if($page != $total or $page != 1){
return $class;}
}
//Навигация тип 2
public function next_prev($act,$page,$total) {
if($page - 1 > 0) $back = ' <a class="button_menu" href="'.$act.'&page='. ($page - 1) .'">Показать предыдущее</a> ';
if($page + 1 <= $total) $next = ' <a class="button_menu" href="'.$act.'&page='. ($page + 1) .'">Показать следующее</a>';
if($page != $total or $page != 1){
return '<div class="but_menu">'.$back.''.$next.'</div>';
}
}
}
?>