Файл: 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'"));
?>