0) {
while ($res = mysql_fetch_array($req)) {
$link1 = ($res['mode'] == 1 || $res['mode'] == 2) ? $res['link1'] : $res['link2'];
$link2 = $res['mode'] == 2 ? $res['link1'] : $res['link2'];
$count = ($headmod == 'mainpage') ? $link1 : $link2;
if (!empty ($count))
echo $count;
}
}
}
function usersonline() {
////////////////////////////////////////////////////////////
// Счетчик посетителей онлайн //
////////////////////////////////////////////////////////////
global $realtime, $user_id, $home;
$users = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `lastdate` > '" . ($realtime - 300) . "'"), 0);
$guests = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_guests` WHERE `lastdate` > '" . ($realtime - 300) . "'"), 0);
return ($user_id ? 'Онлайн: ' . $users . ' / ' . $guests . '' : 'Онлайн: ' . $users . ' / ' . $guests);
}
function zipcount() {
////////////////////////////////////////////////////////////
// Вывод коэффициента сжатия Zlib //
////////////////////////////////////////////////////////////
global $set;
if ($set['gzip']) {
$Contents = ob_get_contents();
$gzib_file = strlen($Contents);
$gzib_file_out = strlen(gzcompress($Contents, 9));
$gzib_pro = round(100 - (100 / ($gzib_file / $gzib_file_out)), 1);
echo '
Cжатие: ' . $gzib_pro . '%
';
}
else {
echo '';
}
}
function timeonline() {
////////////////////////////////////////////////////////////
// Счетсик времени, проведенного на сайте //
////////////////////////////////////////////////////////////
global $realtime, $datauser, $user_id;
if ($user_id)
echo 'В онлайне: ' . gmdate('H:i:s', ($realtime - $datauser['sestime'])) . '
';
}
function forum_new($mod = 0) {
////////////////////////////////////////////////////////////
// Счетчик непрочитанных тем на форуме //
////////////////////////////////////////////////////////////
// $mod = 0 Возвращает число непрочитанных тем //
// $mod = 1 Выводит ссылки на непрочитанное //
////////////////////////////////////////////////////////////
global $user_id, $rights;
if ($user_id) {
$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'" . ($rights >= 7 ?
"" : " AND `forum`.`close` != '1'") . "
AND (`cms_forum_rdm`.`topic_id` Is Null
OR `forum`.`time` > `cms_forum_rdm`.`time`)");
$total = mysql_result($req, 0);
if ($mod)
echo 'Непрочитанное ' . ($total ? '(' . $total . ')' : '') . '
';
else
return $total;
}
else {
if ($mod)
echo 'Последние 10 тем
';
else
return false;
}
}
function dnews() {
////////////////////////////////////////////////////////////
// Дата последней новости //
////////////////////////////////////////////////////////////
global $set_user;
$req = mysql_query("SELECT `time` FROM `news` ORDER BY `time` DESC LIMIT 1");
if (mysql_num_rows($req)) {
$res = mysql_fetch_array($req);
return date("H:i/d.m.y", $res['time'] + $set_user['sdvig'] * 3600);
}
else {
return false;
}
}
function kuser() {
////////////////////////////////////////////////////////////
// Колличество зарегистрированных пользователей //
////////////////////////////////////////////////////////////
global $realtime;
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `users`"), 0);
$res = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `datereg` > '" . ($realtime - 86400) . "'"), 0);
if ($res > 0)
$total .= ' +' . $res . '';
return $total;
}
function wfrm() {
////////////////////////////////////////////////////////////
// Статистика Форума //
////////////////////////////////////////////////////////////
global $user_id, $rights, $home;
$total_thm = mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `type` = 't'" . ($rights >= 7 ? "" : " AND `close` != '1'")), 0);
$total_msg = mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `type` = 'm'" . ($rights >= 7 ? "" : " AND `close` != '1'")), 0);
$out = $total_thm . ' / ' . $total_msg . '';
if ($user_id) {
$new = forum_new();
if ($new)
$out .= ' / +' . $new . '';
}
return $out;
}
function dload() {
////////////////////////////////////////////////////////////
// Статистика загрузок //
////////////////////////////////////////////////////////////
global $realtime;
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `download` WHERE `type` = 'file'"), 0);
$old = $realtime - (3 * 24 * 3600);
$new = mysql_result(mysql_query("SELECT COUNT(*) FROM `download` WHERE `time` > '" . $old . "' AND `type` = 'file'"), 0);
if ($new > 0)
$total .= ' / +' . $new . '';
return $total;
}
function fgal($mod = 0) {
////////////////////////////////////////////////////////////
// Статистика галлереи //
////////////////////////////////////////////////////////////
// Если вызвать с параметром 1, будет выдавать только колличество новых картинок
global $realtime;
$old = $realtime - (3 * 24 * 3600);
$new = mysql_result(mysql_query("SELECT COUNT(*) FROM `gallery` WHERE `time` > '" . $old . "' AND `type` = 'ft'"), 0);
if ($mod == 0) {
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `gallery` WHERE `type` = 'ft'"), 0);
$out = $total;
if ($new > 0)
$out .= ' / +' . $new . '';
}
else {
$out = $new;
}
return $out;
}
function stlib() {
////////////////////////////////////////////////////////////
// Статистика библиотеки //
////////////////////////////////////////////////////////////
global $realtime, $rights;
$countf = mysql_result(mysql_query("SELECT COUNT(*) FROM `lib` WHERE `type` = 'bk' AND `moder` = '1'"), 0);
$old = $realtime - (3 * 24 * 3600);
$countf1 = mysql_result(mysql_query("SELECT COUNT(*) FROM `lib` WHERE `time` > '" . $old . "' AND `type` = 'bk' AND `moder` = '1'"), 0);
$out = $countf;
if ($countf1 > 0)
$out = $out . ' / +' . $countf1 . '';
$countm = mysql_result(mysql_query("SELECT COUNT(*) FROM `lib` WHERE `type` = 'bk' AND `moder` = '0'"), 0);
if (($rights == 5 || $rights >= 6) && $countm > 0)
$out = $out . "/ Мод:$countm";
return $out;
}
function wch($id = false, $mod = false) {
////////////////////////////////////////////////////////////
// Статистика Чата //
////////////////////////////////////////////////////////////
//TODO: Написать функцию статистики Чата
return 0;
}
function gbook($mod = 0) {
////////////////////////////////////////////////////////////
// Статистика гостевой //
////////////////////////////////////////////////////////////
// Если вызвать с параметром 1, то будет выдавать колличество новых в гостевой
// Если вызвать с параметром 2, то будет выдавать колличество новых в Админ-Клубе
global $realtime, $rights;
switch ($mod) {
case 1 :
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `guest` WHERE `adm`='0' AND `time` > '" . ($realtime - 86400) . "'"), 0);
break;
case 2 :
if ($rights >= 1)
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `guest` WHERE `adm`='1' AND `time` > '" . ($realtime - 86400) . "'"), 0);
break;
default :
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `guest` WHERE `adm`='0' AND `time` > '" . ($realtime - 86400) . "'"), 0);
if ($rights >= 1) {
$req = mysql_query("SELECT COUNT(*) FROM `guest` WHERE `adm`='1' AND `time`>'" . ($realtime - 86400) . "'");
$count = $count . ' / ' . mysql_result($req, 0) . '';
}
}
return $count;
}
function tags($var = '') {
////////////////////////////////////////////////////////////
// Обработка ссылок и тэгов BBCODE в тексте //
////////////////////////////////////////////////////////////
$color = 'Maroon|DarkRed|FireBrick|Red|Salmon|Tomato|Coral|
OrangeRed|Chocolate|SandyBrown|DarkOrange|Orange|DarkGoldenrod|Goldenrod|Gold|Olive|Yellow|YellowGreen|
GreenYellow|Chartreuse|LawnGreen|Green|Lime|LimeGreen|SpringGreen|MediumSpringGreen|Turquoise|LightSeaGreen|
MediumTurquoise|Teal|DarkCyan|Aqua|Cyan|DarkTurquoise|DeepSkyBlue|DodgerBlue|RoyalBlue|Navy|DarkBlue|
MediumBlue|Blue|BlueViolet|DarkOrchid|DarkViolet|Purple|DarkMagenta|Fuchsia|Magenta|MediumVioletRed|DeepPink|
HotPink|Crimson|Brown|IndianRed|RosyBrown|LightCoral|Snow|MistyRose|DarkSalmon|LightSalmon|Sienna|
SeaShell|SaddleBrown|Peachpuff|Peru|Linen|Bisque|Burlywood|Tan|AntiqueWhite|NavajoWhite|BlanchedAlmond|
PapayaWhip|Moccasin|Wheat|Oldlace|FloralWhite|Cornsilk|Khaki|LemonChiffon|PaleGoldenrod|DarkKhaki|Beige|
LightGoldenrodYellow|LightYellow|Ivory|OliveDrab|DarkOliveGreen|DarkSeaGreen|DarkGreen|ForestGreen|LightGreen|
PaleGreen|Honeydew|SeaGreen|MediumSeaGreen|Mintcream|MediumAquamarine|Aquamarine|DarkSlateGray|PaleTurquoise|
LightCyan|Azure|CadetBlue|PowderBlue|LightBlue|SkyBlue|LightskyBlue|SteelBlue|AliceBlue|SlateGray|
LightSlateGray|LightsteelBlue|CornflowerBlue|Lavender|GhostWhite|MidnightBlue|SlateBlue|DarkSlateBlue|
MediumSlateBlue|MediumPurple|Indigo|MediumOrchid|Plum|Violet|Thistle|Orchid|LavenderBlush|PaleVioletRed|Pink|
LightPink|Black|DimGray|Gray|DarkGray|Silver|LightGrey|Gainsboro|WhiteSmoke|White';
$var = preg_replace(array('#\[php\](.*?)\[\/php\]#se'), array("''.highlight('$1').''"), str_replace("]\n", "]", $var));
$var = preg_replace('#\[color=(\#(?:[a-fA-F0-9]{3}|[a-fA-F0-9]{6})|' . $color . ')\](.*?)\[/color\]#si', '\2', $var);
$var = preg_replace('#\[sub\](.*?)\[/sub\]#si', '\1', $var);
$var = preg_replace('#\[sup\](.*?)\[/sup\]#si', '\1', $var);
$var = preg_replace('#\[left\](.*?)\[/left\]#si', '\1
', $var);
$var = preg_replace('#\[right\](.*?)\[/right\]#si', '\1
', $var);
$var = preg_replace('#\[justify\](.*?)\[/justify\]#si', '\1
', $var);
$var = preg_replace('#\[center\](.*?)\[/center\]#si', '\1
', $var);
$var = preg_replace_callback('#\[size=([0-9]{1,2})\](.*?)\[/size\]#si',
create_function(
'$data',
'if(intval($data[1])>48) {
$data[1] = 48;
} elseif (intval($data[1])<3) {
$data[1] = 3;
}
return "{$data[2]}";
'
), $var);
$var = preg_replace('#\[offtop\](.*?)\[/offtop\]#si', '
\1
', $var);
$var = preg_replace_callback('#\[hide\](.*?)\[/hide\]#si', 'bbHide', $var);
$var = preg_replace_callback('#\[ghide=([0-9]+)\](.*?)\[/ghide\]#si', 'bbGHide', $var);
$var = preg_replace('#\[\*\]#si', '', $var);
$var = preg_replace('#\[hr\]#si', '
', $var);
$var = preg_replace('#\[b\](.*?)\[/b\]#si', '\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 = preg_replace('#\[c\](.*?)\[/c\]#si', '\1
', $var);
$var = preg_replace_callback('`\\[url=((?:http|ftp)+s?://.+?)\\](.+?)\\[/url\\]|((?:http|ftp)+s?://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&_=/%\-\+:#]*)|\[img\]((?:http|ftp)+s?://[a-zA-Z0-9\-\_\+\.\%\~\/]+?\.(?:jpeg|jpe|jpg|gif|png|tga|tif|tiff|bmp))\[/img\]`', 'url_replace', $var);
return $var;
}
function highlight($php) {
// Служебная функция подсветки PHP кода (прислал FlySelf)
$php = strtr($php, array('
' => '', '\\' => 'slash_JOHNCMS'));
$php = html_entity_decode(trim($php), ENT_QUOTES, 'UTF-8');
$php = substr($php, 0, 2) != "" ? $php = "" : $php;
$php = highlight_string(stripslashes($php), true);
$php = strtr($php, array('slash_JOHNCMS' => '\', ':' => ':', '[' => '['));
return '' . $php . '
';
}
function w_gHide($gh){
// gHide valid finction by SunRise
// Допольнительно в функцию добавлена обработка тэга IMG от SunRise
// Данной функцией обрабатывать ВХОДЯЩИЕ данные
global $user_id, $rights;
// Обработчик тэга IMG
if(preg_match('#\[img\](.*?)\[\/img\]#si', $gh))
{
if(preg_match('#\[img\]((?:http|ftp)+s?://[a-zA-Z0-9\-\_\+\.\%\~\/]+?\.(?:jpeg|jpe|jpg|gif|png|tga|tif|tiff|bmp))\[\/img\]#si', $gh))
{
return preg_replace_callback('#\[img\]((?:http|ftp)+s?://[a-zA-Z0-9\-\_\+\.\%\~\/]+?\.(?:jpeg|jpe|jpg|gif|png|tga|tif|tiff|bmp))\[\/img\]#si',
create_function(
'$data',
'$img = @getimagesize($data[1]);
if(!empty($img) && is_array($img) && in_array($img[\'mime\'], array(\'image/gif\', \'image/jpeg\', \'image/png\', \'image/tga\', \'image/bmp\', \'image/tiff\')) && $img[0] > 10 && $img[1] > 10)
{
return \'[img]\' . $data[1] . \'[/img]\';
}
else
{
return \'[[red][b]Неверное изображение в тэге!!![/b][/red]]\';
}'
), $gh);
}
else
{
return preg_replace('#\[img\](.*?)\[\/img\]#si', '[[red][b]Неверный формат адреса в тэге!!![/b][/red]]', $gh);
}
}
// *******************
if(preg_match('#\[ghide=(.*?)\](.*?)\[\/ghide\]#si',$gh))
{
if($rights>=2)
{
return $gh;
}
else
{
return '[Не хулигань!]';
}
}
elseif(preg_match('#\[ghide\](.*?)\[\/ghide\]#si',$gh))
{
return preg_replace('#\[ghide\](.*?)\[\/ghide\]#si', '[ghide=' . $user_id . ']\1[/ghide]', $gh);
}
else
{
return $gh;
}
}
function e_gHide($gh){
// gHide valid finction by SunRise
// Данной функцией обрабатывать ИСХОДЯЩИЕ К РЕДАКТИРОВАНИЮ данные
global $user_id, $rights;
if(preg_match('#\[ghide=(.*?)\](.*?)\[\/ghide\]#si',$gh))
{
if($rights>=2)
{
return preg_replace('#\[ghide=(.*?)\](.*?)\[\/ghide\]#si', '[ghide=\1]\2[/ghide]', $gh);
}
else
{
return preg_replace('#\[ghide=(?:.*?)\](.*?)\[\/ghide\]#si', '[ghide]\1[/ghide]', $gh);
}
}
else
{
return $gh;
}
}
function bbHide($hide) {
// gHide function by SunRise
global $user_id;
if(!$user_id)
{
return 'Скрытый текст! Могут прочесть только зарегистрированные пользователи.
';
}
else
{
return '' . $hide[1] . '
';
}
}
function bbGHide($ghide) {
// gHide function by SunRise
global $user_id, $rights;
if($user_id && $user_id == $ghide[1] || $rights>=2)
{
return '' . $ghide[2] . '
';
}
else
{
return 'Скрытый текст! Могут прочесть только администрация и пользователь написавший сообщение.
';
}
}
function url_replace($m) {
// Служебная функция парсинга URL (прислал FlySelf)
// Втсавка кода обработки тега IMG от SunRise
if(isset($m[5]))
{
$matches = array('%3C','%3E','%26','%26','%22','%3A','%28','%29');// отчистка от символов < > & ' " : ( ) в URL формате
$m[5] = str_replace($matches, '', $m[5]);
return '
';
}
else
{
if (!isset($m[3]))
{
return '' . $m[2] . '';
}
else
{
$lText = '';
if(mb_strlen($m[3])>70) $lText = mb_substr($m[3],0,70) . '...'; else $lText = $m[3];
return '' . $lText . '';
}
}
}
function notags($var = '') {
////////////////////////////////////////////////////////////
// Вырезание BBcode тэгов из текста //
////////////////////////////////////////////////////////////
$var = strtr($var, array('[green]' => '', '[/green]' => '', '[red]' => '', '[/red]' => '', '[blue]' => '', '[/blue]' => '', '[b]' => '', '[/b]' => '', '[i]' => '', '[/i]' => '', '[u]' => '', '[/u]' => '', '[s]' => '', '[/s]' => '',
'[c]' => '', '[/c]' => '', '[*]' => '', '[hr]' => ''));
$var = preg_replace('{\[color=(?:.+?)\](.*?)\[/color\]}si','\1',$var);
$var = preg_replace('{\[img\](.*?)\[/img\]}si','',$var);
$var = preg_replace('{\[sub\](.*?)\[/sub\]}si','(sub:\1)',$var);
$var = preg_replace('{\[sup\](.*?)\[/sup\]}si','(sup:\1)',$var);
$var = preg_replace('{\[offtop\](.*?)\[/offtop\]}si','(\1)',$var);
$var = preg_replace('{\[hide\](.*?)\[/hide\]}si','',$var);
$var = preg_replace('{\[ghide=(.*?)\](.*?)\[/ghide\]}si','',$var);
$var = preg_replace('{\[size=(.*?)\](.*?)\[/size\]}si','\2',$var);
$var = preg_replace('{\[url=(.*?)\](.*?)\[/url\]}si','[\2 (\1)]',$var);
return $var;
}
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;
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)));
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, '<<');
if ($start > $num_per_page * $pgcont)
$pageindex .= sprintf($base_link, 0, '1');
if ($start > $num_per_page * ($pgcont + 1))
$pageindex .= ' ... ';
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);
}
$pageindex .= '[' . ($start / $num_per_page + 1) . '] ';
$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);
}
if ($start + $num_per_page * ($pgcont + 1) < $tmpMaxPages)
$pageindex .= ' ... ';
if ($start + $num_per_page * $pgcont < $tmpMaxPages)
$pageindex .= sprintf($base_link, $tmpMaxPages, $tmpMaxPages / $num_per_page + 1);
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 > 345600) {
$str = $day . ' дней';
}
elseif ($var >= 172800) {
$str = $day . ' дня';
}
elseif ($var >= 86400) {
$str = '1 день';
}
else {
$str = gmdate('G:i:s', $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 check($str) {
////////////////////////////////////////////////////////////
// Проверка переменных //
////////////////////////////////////////////////////////////
$str = htmlentities(trim($str), ENT_QUOTES, 'UTF-8');
$str = nl2br($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('\\', "\", $str);
$str = str_replace("|", "I", $str);
$str = str_replace("||", "I", $str);
$str = str_replace("/\\\$/", "$", $str);
$str = mysql_real_escape_string($str);
return $str;
}
function checkout($str, $br = 0, $tags = 0) {
////////////////////////////////////////////////////////////
// Обработка текстов перед выводом на экран //
////////////////////////////////////////////////////////////
// $br=1 с обработкой переносов строк //
// $br=2 подстановка пробела, вместо переноса //
// $tags=1 с обработкой тэгов //
// $tags=2 с вырезанием тэгов //
////////////////////////////////////////////////////////////
$str = htmlentities($str, ENT_QUOTES, 'UTF-8');
if ($br == 1)
$str = nl2br($str);
elseif ($br == 2)
$str = str_replace("\r\n", ' ', $str);
if ($tags == 1)
$str = tags($str);
elseif ($tags == 2)
$str = notags($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) => ''));
return $str;
}
function smileys($str, $adm = 0) {
////////////////////////////////////////////////////////////
// Обработка смайлов //
////////////////////////////////////////////////////////////
// $adm=1 покажет и обычные и Админские смайлы //
// $adm=2 пересоздаст кэш смайлов //
////////////////////////////////////////////////////////////
global $rootpath;
// Записываем КЭШ смайлов
if ($adm == 2) {
// Обрабатываем простые смайлы
$array1 = array();
$path = $rootpath . 'smileys/simply/';
$dir = opendir($path);
while ($file = readdir($dir)) {
$name = explode(".", $file);
if ($name[1] == 'gif' || $name[1] == 'jpg' || $name[1] == 'png') {
$array1[':' . $name[0]] = '
';
++$count;
}
}
closedir($dir);
// Обрабатываем Админские смайлы
$array2 = array();
$array3 = array();
$path = $rootpath . 'smileys/admin/';
$dir = opendir($path);
while ($file = readdir($dir)) {
$name = explode(".", $file);
if ($name[1] == 'gif' || $name[1] == 'jpg' || $name[1] == 'png') {
$array2[':' . trans($name[0]) . ':'] = '
';
$array3[':' . $name[0] . ':'] = '
';
++$count;
}
}
// Обрабатываем смайлы в каталогах
$array4 = array();
$array5 = array();
$cat = glob($rootpath . 'smileys/user/*', GLOB_ONLYDIR);
$total = count($cat);
for ($i = 0; $i < $total; $i++) {
$dir = opendir($cat[$i]);
while ($file = readdir($dir)) {
$name = explode(".", $file);
if ($name[1] == 'gif' || $name[1] == 'jpg' || $name[1] == 'png') {
$array4[':' . trans($name[0]) . ':'] = '
';
$array5[':' . $name[0] . ':'] = '
';
++$count;
}
}
closedir($dir);
}
$smileys = serialize(array_merge($array1, $array4, $array5));
$smileys_adm = serialize(array_merge($array2, $array3));
// Записываем в файл Кэша
if ($fp = fopen($rootpath . 'cache/smileys_cache.dat', 'w')) {
fputs($fp, $smileys . "\r\n" . $smileys_adm);
fclose($fp);
return $count;
}
else {
return false;
}
}
else {
// Выдаем кэшированные смайлы
if (file_exists($rootpath . 'cache/smileys_cache.dat')) {
$file = file($rootpath . 'cache/smileys_cache.dat');
$smileys = unserialize($file[0]);
if ($adm)
$smileys = array_merge($smileys, unserialize($file[1]));
return strtr($str, $smileys);
}
else {
return $str;
}
}
}
function display_error($error = false) {
////////////////////////////////////////////////////////////
// Сообщения об ошибках //
////////////////////////////////////////////////////////////
if ($error) {
$out = '';
return $out;
}
else {
return false;
}
}
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;
}
function show_user($user = array(), $status = 0, $ip = 0, $str = '', $text = '', $sub = '') {
////////////////////////////////////////////////////////////
// Отображение пользователей //
////////////////////////////////////////////////////////////
// $user (array) - массив запроса в таблицу `users` //
// $status (boolean) - показать статус //
// $ip (int) - отображение IP и UserAgent //
// 0 - не показывать //
// 1 - показать //
// 2 - показать ссылку на IP поиск //
// $str (string) - строка выводится после Ника юзера //
// $text (string) - выводится после строки со статусом //
// $sub (string) - строка выводится в области "sub" //
////////////////////////////////////////////////////////////
global $set_user, $realtime, $user_id, $admp, $home;
$out = false;
if (!$user['id']) {
$out = 'Гость';
if (!empty ($user['name']))
$out .= ': ' . $user['name'];
if (!empty ($str))
$out .= ' ' . $str;
}
else {
if ($set_user['avatar']) {
$out .= '';
}
if ($text)
$out .= '' . $text . '
';
if ($sub || $ip) {
$out .= '';
if (!empty ($sub))
$out .= $sub;
if ($ip) {
$out .= '
';
else
$out .= '
IP Address: ' . long2ip($user['ip']) . '
';
}
$out .= '';
}
return $out;
}
function m_filesize($data){
if($data < 1024){
$data = round($data,2);
$data = "$data байт";
} elseif($data > 1024 && $data < 1048576){
$data = ($data / 1024);
$data = round($data,2);
$data = "$data кб";
} elseif($data > 1048576 && $data < 1073741824){
$data = (($data / 1024) / 1024);
$data = round($data,2);
$data = "$data Мб";
} elseif($data > 1073741824 && $data < 1099511627776 ){
$data =((($data / 1024) / 1024) / 1024);
$data = round($data,2);
$data = "$data Гб";
} elseif($data > 1099511627776 && $data < 1125899906842624 ){
$data =(((($data / 1024) / 1024) / 1024) / 1024);
$data = round($data,2);
$data = "$data Тб";
}
return $data;
}
/*
################################################################################
## ##
## Старые функции, которые постепенно будут удаляться. ##
## НЕ ИСПОЛЬЗУЙТЕ их в своих модулях!!! ##
## ##
################################################################################
*/
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 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;
}
?>