`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; } ?>