Azeeeeeez
Kod · PHP1681 qator
<?php



define('_IN_JOHNCMS', 1);



require('../incfiles/core.php');

$lng_forum = core::load_lng('forum');

if (isset($_SESSION['ref']))

    unset($_SESSION['ref']);



/*

-----------------------------------------------------------------

Настройки форума

-----------------------------------------------------------------

*/

$set_forum = $user_id && !empty($datauser['set_forum']) ? unserialize($datauser['set_forum']) : array(

    'farea' => 0,

    'upfp' => 0,

    'preview' => 1,

    'postclip' => 1,

    'postcut' => 2

);



/*

-----------------------------------------------------------------

Список расширений файлов, разрешенных к выгрузке

-----------------------------------------------------------------

*/

// Файлы архивов

$ext_arch = array(

    'zip',

    'rar',

    '7z',

    'tar',

    'gz',

    'apk'

);

// Звуковые файлы

$ext_audio = array(

    'mp3',

    'amr'

);

// Файлы документов и тексты

$ext_doc = array(

    'txt',

    'pdf',

    'doc',

    'rtf',

    'djvu',

    'xls'

);

// Файлы Java

$ext_java = array(

    'jar',

    'jad'

);

// Файлы картинок

$ext_pic = array(

    'jpg',

    'jpeg',

    'gif',

    'png',

    'bmp'

);

// Файлы SIS

$ext_sis = array(

    'sis',

    'sisx'

);

// Файлы видео

$ext_video = array(

    '3gp',

    'avi',

    'flv',

    'mpeg',

    'mp4'

);

// Файлы Windows

$ext_win = array(

    'exe',

    'msi'

);

// Другие типы файлов (что не перечислены выше)

$ext_other = array('wmf');



/*

-----------------------------------------------------------------

Ограничиваем доступ к Форуму

-----------------------------------------------------------------

*/

$error = '';

if (!$set['mod_forum'] && $rights < 7)

    $error = $lng_forum['forum_closed'];

elseif ($set['mod_forum'] == 1 && !$user_id)

    $error = $lng['access_guest_forbidden'];

if ($error) {

    require('../incfiles/head.php');

    echo '<div class="rmenu"><p>' . $error . '</p></div>';

    require('../incfiles/end.php');

    exit;

}



$headmod = $id ? 'forum,' . $id : 'forum';



/*

-----------------------------------------------------------------

Заголовки страниц форума

-----------------------------------------------------------------

*/

if (empty($id)) {

    $textl = '' . $lng['forum'] . '';

} else {

    $req = mysql_query("SELECT `text` FROM `forum` WHERE `id`= '" . $id . "'");

    $res = mysql_fetch_assoc($req);

    $hdr = strtr($res['text'], array(

        '&quot;' => '',

        '&amp;' => '',

        '&lt;' => '',

        '&gt;' => '',

        '&#039;' => ''

    ));

    $hdr = mb_substr($hdr, 0, 30);

    $hdr = functions::checkout($hdr);

    $textl = mb_strlen($res['text']) > 30 ? $hdr . '...' : $hdr;

}



/*

-----------------------------------------------------------------

Переключаем режимы работы

-----------------------------------------------------------------

*/

$mods = array(

    'addfile',

    'addvote',

    'close',

    'deltema',

    'delvote',

    'editpost',

    'editvote',

    'file',

    'files',

    'filter',

    'loadtem',

    'massdel',

    'new',

    'nt',

    'per',

    'post',

    'ren',

    'restore',

    'say',

    'tema',

    'users',

    'vip',

    'vote',

    'who',

'curators',

'rahmat'

);

