Файл: php-zona.ru/system/function.php
Строк: 195
<?php
//error_reporting(E_ALL);
/*
* Автор - Александр Каплин(TheALex, Саня)
* Все права принадлежат CreaWap.Ru
* Данный скрипт будет постоянно дополняться, поэтому фиксированного времени нет.
* Данный скрипт будет содержать в себе все функции которые будут использольваться на сайте
*/
//Инклюдим файл подключения с базой данных
include_once($_SERVER["DOCUMENT_ROOT"].'/system/db.php');
//инклюдим дополнения
include_once($_SERVER["DOCUMENT_ROOT"].'/system/extensions.php');
function bb ($string)
{
global $db;
$codes = array (
// ссылка
'/[url=(.+)](.+)[/url]/is' =>'<a href="1">2</a>',
'/[url](.+)[/url]/isU' =>'<a href="1">1</a>',
// наклонный текст
'/[i](.+)[/i]/isU' => '<i>1</i>',
// жирный текст
'/[b](.+)[/b]/isU' => '<b>1</b>',
// подчеркнутый текст
'/[u](.+)[/u]/isU' => '<u>1</u>',
// мелкий текст
'/[small](.+)[/small]/i' => '<span style="font-size:10px;">1</span>',
// большой текст
'/[big](.+)[/big]/i' => '<span style="font-size:16px;">1</span>',
// красный
'/[red](.+)[/red]/i' => '<span style="color:red;">1</span>',
// зеленый
'/[green](.+)[/green]/i' => '<span style="color:green;">1</span>',
// синий
'/[blue](.+)[/blue]/i' => '<span style="color:blue;">1</span>',
// выделение кода
'/[code](.+)[/code]/is' => '<code>1</code>',
'/[quote](.*)[/quote]/is' => '<div class="quote">1</div>',
'/[rating=([0-9.]{1,})](.*)[/rating]/ies'=> 'hide_rated ("1", "2")'
);
$string = preg_replace (array_keys($codes), array_values ($codes), $string);
// badurl
/* $f = file ('./system/badmsg.txt');
$c = count($f);
if ($c!=0) {
for ($i = 0; $i < $c; $i++) {
$l = trim ($f[ $i ]);
if (!empty ($l)) {
$string = preg_replace ('/' . $l . '/i', ' ??? ', $string);
}
}
} */
// новая строка
$string = str_replace ("rn", "<br/>", $string);
$string = str_replace ("[br]", "<br/>", $string);
// us{[int]} // вывод пользователя
$string = preg_replace_callback ('/us{(d*)}/', 'nick', $string);
// file{[int]} // вывод файла
$string = preg_replace_callback ('/file{(d*)}/', 'fname', $string);
// topic{[int]}
$string = preg_replace_callback ('/topic{(d*)}/', 'tname', $string);
// [php][string][/php] // выделение php кода
$string = preg_replace_callback ('/[php](.+)[/php]/i', 'highlight_code', $string);
$sm = $db->query("SELECT * FROM `smile`");
while ($smile = $sm->fetch_assoc()) {
$string = str_replace($smile['name'], '<img src="/files/smile/'.$smile['file'].'">', $string);
}
$as = $db->query("SELECT * FROM `antispam`");
while($sp = $as->fetch_assoc()){
$string = str_replace($sp['desc'], '<b><font color="red">[Спам.]</font></b>', $string);
}
$am = $db->query("SELECT * FROM `antimat`");
while($m = $am->fetch_assoc()){
$string = str_replace($m['desc'], '<b><font color="red">[Мат.]</font></b>', $string);
}
return $string;
}
function highlight_code($matches)
{
// если callback функция
if (is_array($matches)) {
$code = $matches[1];
}
else {
$code = $matches;
}
// перепреобразование кода
$code = strtr ($code, array (
'<' => '<',
'>' => '>',
'&' => '&',
'"' => '"',
'$' => '$',
'%' => '%',
''' => "'",
'\' => '\',
'^' => '^',
'`' => '`',
'|' => '|'
));
// новая строка
$code = strtr ($code, array (
"<br/>" => "rn",
"\" => ""
));
$code = highlight_string($code, true);
return $code;
}
function hide_rated($rating = 0, $matches)
{
global $user;
// если callback функция
if (is_array($matches)) {
$string = $matches[1];
}
else {
$string = $matches;
}
if ($user['rating']>=$rating) {
return $string;
}
else {
return '<div class="error">Для просмотра этого блока необходимо набрать <b>' . $rating . '</b> рейтинга</div>';
}
}
function fname($idf){
global $db;
// если callback функция
if (is_array ($idf)) {
$id = $idf[1];
}
else {
$id = $idf;
}
$id = abs(intval($id));
if($db->query("SELECT `id` FROM `zc_file` WHERE `id`='".$id."'")->num_rows==0){
$f = 'Удалён';
}else{
$file = $db->query("SELECT `id`, `name` FROM `zc_file` WHERE `id`='".$id."'")->fetch_assoc();
$f = '<a href="/zc/file/'.$file['id'].'">'.$file['name'].'</a>';
}
return $f;
}
function tname($idf){
global $db;
//Если callback функция
if(is_array($idf)){
$id = $idf[1];
}else{
$id = $idf;
}
$id = abs(intval($id));
if($db->query("SELECT `id` FROM `forum_topic` WHERE `id`='".$id."'")->num_rows==0){
$t = 'Удалён';
}else{
$topic = $db->query("SELECT `id`, `name` FROM `forum_topic` WHERE `id`='".$id."'")->fetch_assoc();
$t = '<a href="/forum/topic/'.$topic['id'].'">'.$topic['name'].'</a>';
}
return $t;
}
//Функция вывода
function output($string){
//Преобразуем html теги в html ущности
$string = htmlspecialchars($string);
//bb code
$string = bb($string);
//Вставляем html код разрыва строки перед каждым переводом строки
$string = nl2br($string);
//Выводим строку
return $string;
}
function guard($str)
{
$str=preg_replace('""', " ", $str);//вырезка битовой команды реверса строки
$str = trim($str);
return $str;
}
function times($time = NULL)
{
if (!$time)
$time = TIME;
$data = date('j.n.y', $time);
if ($data == date('j.n.y'))
$res = 'Сегодня в '.date('G:i', $time);
elseif ($data == date('j.n.y', TIME - 86400))
$res = 'Вчера в '.date('G:i', $time);
elseif ($data == date('j.n.y', TIME - 172800))
$res = 'Позавчера в '.date('G:i', $time);
else
{
$m = array(
'0',
'Января',
'Февраля',
'Марта',
'Апреля',
'Мая',
'Июня',
'Июля',
'Августя',
'Сентября',
'Октября',
'Ноября',
'Декабря');
$res = date('j '.$m[date('n', $time)].' Y в G:i', $time);
$res = str_replace(date('Y'), '', $res);
}
return $res;
}
function nick($idf){
global $db;
// если callback функция
if (is_array ($idf)) {
$id = $idf[1];
}
else {
$id = $idf;
}
$id = abs(intval($id));
$us = $db->query("SELECT * FROM `users` WHERE `id`='".$id."'")->fetch_assoc();
$us['nick']=htmlspecialchars($us['nick']);
if($us['level']==1){
$level = ' <font color="green">[Мд.]</font>';
}elseif($us['level']==2){
$level = ' <font color="green">[Адм.]</font>';
}elseif($us['level']==3){
$level = ' <font color="green">[Ст. Адм.]</font>';
}elseif($us['level']==4){
$level = ' <font color="green">[Соз.]</font>';
}
$nick = '<a href="/user/'.$us['id'].'">'.$us['nick'].'</a>'.$level;
if($us['sex'] == 1){
//Если пользователь мужского рода
if($us['online']>=time()-300){
//если пользователь онлайн
$icon='<img src="/style/images/icons/online/m_on.png">';
}else{
//если пользователь оффлайн
$icon='<img src="/style/images/icons/online/m_off.png">';
}
}else{
//Есди пользователь женского рода
if($us['online']>=time()-300){
//Если онлайн
$icon='<img src="/style/images/icons/online/w_on.png">';
}else{
//Если оффлайн
$icon='<img src="/style/images/icons/online/w_off.png">';
}
}
if($db->query("SELECT * FROM `users` WHERE `id`='".$id."'")->num_rows == 0){
$nick = 'Удален';
};
echo $icon.' '.$nick;
}
function error($string){
global $gen;
$string = output($string);
if($string==NULL){
$string = 'Ошибочка вышла';
}
?>
<div class="error"><?=$string?></div>
<?
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
exit();
}
function success($string){
?>
<div class="success"><?=$string?></div>
<?
}
function mode($mode){
global $user;
if($mode == 'guest'){
if(isset($user['id'])){
error('Данная страница доступна только авторизованным пользователям!');
}
}elseif($mode == 'user'){
if(!isset($user['id'])){
error('Данная страница доступна для просмотра только авторизованным пользователям!');
}
}
}
function level($level){
global $user;
if($user['level']<$level){
error('У вас недостаточно прав для просмотра данной страницы!');
}
}
include_once $_SERVER['DOCUMENT_ROOT'].'/system/class/nav.php';
?>