`cms_forum_rdm`.`time`);");
return mysql_result($req, 0);
} else
{
$req = mysql_query("SELECT COUNT(*) FROM `forum`
LEFT JOIN `cms_forum_rdm` ON `forum`.`id` = `cms_forum_rdm`.`topic_id` AND `cms_forum_rdm`.`user_id` = '" . $user_id . "'
WHERE `forum`.`type`='t'
AND `moder`='1'
AND `close`!='1'
AND (`cms_forum_rdm`.`topic_id` Is Null
OR `forum`.`time` > `cms_forum_rdm`.`time`);");
return mysql_result($req, 0);
}
} else
{
return false;
}
}
function dnews()
{
////////////////////////////////////////////////////////////
// Дата последней новости //
////////////////////////////////////////////////////////////
if (!empty($_SESSION['uid']))
{
global $sdvig;
} else
{
global $sdvigclock;
$sdvig = $sdvigclock;
}
$req = mysql_query("select `time` from `news` order by `time` desc;");
$res = mysql_fetch_array($req);
$vrn = $res['time'] + $sdvig * 3600;
$vrn1 = date("H:i/d.m.y", $vrn);
return $vrn1;
}
function kuser()
{
////////////////////////////////////////////////////////////
// Колличество зарегистрированных пользователей //
////////////////////////////////////////////////////////////
global $realtime;
// Общее колличество
$req = mysql_query("SELECT * FROM `users` ;");
$total = mysql_num_rows($req);
// Зарегистрированные за последние сутки
$req = mysql_query("SELECT * FROM `users` WHERE `datereg`>" . ($realtime - 86400) . ";");
$res = mysql_num_rows($req);
if ($res > 0)
$total = $total . ' +' . $res . '';
return $total;
}
function wfrm($id = '')
{
////////////////////////////////////////////////////////////
// Счетчик "Кто в форуме?" //
////////////////////////////////////////////////////////////
global $realtime;
$onltime = $realtime - 300;
$count = 0;
$qf = @mysql_query("select * from `users` where lastdate>='" . $onltime . "';");
while ($arrf = mysql_fetch_array($qf))
{
$whf = mysql_query("select * from `count` where name='" . $arrf['name'] . "' order by time desc ;");
while ($whf1 = mysql_fetch_array($whf))
{
$whf2[] = $whf1['where'];
}
$wherf = $whf2[0];
$whf2 = array();
$wherf1 = explode(",", $wherf);
if (empty($id))
{
if ($wherf1[0] == "forum")
{
$count = $count + 1;
}
} else
{
if ($wherf == "forum,$id")
{
$count = $count + 1;
}
}
}
return $count;
}
function wsity($id = '')
{
////////////////////////////////////////////////////////////
// Счетчик Онлайн Города //
////////////////////////////////////////////////////////////
global $realtime;
$onltime = $realtime - 300;
$count = 0;
$qf = @mysql_query("select * from `users` where lastdate>='" . $onltime . "';");
while ($arrf = mysql_fetch_array($qf))
{
$whf = mysql_query("select * from `count` where name='" . $arrf['name'] . "' order by time desc ;");
while ($whf1 = mysql_fetch_array($whf))
{
$whf2[] = $whf1['where'];
}
$wherf = $whf2[0];
$whf2 = array();
$wherf1 = explode(",", $wherf);
if (empty($id))
{
if ($wherf1[0] == "sity")
{
$count = $count + 1;
}
} else
{
if ($wherf == "sity,$id")
{
$count = $count + 1;
}
}
}
return $count;
}
function dload()
{
////////////////////////////////////////////////////////////
// Статистика загрузок //
////////////////////////////////////////////////////////////
global $realtime;
$fl = mysql_query("select `id` from `download` where `type`='file' ;");
$countf = mysql_num_rows($fl);
$old = $realtime - (3 * 24 * 3600);
$fl1 = mysql_query("select `id` from `download` where `time` > '" . $old . "' and `type`='file' ;");
$countf1 = mysql_num_rows($fl1);
$out = $countf;
if ($countf1 > 0)
{
$out = $out . "/+$countf1";
}
return $out;
}
function fgal($mod = 0)
{
////////////////////////////////////////////////////////////
// Статистика галлереи //
////////////////////////////////////////////////////////////
// Если вызвать с параметром 1, то будет выдавать только колличество новых картинок
global $realtime;
$old = $realtime - (3 * 24 * 3600);
$req = mysql_query("select `id` from `gallery` where `time` > '" . $old . "' and `type`='ft' ;");
$new = mysql_num_rows($req);
mysql_free_result($req);
if ($mod == 0)
{
$req = mysql_query("select `id` from `gallery` where `type`='ft' ;");
$total = mysql_num_rows($req);
mysql_free_result($req);
$out = $total;
if ($new > 0)
{
$out = $out . "/+$new";
}
} else
{
$out = $new;
}
return $out;
}
function brth()
{
////////////////////////////////////////////////////////////
// Дни рождения //
////////////////////////////////////////////////////////////
global $realtime;
$mon = date("m", $realtime);
if (substr($mon, 0, 1) == 0)
{
$mon = str_replace("0", "", $mon);
}
$day = date("d", $realtime);
if (substr($day, 0, 1) == 0)
{
$day = str_replace("0", "", $day);
}
$q = mysql_query("select * from `users` where dayb='" . $day . "' and monthb='" . $mon . "' and preg='1';");
$count = mysql_num_rows($q);
return $count;
}
function stlib()
{
////////////////////////////////////////////////////////////
// Статистика библиотеки //
////////////////////////////////////////////////////////////
global $realtime;
global $dostlmod;
$fl = mysql_query("select `id` from `lib` where `type`='bk' and `moder`='1';");
$countf = mysql_num_rows($fl);
$old = $realtime - (3 * 24 * 3600);
$fl1 = mysql_query("select `id` from `lib` where `time` > '" . $old . "' and `type`='bk' and `moder`='1';");
$countf1 = mysql_num_rows($fl1);
$out = $countf;
if ($countf1 > 0)
{
$out = $out . '/+' . $countf1 . '';
}
$fm = @mysql_query("select `id` from `lib` where `type`='bk' and `moder`='0';");
$countm = @mysql_num_rows($fm);
if ($dostlmod == '1' && ($countm > 0))
$out = $out . "/ Мод:$countm";
return $out;
}
function wch($id = false, $mod = false)
{
////////////////////////////////////////////////////////////
// Статистика Чата //
////////////////////////////////////////////////////////////
// Если вызвать с параметром 0,1 то покажет общее число юзеров в Чате
global $realtime;
$onltime = $realtime - 60;
if ($mod)
{
$where = $id ? 'chat,' . $id : 'chat';
$res = mysql_query("SELECT `id` FROM `count` WHERE
`time` > '" . $onltime . "' AND
`where` LIKE 'chat%'
GROUP BY `name`;");
} else
{
$where = $id ? 'chat,' . $id : 'chat';
$res = mysql_query("SELECT `id` FROM `count` WHERE
`time` > '" . $onltime . "' AND
`where` = '" . $where . "'
GROUP BY `name`;");
}
$count = mysql_num_rows($res);
return $count;
}
function gbook($mod = 0)
{
////////////////////////////////////////////////////////////
// Статистика гостевой //
////////////////////////////////////////////////////////////
// Если вызвать с параметром 1, то будет выдавать колличество новых в гостевой
// Если вызвать с параметром 2, то будет выдавать колличество новых в Админ-Клубе
global $realtime;
global $dostmod;
switch ($mod)
{
case 1:
$req = mysql_query("SELECT `id` FROM `guest` WHERE `adm`='0' AND `time`>'" . ($realtime - 86400) . "';");
$count = mysql_num_rows($req);
break;
case 2:
if ($dostmod == 1)
{
$req = mysql_query("SELECT `id` FROM `guest` WHERE `adm`='1' AND `time`>'" . ($realtime - 86400) . "';");
$count = mysql_num_rows($req);
}
break;
default:
$req = mysql_query("SELECT `id` FROM `guest` WHERE `adm`='0' AND `time`>'" . ($realtime - 86400) . "';");
$count = mysql_num_rows($req);
if ($dostmod == 1)
{
$req = mysql_query("SELECT `id` FROM `guest` WHERE `adm`='1' AND `time`>'" . ($realtime - 86400) . "';");
$count = $count . ' / ' . mysql_num_rows($req) . '';
}
}
return $count;
}
////////////////////////////////////////////////////////////////////////////////
// Основные функции (используются в большинстве модулей системы) //
////////////////////////////////////////////////////////////////////////////////
function tags($var = '')
{
////////////////////////////////////////////////////////////
// Обработка ссылок и тэгов BBCODE в тексте //
////////////////////////////////////////////////////////////
$var = preg_replace_callback('{(?:(\w+://)|www\.|wap\.)[\w-]+(\.[\w-]+)*(?: : \d+)?[^<>"\'()\[\]\s]*(?:(?\1', $var);
$var = preg_replace('#\[i\](.*?)\[/i\]#si', '\1', $var);
$var = preg_replace('#\[u\](.*?)\[/u\]#si', '\1', $var);
$var = preg_replace('#\[s\](.*?)\[/s\]#si', '\1', $var);
$var = preg_replace('#\[red\](.*?)\[/red\]#si', '\1', $var);
$var = preg_replace('#\[green\](.*?)\[/green\]#si', '\1', $var);
$var = preg_replace('#\[blue\](.*?)\[/blue\]#si', '\1', $var);
//$var = eregi_replace("\\[l\\]([[:alnum:]_=:/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+.&_=/;%]*)?)?)\\[l/\\]((.*)?)\\[/l\\]", "\\6", $var);
return $var;
}
function hrefCallback($p)
{
////////////////////////////////////////////////////////////
// Служебная функция парсинга URL //
////////////////////////////////////////////////////////////
$href = !empty($p[1]) ? $p[0] : 'http://' . $p[0];
return '' . $p[0] . '';
}
function antilink($var)
{
////////////////////////////////////////////////////////////
// Маскировка ссылок в тексте //
////////////////////////////////////////////////////////////
$var = eregi_replace("((https?|ftp)://)([[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&_=/;%]*)?)?)", "[реклама]", $var);
$var = strtr($var, array(".ru" => "***", ".com" => "***", ".net" => "***", ".org" => "***", ".info" => "***", ".mobi" => "***", ".wen" => "***", ".kmx" => "***", ".h2m" => "***"));
return $var;
}
function trans($str)
{
////////////////////////////////////////////////////////////
// Транслитерация текста //
////////////////////////////////////////////////////////////
$str = strtr($str, array('a' => 'а', 'b' => 'б', 'v' => 'в', 'g' => 'г', 'd' => 'д', 'e' => 'е', 'yo' => 'ё', 'zh' => 'ж', 'z' => 'з', 'i' => 'и', 'j' => 'й', 'k' => 'к', 'l' => 'л', 'm' => 'м', 'n' => 'н', 'o' => 'о', 'p' => 'п', 'r' =>
'р', 's' => 'с', 't' => 'т', 'u' => 'у', 'f' => 'ф', 'h' => 'х', 'c' => 'ц', 'ch' => 'ч', 'w' => 'ш', 'sh' => 'щ', 'q' => 'ъ', 'y' => 'ы', 'x' => 'э', 'yu' => 'ю', 'ya' => 'я', 'A' => 'А', 'B' => 'Б', 'V' => 'В', 'G' => 'Г', 'D' => 'Д', 'E' =>
'Е', 'YO' => 'Ё', 'ZH' => 'Ж', 'Z' => 'З', 'I' => 'И', 'J' => 'Й', 'K' => 'К', 'L' => 'Л', 'M' => 'М', 'N' => 'Н', 'O' => 'О', 'P' => 'П', 'R' => 'Р', 'S' => 'С', 'T' => 'Т', 'U' => 'У', 'F' => 'Ф', 'H' => 'Х', 'C' => 'Ц', 'CH' => 'Ч', 'W' =>
'Ш', 'SH' => 'Щ', 'Q' => 'Ъ', 'Y' => 'Ы', 'X' => 'Э', 'YU' => 'Ю', 'YA' => 'Я'));
return $str;
}
function unhtmlentities($string)
{
////////////////////////////////////////////////////////////
// Декодирование htmlentities, PHP4совместимый режим //
////////////////////////////////////////////////////////////
$string = str_replace('&', '&', $string);
$string = preg_replace('~*([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
$string = preg_replace('~*([0-9]+);~e', 'chr(\\1)', $string);
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
function pagenav($base_url, $start, $max_value, $num_per_page)
{
////////////////////////////////////////////////////////////
// Функция постраничной навигации //
////////////////////////////////////////////////////////////
// В качестве основы использован модифицированный //
// вариант аналогичной функции от форума SMF2.0 //
////////////////////////////////////////////////////////////
$pgcont = 4; // Число ссылок на страницы в блоке
$pgcont = (int)($pgcont - ($pgcont % 2)) / 2;
// Not greater than the upper bound.
if ($start >= $max_value)
$start = max(0, (int)$max_value - (((int)$max_value % (int)$num_per_page) == 0 ? $num_per_page : ((int)$max_value % (int)$num_per_page)));
// And it has to be a multiple of $num_per_page!
else
$start = max(0, (int)$start - ((int)$start % (int)$num_per_page));
$base_link = '%s ';
// Левый указатель (<<)
$pageindex = $start == 0 ? '' : sprintf($base_link, $start - $num_per_page, '<<');
// Ссылка на первую страницу (>1< ... 6 7 [8] 9 10 ... 15)
if ($start > $num_per_page * $pgcont)
$pageindex .= sprintf($base_link, 0, '1');
// Точки перед блоком ссылок (1 >...< 6 7 [8] 9 10 ... 15)
if ($start > $num_per_page * ($pgcont + 1))
$pageindex .= ' ... ';
// Ссылки перед текушей страницей (1 ... >6 7< [8] 9 10 ... 15)
for ($nCont = $pgcont; $nCont >= 1; $nCont--)
if ($start >= $num_per_page * $nCont)
{
$tmpStart = $start - $num_per_page * $nCont;
$pageindex .= sprintf($base_link, $tmpStart, $tmpStart / $num_per_page + 1);
}
// Текущая страница (1 ... 6 7 >[8]< 9 10 ... 15)
$pageindex .= '[' . ($start / $num_per_page + 1) . '] ';
// Ссылки после текущей страницы (1 ... 6 7 [8] >9 10< ... 15)
$tmpMaxPages = (int)(($max_value - 1) / $num_per_page) * $num_per_page;
for ($nCont = 1; $nCont <= $pgcont; $nCont++)
if ($start + $num_per_page * $nCont <= $tmpMaxPages)
{
$tmpStart = $start + $num_per_page * $nCont;
$pageindex .= sprintf($base_link, $tmpStart, $tmpStart / $num_per_page + 1);
}
// Точки после блока ссылок (1 ... 6 7 [8] 9 10 >...< 15)
if ($start + $num_per_page * ($pgcont + 1) < $tmpMaxPages)
$pageindex .= ' ... ';
// Ссылка на последнюю страницу (1 ... 6 7 [8] 9 10 ... >15<)
if ($start + $num_per_page * $pgcont < $tmpMaxPages)
$pageindex .= sprintf($base_link, $tmpMaxPages, $tmpMaxPages / $num_per_page + 1);
// Show the right arrow.
if ($start + $num_per_page <= $max_value)
{
$display_page = ($start + $num_per_page) > $max_value ? $max_value : ($start + $num_per_page);
$pageindex .= sprintf($base_link, $display_page, '>>');
}
return $pageindex;
}
function timecount($var)
{
////////////////////////////////////////////////////////////
// Функция пересчета на дни, или часы //
////////////////////////////////////////////////////////////
$str = '';
if ($var < 0)
$var = 0;
$day = ceil($var / 86400);
if ($var > 2592000)
{
$str = 'До отмены';
} elseif ($var > 345600)
{
$str = $day . ' дней';
} elseif ($var >= 172800)
{
$str = $day . ' дня';
} elseif ($var >= 86400)
{
$str = '1 день';
} else
{
$str = gmdate('H:i:s', round($var));
}
return $str;
}
function formatsize($size)
{
////////////////////////////////////////////////////////////
// Форматирование размера файлов //
////////////////////////////////////////////////////////////
if ($size >= 1073741824)
{
$size = round($size / 1073741824 * 100) / 100 . ' Gb';
} elseif ($size >= 1048576)
{
$size = round($size / 1048576 * 100) / 100 . ' Mb';
} elseif ($size >= 1024)
{
$size = round($size / 1024 * 100) / 100 . ' Kb';
} else
{
$size = $size . ' b';
}
return $size;
}
////////////////////////////////////////////////////////////////////////////////
// Старые функции, которые постепенно будут удаляться. //
// НЕ ИСПОЛЬЗУЙТЕ их в своих модулях!!! //
////////////////////////////////////////////////////////////////////////////////
function texttolink($str)
{
$str = eregi_replace("((https?|ftp)://)([[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&_=/%]*)?)?)", "\\3", $str);
return $str;
}
function provcat($catalog)
{
$cat1 = mysql_query("select * from `download` where type = 'cat' and id = '" . $catalog . "';");
$cat2 = mysql_num_rows($cat1);
$adrdir = mysql_fetch_array($cat1);
if (($cat2 == 0) || (!is_dir("$adrdir[adres]/$adrdir[name]")))
{
echo "Ошибка при выборе категории
К категориям
";
require_once ('../incfiles/end.php');
exit;
}
}
function provupl($catalog)
{
$cat1 = mysql_query("select * from `upload` where type = 'cat' and id = '" . $catalog . "';");
$cat2 = mysql_num_rows($cat1);
$adrdir = mysql_fetch_array($cat1);
if (($cat2 == 0) || (!is_dir("$adrdir[adres]/$adrdir[name]")))
{
echo "Ошибка при выборе категории
К категориям
";
require_once ('../incfiles/end.php');
exit;
}
}
function deletcat($catalog)
{
$dir = opendir($catalog);
while (($file = readdir($dir)))
{
if (is_file($catalog . "/" . $file))
{
unlink($catalog . "/" . $file);
} else
if (is_dir($catalog . "/" . $file) && ($file != ".") && ($file != ".."))
{
deletcat($catalog . "/" . $file);
}
}
closedir($dir);
rmdir($catalog);
}
function format($name)
{
$f1 = strrpos($name, ".");
$f2 = substr($name, $f1 + 1, 999);
$fname = strtolower($f2);
return $fname;
}
// Проверка переменных
function check($str)
{
if (get_magic_quotes_gpc())
$str = stripslashes($str);
$str = htmlentities($str, ENT_QUOTES, 'UTF-8');
$str = str_replace("\'", "'", $str);
$str = str_replace("\r\n", "
", $str);
$str = strtr($str, array(chr("0") => "", chr("1") => "", chr("2") => "", chr("3") => "", chr("4") => "", chr("5") => "", chr("6") => "", chr("7") => "", chr("8") => "", chr("9") => "", chr("10") => "", chr("11") => "", chr("12") => "", chr
("13") => "", chr("14") => "", chr("15") => "", chr("16") => "", chr("17") => "", chr("18") => "", chr("19") => "", chr("20") => "", chr("21") => "", chr("22") => "", chr("23") => "", chr("24") => "", chr("25") => "", chr("26") => "", chr("27") =>
"", chr("28") => "", chr("29") => "", chr("30") => "", chr("31") => ""));
$str = str_replace('\\', "\", $str);
$str = str_replace("|", "I", $str);
$str = str_replace("||", "I", $str);
$str = str_replace("/\\\$/", "$", $str);
$str = str_replace("[l]http://", "[l]", $str);
$str = str_replace("[l] http://", "[l]", $str);
$str = mysql_real_escape_string($str);
return $str;
}
function smiles($str)
{
$dir = opendir("../sm/prost");
while ($file = readdir($dir))
{
if (ereg(".gif$", "$file"))
{
$file2 = $file;
$file2 = str_replace(".gif", "", $file2);
$str = str_replace(":$file2", "", $str);
}
}
closedir($dir);
return $str;
}
function smilesadm($str)
{
$dir = opendir("../sm/adm");
while ($file = readdir($dir))
{
if (ereg(".gif$", "$file"))
{
$file2 = $file;
$file2 = str_replace(".gif", "", $file2);
$trfile = trans($file2);
$str = str_replace(":$file2:", "", $str);
$str = str_replace(":$trfile:", "", $str);
}
}
closedir($dir);
return $str;
}
function smilescat($str)
{
$dir = opendir("../sm/cat");
while ($file = readdir($dir))
{
if (($file != ".") && ($file != "..") && ($file != ".htaccess") && ($file != "index.php"))
{
$a[] = $file;
}
}
closedir($dir);
$total = count($a);
for ($a1 = 0; $a1 < $total; $a1++)
{
$d = opendir("../sm/cat/$a[$a1]");
while ($k = readdir($d))
{
if (ereg(".gif$", "$k"))
{
$file2 = $k;
$file2 = str_replace(".gif", "", $file2);
$trfile = trans($file2);
$str = str_replace(":$file2:", "", $str);
$str = str_replace(":$trfile:", "", $str);
}
}
closedir($d);
}
return $str;
}
function navigate($adr_str, $itogo, $kol_na_str, $begin, $num_str)
{
$ba = ceil($itogo / $kol_na_str);
$asd = $begin - ($kol_na_str);
$asd2 = $begin + ($kol_na_str * 2);
if ($asd < $itogo && $asd > 0)
{
echo ' 1 .. ';
}
$page2 = $ba - $num_str;
$pa = ceil($num_str / 2);
$paa = ceil($num_str / 3);
$pa2 = $num_str + floor($page2 / 2);
$paa2 = $num_str + floor($page2 / 3);
$paa3 = $num_str + (floor($page2 / 3) * 2);
if ($num_str > 13)
{
echo ' ' . $paa . ' ' . ($paa + 1) . ' .. ' . ($paa * 2) .
' ' . ($paa * 2 + 1) . ' .. ';
} elseif ($num_str > 7)
{
echo ' ' . $pa . ' ' . ($pa + 1) . ' .. ';
}
for ($i = $asd; $i < $asd2; )
{
if ($i < $itogo && $i >= 0)
{
$ii = floor(1 + $i / $kol_na_str);
if ($begin == $i)
{
echo " $ii";
} else
{
echo ' ' . $ii . ' ';
}
}
$i = $i + $kol_na_str;
}
if ($page2 > 12)
{
echo ' .. ' . $paa2 . ' ' . ($paa2 + 1) . ' .. ' . ($paa3) .
' ' . ($paa3 + 1) . ' ';
} elseif ($page2 > 6)
{
echo ' .. ' . $pa2 . ' ' . ($pa2 + 1) . ' ';
}
if ($asd2 < $itogo)
{
echo ' .. ' . $ba . '';
}
}
function rus_lat($str)
{
$str = strtr($str, array('а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'e', 'ж' => 'j', 'з' => 'z', 'и' => 'i', 'й' => 'i', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o', 'п' => 'p', 'р' => 'r',
'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch', 'ъ' => "", 'ы' => 'y', 'ь' => "", 'э' => 'ye', 'ю' => 'yu', 'я' => 'ya'));
return $str;
}
?>