if ($act && ($key = array_search($act, $mods)) !== false && file_exists('includes/' . $mods[$key] . '.php')) {

    require('includes/' . $mods[$key] . '.php');

} else {

    require('../incfiles/head.php');



    /*

    -----------------------------------------------------------------

    Если форум закрыт, то для Админов выводим напоминание

    -----------------------------------------------------------------

    */

    if (!$set['mod_forum']) echo '<div class="alarm">' . $lng_forum['forum_closed'] . '</div>';

    elseif ($set['mod_forum'] == 3) echo '<div class="rmenu">' . $lng['read_only'] . '</div>';

    if (!$user_id) {

        if (isset($_GET['newup']))

            $_SESSION['uppost'] = 1;

        if (isset($_GET['newdown']))

            $_SESSION['uppost'] = 0;

    }

    if ($id) {

        /*

        -----------------------------------------------------------------

        Определяем тип запроса (каталог, или тема)

        -----------------------------------------------------------------

        */

        $type = mysql_query("SELECT * FROM `forum` WHERE `id`= '$id'");

        if (!mysql_num_rows($type)) {

            // Если темы не существует, показываем ошибку

            echo functions::display_error($lng_forum['error_topic_deleted'], '<a href="index.php">' . $lng['to_forum'] . '</a>');

            require('../incfiles/end.php');

            exit;

        }

        $type1 = mysql_fetch_assoc($type);



        /*

        -----------------------------------------------------------------

        Фиксация факта прочтения Топика

        -----------------------------------------------------------------

        */

        if ($user_id && $type1['type'] == 't') {

            $req_r = mysql_query("SELECT * FROM `cms_forum_rdm` WHERE `topic_id` = '$id' AND `user_id` = '$user_id' LIMIT 1");

            if (mysql_num_rows($req_r)) {

                $res_r = mysql_fetch_assoc($req_r);

                if ($type1['time'] > $res_r['time'])

                    mysql_query("UPDATE `cms_forum_rdm` SET `time` = '" . time() . "' WHERE `topic_id` = '$id' AND `user_id` = '$user_id' LIMIT 1");

            } else {

                mysql_query("INSERT INTO `cms_forum_rdm` SET `topic_id` = '$id', `user_id` = '$user_id', `time` = '" . time() . "'");

            }

        }



        /*

  -----------------------------------------------------------------

        Получаем структуру форума

        -----------------------------------------------------------------

        */

        $res = true;

        $parent = $type1['refid'];

        while ($parent != '0' && $res != false) {

            $req = mysql_query("SELECT * FROM `forum` WHERE `id` = '$parent' LIMIT 1");

            $res = mysql_fetch_assoc($req);

            if ($res['type'] == 'f' || $res['type'] == 'r')

                $tree[] = '<a href="index.php?id=' . $parent . '">' . $res['text'] . '</a>';

            $parent = $res['refid'];

        }

        $tree[] = '<a href="index.php">' . $lng['forum'] . '</a>';

        krsort($tree);

        if ($type1['type'] != 't' && $type1['type'] != 'm')

            $tree[] = '<b>' . $type1['text'] . '</b>';



        /*

        -----------------------------------------------------------------

        Счетчик файлов и ссылка на них

        -----------------------------------------------------------------

        */

        $sql = ($rights == 9) ? "" : " AND `del` != '1'";

        if ($type1['type'] == 'f') {

            $count = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_forum_files` WHERE `cat` = '$id'" . $sql), 0);

            if ($count > 0)

                $filelink = '<a href="index.php?act=files&amp;c=' . $id . '">' . $lng_forum['files_category'] . '</a>';

        } elseif ($type1['type'] == 'r') {

            $count = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_forum_files` WHERE `subcat` = '$id'" . $sql), 0);

            if ($count > 0)

                $filelink = '<a href="index.php?act=files&amp;s=' . $id . '">' . $lng_forum['files_section'] . '</a>';

        } elseif ($type1['type'] == 't') {

            $count = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_forum_files` WHERE `topic` = '$id'" . $sql), 0);

            if ($count > 0)

                $filelink = '<a href="index.php?act=files&amp;t=' . $id . '">' . $lng_forum['files_topic'] . '</a>';

        }

        $filelink = isset($filelink) ? $filelink . '&#160;<span class="red">(' . $count . ')</span>' : false;



        /*

        -----------------------------------------------------------------

        Счетчик "Кто в теме?"

        -----------------------------------------------------------------

        */

        $wholink = false;

        if ($user_id && $type1['type'] == 't') {

            $online_u = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `lastdate` > " . (time() - 1000) . " AND `place` = 'forum,$id'"), 0);

            $online_g = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_sessions` WHERE `lastdate` > " . (time() - 1000) . " AND `place` = 'forum,$id'"), 0);

          

 $wholink = '<a href="index.php?act=who&amp;id=' . $id . '">' . $lng_forum['who_here'] . '?</a>&#160;<span class="red">(' . $online_u . '&#160;/&#160;' . $online_g . ')</span>';

        }



        /*

        -----------------------------------------------------------------

        Выводим верхнюю панель навигации

        -----------------------------------------------------------------

        */

        echo '<p>' . counters::forum_new(1) . '</p>' .

            '<div class="phdr">' . functions::display_menu($tree) . '</div>' .

            '<div class="topmenu"><a href="search.php?id=' . $id . '">' . $lng['search'] . '</a>' . ($filelink ? ' | ' . $filelink : '') . ($wholink ? ' | ' . $wholink : '') . '</div>';



        /*

        -----------------------------------------------------------------

        Отрбражаем содержимое форума

        -----------------------------------------------------------------

        */

        switch ($type1['type']) {

            case 'f':

                /*

                -----------------------------------------------------------------

                Список разделов форума

                -----------------------------------------------------------------

               

  */

                $req = mysql_query("SELECT `id`, `text`, `soft` FROM `forum` WHERE `type`='r' AND `refid`='$id' ORDER BY `realid`");

                $total = mysql_num_rows($req);

                if ($total) {

                    $i = 0;

                    while (($res = mysql_fetch_assoc($req)) !== false) {

                        echo $i % 2 ? '<div class="list2">' : '<div class="list1">';

                        $coltem = mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `type` = 't' AND `refid` = '" . $res['id'] . "'"), 0);

                        echo '<a href="?id=' . $res['id'] . '">' . $res['text'] . '</a>';

                        if ($coltem)

                            echo " [$coltem]";

                        if (!empty($res['soft']))

                            echo '<div class="sub"><span class="gray">' . $res['soft'] . '</span></div>';

                        echo '</div>';

                        ++$i;

                    }

                    unset($_SESSION['fsort_id']);

                    unset($_SESSION['fsort_users']);

                } else {

                    echo '<div class="menu"><p>' . $lng_forum['section_list_empty'] . '</p></div>';

                }

                echo '<div class="phdr">' . $lng['total'] . ': ' . $total . '</div>';

                break;



            case 'r':

                /*

                -----------------------------------------------------------------

                Список топиков

                -----------------------------------------------------------------

                */

                $total = mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `type`='t' AND `refid`='$id'" . ($rights >= 7 ? '' : " AND `close`!='1'")), 0);

                if (($user_id && !isset($ban['1']) && !isset($ban['11']) && $set['mod_forum'] != 3) || core::$user_rights) {

                    // Кнопка создания новой темы

                    echo '<div class="gmenu"><form action="index.php?act=nt&amp;id=' . $id . '" method="post"><input type="submit" value="' . $lng_forum['new_topic'] . '" /></form></div>';

                }

                if ($total) {

                    $req = mysql_query("SELECT * FROM `forum` WHERE `type`='t'" . ($rights >= 7 ? '' : " AND `close`!='1'") . " AND `refid`='$id' ORDER BY `vip` DESC, `time` DESC LIMIT $start, $kmess");

                    $i = 0;

                    while (($res = mysql_fetch_assoc($req)) !== false) {

                        if ($res['close'])

                            echo '<div class="rmenu">';

                        else

                            echo $i % 2 ? '<div class="list2">' : '<div class="list1">';

                        $nikuser = mysql_query("SELECT `from` FROM `forum` WHERE `type` = 'm' AND `close` != '1' AND `refid` = '" . $res['id'] . "' ORDER BY `time` DESC LIMIT 1");

                        $nam = mysql_fetch_assoc($nikuser);

                        $colmes = mysql_query("SELECT COUNT(*) FROM `forum` WHERE `type`='m' AND `refid`='" . $res['id'] . "'" . ($rights >= 7 ? '' : " AND `close` != '1'"));

                        $colmes1 = mysql_result($colmes, 0);

                        $cpg = ceil($colmes1 / $kmess);

                        $np = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_forum_rdm` WHERE `time` >= '" . $res['time'] . "' AND `topic_id` = '" . $res['id'] . "' AND `user_id`='$user_id'"), 0);

// Значки

                        $icons = array(

                            ($np ? (!$res['vip'] ? '<img src="../theme/' . $set_user['skin'] . '/images/op.gif" alt=""/>' : '') : '<img src="../theme/' . $set_user['skin'] . '/images/np.gif" alt=""/>'),

                            ($res['vip'] ? '<img src="../theme/' . $set_user['skin'] . '/images/pt.gif" alt=""/>' : ''),

                            ($res['realid'] ? '<img src="../theme/' . $set_user['skin'] . '/images/rate.gif" alt=""/>' : ''),

                            ($res['edit'] ? '<img src="../theme/' . $set_user['skin'] . '/images/tz.gif" alt=""/>' : '')

                        );

                        echo functions::display_menu($icons, '&#160;', '&#160;');

                        echo '<a href="index.php?id=' . $res['id'] . '">' . $res['text'] . '</a> [' . $colmes1 . ']';

                        if ($cpg > 1) {

                            echo '<a href="index.php?id=' . $res['id'] . '&amp;page=' . $cpg . '">&#160;&gt;&gt;</a>';

                        }

                        echo '<div class="sub">';

                        echo $res['from'];

                        if (!empty($nam['from'])) {

                            echo '&#160;/&#160;' . $nam['from'];

                        }

                        echo ' <span class="gray">(' . functions::display_date($res['time']) . ')</span></div></div>';

                        ++$i;

                    }

                    unset($_SESSION['fsort_id']);

                    unset($_SESSION['fsort_users']);

                } else {

                    echo '<div class="menu"><p>' . $lng_forum['topic_list_empty'] . '</p></div>';

                }

                echo '<div class="phdr">' . $lng['total'] . ': ' . $total . '</div>';

                if ($total > $kmess) {

                    echo '<div class="topmenu">' . functions::display_pagination('index.php?id=' . $id . '&amp;', $start, $total, $kmess) . '</div>' .

                        '<p><form action="index.php?id=' . $id . '" method="post">' .

                        '<input type="text" name="page" size="2"/>' .

                        '<input type="submit" value="' . $lng['to_page'] . ' &gt;&gt;"/>' .

                        '</form></p>';

                }

                break;



            case 't':

                /*

                -----------------------------------------------------------------

                Читаем топик

                -----------------------------------------------------------------

                        */

                $filter = isset($_SESSION['fsort_id']) && $_SESSION['fsort_id'] == $id ? 1 : 0;

                $sql = '';

                if ($filter && !empty($_SESSION['fsort_users'])) {

                    // Подготавливаем запрос на фильтрацию юзеров

                    $sw = 0;

                    $sql = ' AND (';

                    $fsort_users = unserialize($_SESSION['fsort_users']);

                    foreach ($fsort_users as $val) {

                        if ($sw)

                            $sql .= ' OR ';

                        $sortid = intval($val);

                        $sql .= "`forum`.`user_id` = '$sortid'";

                        $sw = 1;

                    }

                    $sql .= ')';

                }



                // Если тема помечена для удаления, разрешаем доступ только администрации

                if ($rights < 6 && $type1['close'] == 1) {

                    echo '<div class="rmenu"><p>' . $lng_forum['topic_deleted'] . '<br/><a href="?id=' . $type1['refid'] . '">' . $lng_forum['to_section'] . '</a></p></div>';

                    require('../incfiles/end.php');

                    exit;

                }



                // Счетчик постов темы

                $colmes = mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `type`='m'$sql AND `refid`='$id'" . ($rights >= 7 ? '' : " AND `close` != '1'")), 0);

                if ($start >= $colmes) {

                    // Исправляем запрос на несуществующую страницу

                    $start = max(0, $colmes - (($colmes % $kmess) == 0 ? $kmess : ($colmes % $kmess)));

                }



                // Выводим название топика

                echo '<div class="phdr"><a name="up" id="up"></a><a href="#down"><img src="../theme/' . $set_user['skin'] . '/images/down.png" alt="Вниз" width="20" height="10" border="0"/></a>&#160;&#160;<b>' . $type1['text'] . '</b></div>';

                if ($colmes > $kmess) {

                    echo '<div class="topmenu">' . functions::display_pagination('index.php?id=' . $id . '&amp;', $start, $colmes, $kmess) . '</div>';

                }

  // Метка удаления темы

                if ($type1['close']) {

                    echo '<div class="rmenu">' . $lng_forum['topic_delete_who'] . ': <b>' . $type1['close_who'] . '</b></div>';

                } elseif (!empty($type1['close_who']) && $rights >= 7) {

                    echo '<div class="gmenu"><small>' . $lng_forum['topic_delete_whocancel'] . ': <b>' . $type1['close_who'] . '</b></small></div>';

                }



                // Метка закрытия темы

                if ($type1['edit']) {

                    echo '<div class="rmenu">' . $lng_forum['topic_closed'] . '</div>';

                }



                /*

                -----------------------------------------------------------------

                Блок голосований

                -----------------------------------------------------------------

                */

                if ($type1['realid']) {

                    $clip_forum = isset($_GET['clip']) ? '&amp;clip' : '';

                    $vote_user = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_forum_vote_users` WHERE `user`='$user_id' AND `topic`='$id'"), 0);

                    $topic_vote = mysql_fetch_assoc(mysql_query("SELECT `name`, `time`, `count` FROM `cms_forum_vote` WHERE `type`='1' AND `topic`='$id' LIMIT 1"));

                    echo '<div  class="gmenu"><b>' . functions::checkout($topic_vote['name']) . '</b><br />';

                    $vote_result = mysql_query("SELECT `id`, `name`, `count` FROM `cms_forum_vote` WHERE `type`='2' AND `topic`='" . $id . "' ORDER BY `id` ASC");

                    if (!$type1['edit'] && !isset($_GET['vote_result']) && $user_id && $vote_user == 0) {

                        // Выводим форму с опросами

                        echo '<form action="index.php?act=vote&amp;id=' . $id . '" method="post">';

                        while (($vote = mysql_fetch_assoc($vote_result)) !== false) {

                            echo '<input type="radio" value="' . $vote['id'] . '" name="vote"/> ' . functions::checkout($vote['name'], 0, 1) . '<br />';

                        }

                        echo '<p><input type="submit" name="submit" value="' . $lng['vote'] . '"/><br/><a href="index.php?id=' . $id . '&amp;start=' . $start . '&amp;vote_result' . $clip_forum .

                            '">' . $lng_forum['results'] . '</a></p></form></div>';

                    } else {

                        // Выводим результаты голосования

                        echo '<small>';

                        while (($vote = mysql_fetch_assoc($vote_result)) !== false) {

                            $count_vote = $topic_vote['count'] ? round(100 / $topic_vote['count'] * $vote['count']) : 0;

                            echo functions::checkout($vote['name'], 0, 1) . ' [' . $vote['count'] . ']<br />';

                            echo '<img src="vote_img.php?img=' . $count_vote . '" alt="' . $lng_forum['rating'] . ': ' . $count_vote . '%" /><br />';

                        }

                        echo '</small><div class="bmenu">' . $lng_forum['total_votes'] . ': ';

                        if ($user_id && core::$user_data['rights'] > 6)

                            echo '<a href="index.php?act=users&amp;id=' . $id . '">' . $topic_vote['count'] . '</a>';

                        else

                            echo $topic_vote['count'];

                        echo '</div>';

                        if ($user_id && $vote_user == 0)

                            echo '<div class="bmenu"><a href="index.php?id=' . $id . '&amp;start=' . $start . $clip_forum . '">' . $lng['vote'] . '</a></div>';

                    }

                }

                $curators = !empty($type1['curators']) ? unserialize($type1['curators']) : array();

                $curator = false;

                if ($rights < 6 && $rights != 3 && $user_id) {

                    if (array_key_exists($user_id, $curators)) $curator = true;

                }

                /*

                -----------------------------------------------------------------

                Фиксация первого поста в теме

                -----------------------------------------------------------------

                */

                if (($set_forum['postclip'] == 2 && ($set_forum['upfp'] ? $start < (ceil($colmes - $kmess)) : $start > 0)) || isset($_GET['clip'])) {

                    $postreq = mysql_query("SELECT `forum`.*, `users`.`sex`, `users`.`rights`, `users`.`lastdate`, `users`.`status`, `users`.`datereg`

                    FROM `forum` LEFT JOIN `users` ON `forum`.`user_id` = `users`.`id`

                    WHERE `forum`.`type` = 'm' AND `forum`.`refid` = '$id'" . ($rights >= 7 ? "" : " AND `forum`.`close` != '1'") . "

                    ORDER BY `forum`.`id` LIMIT 1");

                    $postres = mysql_fetch_assoc($postreq);

                    echo '<div class="topmenu"><p>';



                    if ($postres['sex'])

                        echo '<img src="../theme/' . $set_user['skin'] . '/images/' . ($postres['sex'] == 'm' ? 'm' : 'w') . ($postres['datereg'] > time() - 86400 ? '_new.png" width="14"' : '.png" width="10"') . ' height="10"/>&#160;';

                    else

                        echo '<img src="../images/del.png" width="10" height="10" alt=""/>&#160;';

                    if ($user_id && $user_id != $postres['user_id']) {

                        echo '<a href="../users/profile.php?user=' . $postres['user_id'] . '&amp;fid=' . $postres['id'] . '"><b>' . $postres['from'] . '</b></a> ' .

                            '<a href="index.php?act=say&amp;id=' . $postres['id'] . '&amp;start=' . $start . '"> ' . $lng_forum['reply_btn'] . '</a> ' .

                            '<a href="index.php?act=say&amp;id=' . $postres['id'] . '&amp;start=' . $start . '&amp;cyt"> ' . $lng_forum['cytate_btn'] . '</a> ';

                    } else {

                        echo '<b>' . $postres['from'] . '</b> ';

                    }

                    echo(time() > $postres['lastdate'] + 1000 ? '<span class="red"> [Off]</span>' : '<span class="green"> [ON]</span>');

                    echo ' <span class="gray">(' . functions::display_date($postres['time']) . ')</span><br/>';

                    if ($postres['close']) {

                        echo '<span class="red">' . $lng_forum['post_deleted'] . '</span><br/>';

                    }

                    echo functions::checkout(mb_substr($postres['text'], 0, 500), 0, 2);

                    if (mb_strlen($postres['text']) > 500)

                        echo '...<a href="index.php?act=post&amp;id=' . $postres['id'] . '">' . $lng_forum['read_all'] . '</a>';

                    echo '</p></div>';

                }

                if ($filter)

                    echo '<div class="rmenu">' . $lng_forum['filter_on'] . '</div>';

                // Задаем правила сортировки (новые внизу / вверху)

                if ($user_id)

                    $order = $set_forum['upfp'] ? 'DESC' : 'ASC';

                else

                    $order = ((empty($_SESSION['uppost'])) || ($_SESSION['uppost'] == 0)) ? 'ASC' : 'DESC';

// Запрос в базу

                $req = mysql_query("SELECT `forum`.*, `users`.`sex`, `users`.`holat`, `users`.`rights`, `users`.`lastdate`, `users`.`status`, `users`.`datereg`

                FROM `forum` LEFT JOIN `users` ON `forum`.`user_id` = `users`.`id`

                WHERE `forum`.`type` = 'm' AND `forum`.`refid` = '$id'"

                    . ($rights >= 7 ? "" : " AND `forum`.`close` != '1'") . "$sql ORDER BY `forum`.`id` $order LIMIT $start, $kmess");

                // Верхнее поле "Написать"

                if (($user_id && !$type1['edit'] && $set_forum['upfp'] && $set['mod_forum'] != 3) || ($rights >= 7 && $set_forum['upfp'])) {

                    echo '<div class="gmenu">111<form name="form1" action="index.php?act=say&amp;id=' . $id . '" method="post">';

                    if ($set_forum['farea']) {

                        $token = mt_rand(1000, 100000);

                        $_SESSION['token'] = $token;

                        echo '<p>' .

                            (!$is_mobile ? bbcode::auto_bb('form1', 'msg') : '') .

                            '<textarea rows="' . $set_user['field_h'] . '" name="msg"></textarea></p>' .

                            '<p><input type="checkbox" name="addfiles" value="1" /> ' . $lng_forum['add_file'] .

                            ($set_user['translit'] ? '<br /><input type="checkbox" name="msgtrans" value="1" /> ' . $lng['translit'] : '') .

                            '</p><p><input type="submit" name="submit" value="' . $lng['write'] . '" style="width: 107px; cursor: pointer;"/> ' .

                            ($set_forum['preview'] ? '<input type="submit" value="' . $lng['preview'] . '" style="width: 107px; cursor: pointer;"/>' : '') .

                            '<input type="hidden" name="token" value="' . $token . '"/>' .

                            '</p></form></div>';

                    } else {

                        echo '<p><input type="submit" name="submit" value="' . $lng['write'] . '"/></p></form></div>';

                    }

                }

                if ($rights == 3 || $rights >= 6)

                    echo '<form action="index.php?act=massdel" method="post">';

                $i = 1;

                while (($res = mysql_fetch_assoc($req)) !== false) {

                    if ($res['close'])

                        echo '<div class="rmenu">';

                    else

                        echo $i % 2 ? '<div class="list2">' : '<div class="list1">';

                    if ($set_user['avatar']) {

                        echo '<table cellpadding="0" cellspacing="0"><tr><td>';

                        if (file_exists(('../files/users/avatar/' . $res['user_id'] . '.png')))

                            echo '<img src="../files/users/avatar/' . $res['user_id'] . '.png" width="60" height="63" alt="' . $res['from'] . '" />&#160;';

                        else

                            echo '<img src="../images/empty.png" width="40" height="45" alt="' . $res['from'] . '" />&#160;';

echo '</td><td>';

                    }

                    if ($res['rights'] > '0') {

                        $modder = 'mod_';

                    } else {

                        $modder = '';

                    }

                    if (file_exists('../images/holat/' . $res['holat'] . '.ico')) {

                        $holat = '<img src="../images/holat/' . $res['holat'] . '.ico" width="14" height="14" alt="" class="icon" />&#160;';

                    } else {

                        $holat = '';

                    }



$tartib = $i + $start;

echo '<b>'.$tartib.'. </b>';

                    if ($res['sex'])

                        echo '<img src="../theme/' . $set_user['skin'] . '/images/' . $modder . ($res['sex'] == 'm' ? 'm' : 'w') . ($res['lastdate'] > time() - 1000 ? '_on' : '_off') . '.gif" width="14" height="14" />&#160;' . $holat;

                    else

                        echo '<img src="../images/del.png" width="12" height="12" align="middle" alt=""/>&#160;';

                    // Ник юзера и ссылка на его анкету

                    if ($user_id && $user_id != $res['user_id']) {

                        echo '<a href="../users/profile.php?user=' . $res['user_id'] . '"><b>' . $res['from'] . '</b></a> ';

                    } else {

echo '<b>' . $res['from'] . '</b> ';

}

$user = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '" . $res['user_id'] . "'")); echo '<b> ['.$user['postforum'].']</b>';

                    // Метка Онлайн / Офлайн

/**                    echo(time() > $res['lastdate'] + 1000 ? '<span class="red"> [Off]</span> ' : '<span class="green"> [ON]</span> ');***/



$sek = time() - $user['lastdate'];

 if ($sek == 0) { 

echo '<font style="color: green"> [on]</font>';

 } elseif ($sek < 60) {

echo '<font style="color: green"> ['.$sek.'s]</font>';

 } elseif ($sek > 60 && $sek < 120) {

echo '<font style="color: green"> [1m]</font>';

 } elseif ($sek > 120 && $sek < 180) {

echo '<font style="color: green"> [2m]</font>';

 } elseif ($sek > 180 && $sek < 240) {

echo '<font style="color: green"> [3m]</font>';

 } elseif ($sek > 240 && $sek < 300) {

echo '<font style="color: green"> [4m]</font>';

 } elseif($sek > 300 && $sek < 360) {

echo '<font style="color: green"> [5m]</font>';

 } elseif ($sek > 360 && $sek < 420) {

echo '<font style="color: green"> [6m]</font>';

 } elseif ($sek > 420 && $sek < 480) {

echo '<font style="color: green"> [7m]</font>';

 } elseif ($sek > 480 && $sek < 540) {

echo '<font style="color: green"> [8m]</font>';

 } elseif ($sek > 540 && $sek < 600) {

echo '<font style="color: green"> [9m]</font>';

} elseif ($sek > 600 && $sek < 780) {

echo '<font style="color: green"> [12m]</font>';

} elseif ($sek > 780 && $sek < 960) {

echo '<font style="color: green"> [15m]</font>';

} elseif ($sek > 960 && $sek < 1260) {

echo '<font style="color: green"> [20m]</font>';

}else{ 

echo '<font style="color: red"> [off]</font>';

}

if ($user_id && $user_id != $res['user_id'])

echo '<a href="index.php?act=rahmat&amp;id=' . $res['id'] . '" title="Xabarga rahmat bildirish">[Rahmat]</a>';

                    // Ссылки на ответ и цитирование

                    if ($user_id && $user_id != $res['user_id']) {

echo '<a href="index.php?act=say&amp;id=' . $res['id'] . '&amp;start=' . $start . '">[javob]</a>&#160;' .

'<a href="index.php?act=say&amp;id=' . $res['id'] . '&amp;start=' . $start . '&amp;cyt">[sit]</a> ';

                    }

                    // Время поста

                    echo ' <br /><span style="color:gray;font-size:12px;">' . functions::display_time($res['time']) . '</span><br />';

                    // Статус юзера



//                    if (!empty($res['status']))

//                        echo '<div class="status"><img src="../theme/' . $set_user['skin'] . '/images/label.png" alt="" align="middle"/>&#160;' . $res['status'] . '</img></div>';



                    if ($set_user['avatar'])

                        echo '</td></tr></table>';

                    /*

                    -----------------------------------------------------------------

                    Вывод текста поста

                    -----------------------------------------------------------------

                    */

                    $text = $res['text'];

                    if ($set_forum['postcut']) {

                        // Если текст длинный, обрезаем и даем ссылку на полный вариант

                        switch ($set_forum['postcut']) {

                            case 2:

                                $cut = 1000;

                                break;



                            case 3:

                                $cut = 3000;

                                break;

                            default :

                                $cut = 500;

                        }

                    }

                    if ($set_forum['postcut'] && mb_strlen($text) > $cut) {

                        $text = mb_substr($text, 0, $cut);

                        $text = functions::checkout($text, 1, 1);

                        $text = preg_replace('#\[c\](.*?)\[/c\]#si', '<div class="quote">\1</div>', $text);

                        if ($set_user['smileys'])

                            $text = functions::smileys($text, $res['rights'] ? 1 : 0);

                        echo bbcode::notags($text) . '...<br /><a href="index.php?act=post&amp;id=' . $res['id'] . '">' . $lng_forum['read_all'] . ' &gt;&gt;</a>';

                    } else {

                        // Или, обрабатываем тэги и выводим весь текст

                        $text = functions::checkout($text, 1, 1);

                        if ($set_user['smileys'])

                            $text = functions::smileys($text, $res['rights'] ? 1 : 0);

echo $text;

//////////Rahmat moduli///////

$rah = mysql_query("SELECT * FROM `forum_rahmat` where `post` =  '".$res['id']."'");

$son = mysql_result(mysql_query("select count(*) from `forum_rahmat` where `post`= '".$res['id']."' "), 0);

if ($son) {

echo '<div style="border-bottom: 1px dashed #3CB371; border-top: 1px dashed #3CB371; padding: 4px;"><b>Rahmat aytdi ('.$son.'): </b>';

while ($rahmat = mysql_fetch_array($rah)) {

echo ' <b><span style="color:blue; font-style: italic; opacity: 0.9; margin-bottom:1px;"><a href="/users/profile.php?user='.$rahmat['user_id'].'">'.$rahmat['rahmat'].'</a></b></span></div>';

if ($son >1 || $son <$son) echo ',';

}



}

}

                    if ($res['kedit']) {

                        // Если пост редактировался, показываем кем и когда

                        // Ссылки на редактирование / удаление постов

                        $menu = array(

                            '<a href="index.php?act=editpost&amp;id=' . $res['id'] . '">' . $lng['edit'] . '</a>',

                            ($rights >= 7 && $res['close'] == 1 ? '<a href="index.php?act=editpost&amp;do=restore&amp;id=' . $res['id'] . '">' . $lng_forum['restore'] . '</a>' : ''),

                            ($res['close'] == 1 ? '' : '<a href="index.php?act=editpost&amp;do=del&amp;id=' . $res['id'] . '">' . $lng['delete'] . '</a>')

                        );

}

                    echo '</div>';

                        echo '<div class="fmenu">';

                        if ($rights == 3 || $rights >= 6)

                            echo '<input type="checkbox" name="delch[]" value="' . $res['id'] . '"/>&#160;';

                        echo functions::display_menu($menu);

                        if ($res['close']) {

                            echo '<div class="red">' . $lng_forum['who_delete_post'] . ': <b>' . $res['close_who'] . '</b></div>';

                        } elseif (!empty($res['close_who'])) {

                            echo '<div class="green">' . $lng_forum['who_restore_post'] . ': <b>' . $res['close_who'] . '</b></div>';

                        }

/*

                        if ($rights == 3 || $rights >= 6) {

                            if ($res['ip_via_proxy']) {

                                echo '<div class="gray"><b class="red"><a href="' . $set['homeurl'] . '/' . $set['admp'] . '/index.php?act=search_ip&amp;ip=' . long2ip($res['ip']) . '">' . long2ip($res['ip']) . '</a></b> - ' .

                                    '<a href="' . $set['homeurl'] . '/' . $set['admp'] . '/index.php?act=search_ip&amp;ip=' . long2ip($res['ip_via_proxy']) . '">' . long2ip($res['ip_via_proxy']) . '</a>' .

                                    ' - ' . $res['soft'] . '</div>';

                            } else {

                                echo '<div class="gray"><a href="' . $set['homeurl'] . '/' . $set['admp'] . '/index.php?act=search_ip&amp;ip=' . long2ip($res['ip']) . '">' . long2ip($res['ip']) . '</a> - ' . $res['soft'] . '</div>';

                            }



                        }

*/

                        echo '</div>';

//                    }

//                    echo '</div>';

                    ++$i;

                }

                if ($rights == 3 || $rights >= 6) {

                    echo '<div class="rmenu"><input type="submit" value=" ' . $lng['delete'] . ' "/></div>';

                    echo '</form>';

                }

                // Нижнее поле "Написать"

                if (($user_id && !$type1['edit'] && !$set_forum['upfp'] && $set['mod_forum'] != 3) || ($rights >= 7 && !$set_forum['upfp'])) {

                    echo '<form name="form2" action="index.php?act=say&amp;id=' . $id . '" method="post">';

//                    if ($set_forum['farea']) {

                    $token = mt_rand(1000, 100000);

                    $_SESSION['token'] = $token;

                    echo '<p>';

//                        if (!$is_mobile)

//                            echo bbcode::auto_bb('form2', 'msg');

                    echo '<textarea rows="' . $set_user['field_h'] . '" name="msg"></textarea><br/></p>';

//                             '<p><input type="checkbox" name="addfiles" value="1" /> ' . $lng_forum['add_file'];

//                        if ($set_user['translit'])

//                            echo '<br /><input type="checkbox" name="msgtrans" value="1" /> ' . $lng['translit'];

                    echo '<input type="submit" name="submit" value="' . $lng['write'] . '" style="width: 107px; cursor: pointer;"/><span style="float: right; cursor: pointer; height: 32px; width: 32px;"><a href="?id='.$id.'"><img src="/images/refresh.png"></img></a></span>' .

//                            ($set_forum['preview'] ? '<input type="submit" value="' . $lng['preview'] . '" style="width: 107px; cursor: pointer;"/>' : '') .

                        '<input type="hidden" name="token" value="' . $token . '"/>' .

                        '</form></div>';

//                    } else {

//                        echo '<p><input type="submit" name="submit" value="' . $lng['write'] . '"/></p></form></div>';

//                    }

                }

 echo '<div class="phdr"><a name="down" id="down"></a><a href="#up">' .

'<img src="../theme/' . $set_user['skin'] . '/images/up.png" alt="' . $lng['up'] . '" width="20" height="10" border="0"/></a>' .

                    '&#160;&#160;' . $lng['total'] . ': ' . $colmes . '</div>';

                if ($colmes > $kmess) {

                    echo '<div class="topmenu">' . functions::display_pagination('index.php?id=' . $id . '&amp;', $start, $colmes, $kmess) . '</div>' .

                        '<p><form action="index.php?id=' . $id . '" method="post">' .

                        '<input type="text" name="page" size="2"/>' .

                        '<input type="submit" value="' . $lng['to_page'] . ' &gt;&gt;"/>' .

                        '</form></p>';

                } else {

                    echo '<br />';

                }

               /*

                

                -----------------------------------------------------------------

                Ссылки на модераторские функции

                -----------------------------------------------------------------

                */

                if ($curators) {

                    $array = array();

                    foreach ($curators as $key => $value)

                        $array[] = '<a href="../users/profile.php?user=' . $key . '">' . $value . '</a>';

                    echo '<p><div class="func">' . $lng_forum['curators'] . ': ' . implode(', ', $array) . '</div></p>';

                }

                if ($rights == 3 || $rights >= 6) {

                    echo '<p><div class="func">';

                    if ($rights >= 7)

                        echo '<a href="index.php?act=curators&amp;id=' . $id . '&amp;start=' . $start . '">' . $lng_forum['curators_of_the_topic'] . '</a><br />';

                    echo isset($topic_vote) && $topic_vote > 0

      ? '<a href="index.php?act=editvote&amp;id=' . $id . '">' . $lng_forum['edit_vote'] . '</a><br/><a href="index.php?act=delvote&amp;id=' . $id . '">' . $lng_forum['delete_vote'] . '</a><br/>'

                        : '<a href="index.php?act=addvote&amp;id=' . $id . '">' . $lng_forum['add_vote'] . '</a><br/>';

                    echo '<a href="index.php?act=ren&amp;id=' . $id . '">' . $lng_forum['topic_rename'] . '</a><br/>';

                    // Закрыть - открыть тему

                    if ($type1['edit'] == 1)

                        echo '<a href="index.php?act=close&amp;id=' . $id . '">' . $lng_forum['topic_open'] . '</a><br/>';

                    else

                        echo '<a href="index.php?act=close&amp;id=' . $id . '&amp;closed">' . $lng_forum['topic_close'] . '</a><br/>';

                    // Удалить - восстановить тему

                    if ($type1['close'] == 1)

                        echo '<a href="index.php?act=restore&amp;id=' . $id . '">' . $lng_forum['topic_restore'] . '</a><br/>';

                    echo '<a href="index.php?act=deltema&amp;id=' . $id . '">' . $lng_forum['topic_delete'] . '</a><br/>';

                    if ($type1['vip'] == 1)

                        echo '<a href="index.php?act=vip&amp;id=' . $id . '">' . $lng_forum['topic_unfix'] . '</a>';

                    else

                        echo '<a href="index.php?act=vip&amp;id=' . $id . '&amp;vip">' . $lng_forum['topic_fix'] . '</a>';

                    echo '<br/><a href="index.php?act=per&amp;id=' . $id . '">' . $lng_forum['topic_move'] . '</a></div></p>';

                }

                if ($wholink)

                    echo '<div>' . $wholink . '</div>';

echo '<a href="index.php?act=tema&amp;id=' . $id . '">' . $lng_forum['download_topic'] . '</a>';

                break;



            default:

                /*

                -----------------------------------------------------------------

                Если неверные данные, показываем ошибку

                -----------------------------------------------------------------

                */

                echo functions::display_error($lng['error_wrong_data']);

                break;

        }

    } else {

        /*

        -----------------------------------------------------------------

        Список Категорий форума

        -----------------------------------------------------------------

        */

        $count = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_forum_files`" . ($rights >= 7 ? '' : " WHERE `del` != '1'")), 0);

        echo '<div class="menu">' . counters::forum_new(1) . '</div>';

        $reqq = mysql_query("SELECT `id`, `text`, `soft` FROM `forum` WHERE `type`='f' ORDER BY `realid`");

        $i = 0;

        while (($ress = mysql_fetch_array($reqq)) !== false) {

            echo '<div class="phdr" style="text-align: center;"><b>' . $ress['text'] . '</b></div>';

            if (!empty($ress['soft']))

                echo '<div class="sub"><span class="gray">' . $ress['soft'] . '</span></div>';



            $req = mysql_query("SELECT `id`, `text`, `soft` FROM `forum` WHERE `type`='r' AND `refid`='" . $ress['id'] . "' ORDER BY `realid`");

            $total = mysql_num_rows($req);

            if ($total) {

                $i = 0;

                while (($res = mysql_fetch_assoc($req)) !== false) {

                    echo $i % 2 ? '<div class="list2">' : '<div class="list1">';

                    $coltem = mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `type` = 't' AND `refid` = '" . $res['id'] . "'"), 0);

                    echo '&raquo;&nbsp;<a style="vertical-align:middle;" href="?id=' . $res['id'] . '">' . $res['text'] . '</a>';

                    if ($coltem)

                        echo '(' . $coltem . ')';

                    if (!empty($res['soft']))

                        echo '<div class="sub"><span class="gray">' . $res['soft'] . '</span></div>';

                    echo '</div>';

                    ++$i;

                }

                

                unset($_SESSION['fsort_id']);

                unset($_SESSION['fsort_users']);

            }

        }

    }

 $online_u = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `lastdate` > " . (time() - 1000) . " AND `place` LIKE 'forum%'"), 0);

                $online_g = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_sessions` WHERE `lastdate` > " . (time() - 1000) . " AND `place` LIKE 'forum%'"), 0);

      

 echo '<div class="phdr">' . ($user_id ? '<a href="index.php?act=who">' . $lng_forum['who_in_forum'] . '</a>' : $lng_forum['who_in_forum']) . '&#160;(' . $online_u . '&#160;/&#160;' . $online_g . ')</div>';         

    // Навигация внизу страницы

   

    echo '<p>' . ($id ? '<a href="index.php">' . $lng['to_forum'] . '</a><br />' : '');

    if (!$id) {

        echo '<a href="../pages/faq.php?act=forum">' . $lng_forum['forum_rules'] . '</a>';

    }

    echo '</p>';

    if (!$user_id) {

        if ((empty($_SESSION['uppost'])) || ($_SESSION['uppost'] == 0)) {

            echo '<a href="index.php?id=' . $id . '&amp;page=' . $page . '&amp;newup">' . $lng_forum['new_on_top'] . '</a>';

        } else {

            echo '<a href="index.php?id=' . $id . '&amp;page=' . $page . '&amp;newdown">' . $lng_forum['new_on_bottom'] . '</a>';

        }

    }

}

require_once('../incfiles/end.php');

php?>


Mana usha forum iloji bolsa korib bering oshna