Файл: sys/func.php
Строк: 305
<?php
session_start();
ob_start();
define('home', 'http://'.$_SERVER['HTTP_HOST']); //адрес сайта
function daytime($var) {
    $date = date('d.m.Y', $var);
    if ($date == date('d.m.Y')) {
        $full_time = date('Сегодня в H:i', $var);
    } elseif ($date == date('d.m.Y', time() - 3600 * 24)) {
        $full_time = date('Вчера в H:i', $var);
    } elseif ($date == date('d.m.Y', time() + 3600 * 24)) {
        $full_time = date('Завтра в H:i', $var);
    } else {
        $full_time = date('d.m.Y в H:i', $var);
    }
    return $full_time;
}
function showDate( $date ) // $date --> время в формате Unix time
{
    $stf      = 0;
    $cur_time = time();
    $diff     = $cur_time - $date;
 
    $seconds = array( 'секунда', 'секунды', 'секунд' );
    $minutes = array( 'минута', 'минуты', 'минут' );
    $hours   = array( 'час', 'часа', 'часов' );
    $days    = array( 'день', 'дня', 'дней' );
    $weeks   = array( 'неделя', 'недели', 'недель' );
    $months  = array( 'месяц', 'месяца', 'месяцев' );
    $years   = array( 'год', 'года', 'лет' );
    $decades = array( 'десятилетие', 'десятилетия', 'десятилетий' );
 
    $phrase = array( $seconds, $minutes, $hours, $days, $weeks, $months, $years, $decades );
    $length = array( 1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600 );
 
    for ( $i = sizeof( $length ) - 1; ( $i >= 0 ) && ( ( $no = $diff / $length[ $i ] ) <= 1 ); $i -- ) {
        ;
    }
    if ( $i < 0 ) {
        $i = 0;
    }
    $_time = $cur_time - ( $diff % $length[ $i ] );
    $no    = floor( $no );
    $value = sprintf( "%d %s ", $no, getPhrase( $no, $phrase[ $i ] ) );
 
    if ( ( $stf == 1 ) && ( $i >= 1 ) && ( ( $cur_time - $_time ) > 0 ) ) {
        $value .= time_ago( $_time );
    }
 
    return $value . ' назад';
}
 
function getPhrase( $number, $titles ) {
    $cases = array( 2, 0, 1, 1, 1, 2 );
 
    return $titles[ ( $number % 100 > 4 && $number % 100 < 20 ) ? 2 : $cases[ min( $number % 10, 5 ) ] ];
}
// Функции постраничной навигации
function page($k_page = 1) {
    if (isset($_GET['page'])) {
        if ($_GET['page'] == 'end') {
            $page = intval($k_page);
        } elseif (is_numeric($_GET['page'])) {
           $page = intval($_GET['page']);
        }
        if ($page < 1) {
            $page = 1;
        } else {
            if ($page > $k_page) {
                $page = $k_page;
            }
        }
    } else {
        $page = 1;
    }
    return $page;
}
function k_page($k_post = 0, $k_p_str = 10) {
    $v_pages = $k_post != 0 ? ceil($k_post / $k_p_str) : 1;
    return $v_pages;
}
function navigation($k_page = 1, $page = 1, $link = '?') {
    echo '<nav aria-label="Page navigation">
  <ul class="pagination">';
    if ($page < 1) {
        $page = 1;
    }
    if ($page != 1) {
        echo '<li>
      <a href="'.$link.'page=1" aria-label="Previous">
        <span aria-hidden="true">«</span>
      </a>
    </li>
    <li><a href="'.$link.'page=1">1</a></li>';
    } else {
        echo '<li class="active"><a href="#">1</a></li>';
    }
    for ($i = -3; $i <= 3; $i++) {
        if ($page + $i > 1 && $page + $i < $k_page) {
            if ($i == -3 && $page + $i > 2) {
                echo '<li class="disabled"><a href="#">...</a></li>';
            }
            if ($i != 0) {
                echo '<li><a href="'.$link.'page='.($page + $i).'">'.($page + $i).'</a></li>';
            } else {
                echo '<li class="active"><a href="#">'.($page + $i).'</a></li>';
            }
            if ($i == 3 && $page + $i < $k_page - 1) {
                echo '<li class="disabled"><a href="#" aria-label="Previous"><span aria-hidden="true">...</span></a></li>';
            }
        }
    }
    if ($page != $k_page) {
        echo '<li><a href="'.$link.'page=end">'.$k_page.'</a></li> 
        <li>
      <a href="'.$link.'page=end" aria-label="Next">
        <span aria-hidden="true">»</span>
      </a>
    </li>';
    } elseif ($k_page > 1) {
        echo '<li class="active"><a href="#">'.$k_page.'</a></li>';
    }
    echo '</ul>
</nav>';
}
/*
================================================
================================================
================================================
*/
// Ручной фильтр
function f($str) {
    $str = trim(stripslashes(htmlspecialchars($str, ENT_QUOTES)));
    return $str;
}
/*Градиент цвета ника 555555555555555555555555555555555555555*/
function str2gradient($text,$from='', $to='', $mode="hex")
{
    if($mode=="hex")
    {
        $to   = hexdec($to[0].$to[1]).",".hexdec($to[2].$to[3]).",".hexdec($to[4].$to[5]);
        $from = hexdec($from[0].$from[1]).",".hexdec($from[2].$from[3]).",".hexdec($from[4].$from[5]);
    }
    if( empty($text) )
        return '';
    else
        $levels=mb_strlen($text);
    if (empty($from))
        $from = array(0,0,255);
    else
        $from = explode(",", $from);
    if (empty($to))
        $to = array(255,0,0);
    else
        $to = explode(",", $to);
    $output = "";
    for ($i=1;$i<=$levels;$i++)
    {
        for ($ii=0;$ii<3;$ii++)
        {
            $tmp[$ii] = $from[$ii] - $to[$ii];
            $tmp[$ii] = floor($tmp[$ii] / $levels);
            $rgb[$ii] = $from[$ii] -($tmp[$ii] * $i);
            if ($rgb[$ii] > 255) $rgb[$ii] = 255;
            $rgb[$ii] = dechex($rgb[$ii]);
            $rgb[$ii] = mb_strtoupper($rgb[$ii]);
            if (mb_strlen($rgb[$ii]) < 2) $rgb[$ii] = "0$rgb[$ii]";
        }
        $output .= '<font color="'.$rgb[0].$rgb[1].$rgb[2].'">' . $text[$i -1 ] . '</font>';
    }
    return $output;
}
function buildTextGradient($str, $points, $mode="hex"){
    if( count($points) >= 2 && !empty($str) ){
        if( count($points) == 2 ){
            return iconv("windows-1251", "UTF-8", str2gradient( iconv("UTF-8", "windows-1251", $str), $points[0], $points[1], $mode ) );
        }else{
            $str = iconv("UTF-8", "windows-1251", $str);
            $parts_count = count($points) - 1;
            $let_in_part = round( strlen($str) / $parts_count );
            $result = '';
            for($i = 0; $i < $parts_count; $i++){
                $s = substr($str, $i * $let_in_part, ($i < $parts_count ? $let_in_part : strlen($str) - $i * $let_in_part) );
                $result .= str2gradient( $s, $points[ $i ], $points[ $i + 1 ], $mode );
            }
            return iconv("windows-1251", "UTF-8", $result );
        }
    }
    return '';
}
/*==================================ФУНКЦИЯ НИКА===========================================================*/
function ank($id) {
    global $db;
$usq = $db->query("SELECT * FROM `users` WHERE `id` = '".$id."'")->fetch_assoc();
//должность
if($usq['admin'] == 3) {
$rang = '<font color="Orange">[SD]</font> ';
} 
if($usq['admin'] == 2) {
$rang = '<font color="blue">[Адм]</font> ';
}
if($usq['admin'] == 1) {
$rang = '<font color="green">[Moder]</font> ';
}
if($usq['admin'] == 0) {
$rang = '';
}
//бан
$ban = $db->query("select * from `ban` where `user` = '".$usq['id']."' limit 1")->fetch_assoc();
if($ban['time'] > time()) {
$rang = '<font color="black"><b>[Забанен]</b></font>';
}
//определяем онлайн
$time = time();
//Мужик
if ($usq['pol'] == 1) {
if ($usq['online'] > ($time - 300)) {
    
if($usq['admin'] == 3 || $usq['admin'] == 2) {
$on = ' <img src="/files/admin.png"> ';
//убрать если не надо
$onn = '<img src="/files/online.gif">';
} elseif($usq['admin'] == 1) {
    $on = ' <img src="/files/mod.png"> ';
    //убрать если не надо
$onn = '<img src="/files/online.gif">';
} else {
$on = '<img src="/files/mon.png">';
//убрать если не надо
$onn = '<img src="/files/online.gif">';
}
} else {
$onn = '<img src="/files/online1.gif">';
$on = '<img src="/files/mof.png">';
}
}
//Баба
if ($usq['pol'] == 2) {
if ($usq['online'] > ($time - 300)) {
    
if($usq['admin'] == 3 || $usq['admin'] == 2) {
$on = ' <img src="/files/admin.png"> ';
//убрать если не надо
$onn = '<img src="/files/online.gif">';
} elseif($usq['admin'] == 1) {
    $on = ' <img src="/files/mod.png"> ';
    //убрать если не надо
$onn = '<img src="/files/online.gif">';
} else {
$on = '<img src="/files/jon.png">';
//убрать если не надо
$onn = '<img src="/files/online.gif">';
}
} else {
$onn = '<img src="/files/online1.gif">';
$on = '<img src="/files/jof.png">';
}
}
return ''.$on.' <a href="/ank/'.$usq['id'].'">'.buildTextGradient($usq['login'], array($usq['color1'], $usq['color2'])).'</a> '.$rang.''.$onn.'';
}
/* Функция ББ кодов */
function bb($str) {
/* Жирный шрифт */
$str = preg_replace('#[b](.*?)[/b]#si', '<b>1</b>', $str);
/* Наклоненный шрифт */
$str = preg_replace('#[i](.*?)[/i]#si', '<i>1</i>', $str);
/* Подчеркнутый шрифт */
$str = preg_replace('#[u](.*?)[/u]#si', '<u>1</u>', $str);
/* Перенос текста */
$str = preg_replace('#[br]#si', '<br/>', $str);
/* Зачеркнутый шрифт */
$str = preg_replace('#[del](.*?)[/del]#si', '<del>1</del>', $str);
/* Маленький шрифт */
$str = preg_replace('#[small](.*?)[/small]#si', '<small>1</small>', $str);
/* Цветной шрифт */
$str = preg_replace('#[color=(.*?)](.*?)[/color]#si', '<span style="color:1">2</span>', $str);
/* Цитата */
$str = preg_replace('#[cit](.*?)[/cit]#si', '<div class="q">1</div>', $str);
//картинка
$str = preg_replace('#[img](.*?)[/img]#si', '<a href="1"><img src="1" alt="*" style="max-width:50%; border-bottom-left-radius: 20px; border-bottom-right-radius: 20px; border-top-right-radius: 20px; border-top-left-radius: 20px;"/></a>', $str);
//код
$str = preg_replace('#[code](.*?)[/code]#si', '<div style="background-color: #e0e6e9; border: 1px dotted #9faebb; margin-top: 4px; padding: 0 2px 0 2px; overflow-x: auto"><pre class="php" style="font-family:monospace;"><div style="padding-left: 6px; white-space: pre-wrap"><span style="color: #000000; font-weight: bold;">1</span></pre></div>', $str);
//ссылка
$str = preg_replace('/[urls?=s?(['"]?)(?:http://)?(.*?)1](.*?)[/url]/', ' <a href="http://$2"> $3 </a> ', $str);
//видео с ютуба
$str = preg_replace('/[youtube]([w-]{11})[/youtube]/s', '<iframe width="350" height="250" src="https://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>', $str);
//картинка маленькая
$str = preg_replace('#[im](.*?)[/im]#si', '<a href="1"><img src="1" alt="*" style="max-width:10%; border-bottom-left-radius: 20px; border-bottom-right-radius: 20px; border-top-right-radius: 20px; border-top-left-radius: 20px;"/></a>', $str);
return $str;
}
/*==============================================================
==================================================================
===================================================================
*/
/* Функция смайлов */
function smile($str) {
$str = preg_replace('#*nunet#si', '<img src="/files/smile/nunet.png">', $str);
$str = preg_replace('#*heh#si', '<img src="/files/smile/heh.png">', $str);
$str = preg_replace('#*loh#si', '<img src="/files/smile/loh.png">', $str);
return $str;
}
/***************************************************************/
/* Функция фильтр спама */
function spam($str) {
$str = preg_replace('#.ru#si', '[b]мой сайт говно[/b]', $str);
$str = preg_replace('#.su#si', '[b]мой сайт говно[/b]', $str);
$str = preg_replace('#.net#si', '[b]мой сайт говно[/b]', $str);
$str = preg_replace('#.ga#si', '[b]мой сайт говно', $str);
$str = preg_replace('#.cf#si', '[b]мой сайт говно[/b]', $str);
$str = preg_replace('#.ml#si', '[b]мой сайт говно[/b]', $str);
$str = preg_replace('#.mobi#si', '[b]мой сайт говно[/b]', $str);
return $str;
}
/***************************************************************/
function links($msg){
        $msg = preg_replace_callback('/[url=(.+)](.+)[/url]/isU', 'links_preg1', $msg);
        $msg = preg_replace_callback('~(^|s)([a-z]+://([^ rnt`'"]+))(s|$)~iu', 'links_preg2', $msg);
        return $msg;
    }
    
     function links_preg1($arr){
        if (preg_match('#^http://'.preg_quote($_SERVER['HTTP_HOST']).'#',$arr[1]) || !preg_match('#://#',$arr[1]))
        return '<a href="'.$arr[1].'">'.$arr[2].'</a>';
        else
        return '<a href="http://'.$_SERVER['HTTP_HOST'].'/exit2.php?go='.$arr[1].'">'.$arr[2].'</a>';
    }
     function links_preg2($arr){
        if (preg_match('#^http://'.preg_quote($_SERVER['HTTP_HOST']).'#',$arr[2]))
        return $arr[1].'<a href="'.$arr[2].'">'.$arr[2].'</a>'.$arr[4];
        else
        return $arr[1].'<a href="http://'.$_SERVER['HTTP_HOST'].'/exit2.php?go='.$arr[2].'"> Перейти по Ссылке ТЫК</a>'.$arr[4];
    }
foreach ($_GET as $links) {
if (!is_string($links) || !preg_match('#^(?:[a-z-a-я?:0-9_?.-/]+|.+(?!/))*$#i', $links)) {
header ('Location: /');
exit;
} 
}
unset($links);
// Функция отправки почты на email
function mailto($mail, $theme, $text, $str) {
$utf = "From: ".$str." n";
$utf.= "X-sender: < ".$str." >n";
$utf.= "Content-Type: text/html; charset=utf-8n";
return mail($mail, $theme, $text, $utf);
}
/*
=================вывод настроек из бд===========================
*/
$set = $db->query("select * from `sett`")->fetch_assoc();
// Новый сайт в каталоге
//$link_desc = mysql_fetch_assoc(mysql_query("select * from `link` where `off` = '0' order by `id` desc limit 1"));
// Кол-во новостей
$count_news = $db->query("SELECT * FROM `news`")->num_rows;
$ip = f($_SERVER['REMOTE_ADDR']);
$IP = f($_SERVER['REMOTE_ADDR']);
$UA = f($_SERVER['HTTP_USER_AGENT']);
// Кол-во сайтов
//$count_link = mysql_num_rows(mysql_query("select * from `link`"));
// Рекомендации
//$count_best_link = mysql_num_rows(mysql_query("select * from `link` where `off` = '0' and `star` = '1' and `ban` = '0'"));
// Кол-во активных сайтов
//$count_active_link = mysql_num_rows(mysql_query("select * from `link` where `off` = '0' and `ban` = '0'"));
// Кол-во неактивных сайтов
//$count_mod_link = mysql_num_rows(mysql_query("select * from `link` where `off` = '1'"));
?>