Вход Регистрация
Файл: CMS/core/modules/forum_topic.php
Строк: 488
<?php

if (!defined('CMS')) { die('Access Denied!'); }

if (!empty(
$id) && !empty($mod) && $mod == 'topics') { // Переадресация на последнюю страницу

    
$count = (int) $db->selectCell("SELECT `topics_posts` FROM ?_forums_topics WHERE `topics_id` = ? LIMIT 1;"$id);

    
$onpage = !empty($config['post_num']) ? num($config['post_num']) : 10;

    if (!empty(
$count)) {

        
$end ceil$count $onpage );

        if (
$end 1$end 1;

        
gen_red('topic'$id'page=' $end '&amp;' RND '#down');
    }
    else {

        
$inSes->addMessage('Ошибка! Выбранная вами тема не существует, возможно она была удалена!');
        
gen_red('index'''RND);
    }
}
elseif (!empty(
$id) && !empty($mod) && $mod == 'viewpost') { // Переход к сообщению

    
$pid = !empty($_GET['pid']) ? (int) $_GET['pid'] : 0;

    
$count = (int) $db->selectCell("SELECT COUNT(*) FROM ?_forums_posts
                                    WHERE `posts_id` <= ? AND `posts_topics_id` = ?
                                    ORDER BY `posts_time` ASC LIMIT 1;"
,$pid$id);

    
$onpage = !empty($config['post_num']) ? num($config['post_num']) : 10;

    if (!empty(
$count)) {

        
$end ceil$count $onpage );

        if (
$end 1$end 1;

        
gen_red('topic'$id'page=' $end '&amp;' RND '#' $pid);
    }
    else {

        
$inSes->addMessage('Ошибка! Выбранная вами тема не существует, возможно она была удалена!');
        
gen_red('index'''RND);
   }

}
else if (!empty(
$id) && !empty($mod) && $mod == 'closed') { // Закрытие темы

    
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

        if (
$is_logged) {

            if (
$uset['users_point'] >= $config['forum_edit_point']) {

                
$topics $db->selectRow("SELECT * FROM ?_forums_topics WHERE `topics_id` = ? LIMIT 1;"$id);

                if (!empty(
$topics)) {

                    if (
$topics['topics_author'] == $log) {

                        if (empty(
$topics['topics_closed'])) {

                            
$db->query("UPDATE ?_forums_topics SET `topics_closed` = ? WHERE `topics_id` = ?;"1$id);

                            
$inSes->addMessage('Тема успешно закрыта!''ok');
                        }
                        else 
$inSes->addMessage('Ошибка! Данная тема уже закрыта!''valid');
                    }
                    else 
$inSes->addMessage('Ошибка! Вы не автор данной темы!');
                }
                else 
$inSes->addMessage('Ошибка! Выбранная вами тема не существует, возможно она была удалена!');
            }
            else 
$inSes->addMessage('Ошибка! У вас недостаточно актива для закрытия тем!');
        }
        else 
$inSes->addMessage('Ошибка авторизации. Неправильный логин или пароль!');
    }
    else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');

    
gen_red('topic'$id'page=' $page '&' RND);

}
else if (!empty(
$id) && !empty($mod) && $mod == 'reply') { // Ответ на сообщение

    
$pid = !empty($_GET['pid']) ? num($_GET['pid']) : 0;
    
$num = !empty($_GET['num']) ? num($_GET['num']) : 0;

    
show_header('Ответ на сообщение');

    if (
$is_logged) {

        
$post $db->selectRow("SELECT `p`.*, `t`.`topics_closed`
                                FROM ?_forums_posts `p` LEFT JOIN ?_forums_topics `t`
                                ON `p`.`posts_topics_id` = `t`.`topics_id`
                                WHERE `p`.`posts_id` = ? LIMIT 1;"
$pid);

        if (!empty(
$post)) {

            if (empty(
$post['topics_closed'])) {

                echo 
'<div class="b">' icon('edit.png''icons');
                echo 
'<b>' users_anketa($post['posts_user']) . '</b> ';
                echo 
user_title($post['posts_user']) . ' ' user_online($post['posts_user']);
                echo 
' <small>(' get_date($post['posts_time']) . ')</small><br />';
                echo 
'Сообщение: ' nl2br(bb_code($post['posts_text'])) . '</div>';

                if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
                else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );

               
$form = new cmsForm(gen_uri('add'$post['posts_topics_id'], 'rnd=' $_SESSION['token'] . '&amp;' RND), 'post'' name="form" id="form"');
               
$_POST['text'] = !empty($_POST['text']) ? $_POST['text'] : $num '. [b]' nickname($post['posts_user']) . '[/b], ';
               
$form->addCode(blink('*') . ' Сообщение: ');
               
$form->addCode('<small>[<a href="' gen_uri('reply'$id'pid=' $pid '&amp;smiles=1&amp;num=' $num) . '">Смайлы</a>] ');
               
$form->addCode('[<a href="' gen_uri('reply'$id'pid=' $pid '&amp;code=1&amp;num=' $num) . '">ББ-коды</a>]</small>');
               
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
               
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
               
$form->addTextarea('''text'$_POST['text'], ' id="msg" style="width:98%;"');
               echo 
$form->submit(array('Ответить','Отмена'), array('submit','cancel'));
               unset(
$form);

            }
            else {

                
show_error('Данная тема закрыта для обсуждения!');
            }
        }
        else {

            
show_error('Ошибка! Выбранное вами сообщение для ответа не существует!');
        }
    }
    else {

        
show_login('Вы не авторизованы, чтобы отвечать на сообщения, необходимо');
    }

    echo 
'<div class="b">' icon('return.png');
    echo 
' <a href="' gen_uri('topic'$id'page=' $page '&amp;' RND) . '">Вернуться</a><br /></div>';

}
else if (!empty(
$id) && !empty($mod) && $mod == 'quote') { // Цитирование сообщения

    
$pid = !empty($_GET['pid']) ? intval($_GET['pid']) : 0;

    
show_header('Цитирование');

    if (
$is_logged) {

        
$post $db->selectRow("SELECT `p`.*, `t`.`topics_closed`
                                FROM ?_forums_posts `p` LEFT JOIN ?_forums_topics `t`
                                ON `p`.`posts_topics_id` = `t`.`topics_id`
                                WHERE `p`.`posts_id` = ? LIMIT 1;"
$pid);

        if (!empty(
$post)) {

            if (empty(
$post['topics_closed'])) {

                
$post['posts_text'] = nosmiles($post['posts_text']);
                
$post['posts_text'] = preg_replace('|[q](.*?)[/q](<br />)?|'''$post['posts_text']);
                
$post['posts_text'] = str_replace('<br />'"rn"$post['posts_text']);
               
$_POST['text'] = !empty($_POST['text']) ? $_POST['text'] : '[q][b]' nickname($post['posts_user']) . '[/b] (' get_date($post['posts_time'], 'j F Y / H:i') . ')' "rn" $post['posts_text'] . '[/q]' "rn";

                if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
                else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );

               
$form = new cmsForm(gen_uri('add'$post['posts_topics_id'], 'page=' $page '&amp;rnd=' $_SESSION['token'] . '&amp;' RND), 'post'' name="form" id="form"');
               
$form->addCode(blink('*') . ' Сообщение: ');
               
$form->addCode('<small>[<a href="' gen_uri('quote'$id'pid=' $pid '&amp;smiles=1') . '">Смайлы</a>] ');
               
$form->addCode('[<a href="' gen_uri('quote'$id'pid=' $pid '&amp;code=1') . '">ББ-коды</a>]</small>');
               
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
               
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
               
$form->addTextarea('''text'$_POST['text'], ' id="msg" style="width:98%;"');
               echo 
$form->submit(array('Цитировать','Отмена'), array('submit','cancel'));
               unset(
$form);

            }
            else {

                
show_error('Данная тема закрыта для обсуждения!');
            }
        }
        else {

            
show_error('Ошибка! Выбранное вами сообщение для цитирования не существует!');
        }
    }
    else {

        
show_login('Вы не авторизованы, чтобы цитировать сообщения, необходимо');
    }

    echo 
'<div class="b">' icon('return.png');
    echo 
' <a href="' gen_uri('topic'$id'page=' $page '&amp;' RND) . '">Вернуться</a><br /></div>';

}
else if (!empty(
$id) && !empty($mod) && $mod == 'edittopic') { // Изменение темы

    
if ($is_logged) {

      if (
$uset['users_point'] >= $config['forum_edit_point']) {

        
$topics $db->selectRow("SELECT * FROM ?_forums_topics WHERE `topics_id` = ? LIMIT 1;"$id);

        if (!empty(
$topics)) {

          if (
$topics['topics_author'] == $log) {

            if (empty(
$topics['topics_closed'])) {

              if (!empty(
$_POST['cancel'])) {

                
gen_red('topic'$idRND);
              }

              if (!empty(
$_POST['submit'])) {

                
$title = !empty($_POST['title']) ? check($_POST['title']) : '';
                
$text  = !empty($_POST['text'])  ? check($_POST['text'])  : '';

                if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                  
$minposts $db->selectCell("SELECT MIN(`posts_id`) FROM ?_forums_posts WHERE `posts_topics_id` = ?;"$id);

                  if (!empty(
$minposts)) {

                    if (
cms_strlen($title) >= && cms_strlen($title) <= 100) {

                      if (
cms_strlen($text) >= && cms_strlen($text) <= $config['forum_max_text']) {

                        
$text antimat($text);
                        
$text smiles($text);

                        
$db->query("UPDATE ?_forums_topics SET `topics_title` = ? WHERE topics_id = ?;"$title$id);

                        
$db->query("UPDATE ?_forums_posts SET `posts_user` = ?, `posts_text` = ?, `posts_ip` = ?, `posts_brow` = ?, `posts_edit` = ?, `posts_edit_time` = ? WHERE `posts_id` = ?"$log$text$ip$brow$logSITE_TIME$minposts);

                        
$inSes->addMessage('Тема успешно изменена!''ok');
                      }
                      else 
$inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
                    }
                    else 
$inSes->addMessage('Ошибка! Слишком длинный или короткий заголовок темы!');
                  }
                  else 
$inSes->addMessage('Ошибка! Первого сообщения в теме не существует!');
                }
                else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');

                
gen_red('topic'$idRND);
              }

              
show_header('Изменение темы');

              
$post $db->selectRow("SELECT * FROM ?_forums_posts WHERE `posts_topics_id` = ? ORDER BY posts_id ASC LIMIT 1;"$id);

              if (!empty(
$post)) {

                
$post['posts_text'] = nosmiles($post['posts_text']);
                
$post['posts_text'] = str_replace(array('<br>','<br/>','<br />'), "n"$post['posts_text']);

                echo 
'<div class="b">' icon('edit.png''icons');
                echo 
'<b>' nickname($post['posts_user']) . '</b> <small>(' get_date($post['posts_time']) . ')</small><br /></div>';

                if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
                else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );

                
$form = new cmsForm(gen_uri('edittopic'$id'rnd=' $_SESSION['token'] . '&amp;' RND), 'post'' name="form" id="form"');
                
$form->addText('Заголовок:''title'$topics['topics_title'], ' maxlength="50"');
                
$form->addCode(blink('*') . ' Сообщение: ');
                
$form->addCode('<small>[<a href="' gen_uri('edittopic'$id'smiles=1') . '">Смайлы</a>] ');
                
$form->addCode('[<a href="' gen_uri('edittopic'$id'code=1') . '">ББ-коды</a>]</small>');
                
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
                
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
                
$form->addTextarea('''text'$post['posts_text'], ' id="msg" style="width:98%;"');
                echo 
$form->submit(array('Редактировать','Отмена'), array('submit','cancel'));
                unset(
$form);

              }
              else {

                
show_error('Ошибка! Первого сообщения в теме не существует!');
                echo 
'<div class="b">' icon('return.png');
                echo 
'<a href="' gen_uri('topic'$idRND) . '">Вернуться</a><br /></div>';
              }
            }
            else {

              
$inSes->addMessage('Ошибка! Изменение невозможно, данная тема закрыта!');
              
gen_red('topic'$idRND);
            }
          }
          else {

            
$inSes->addMessage('Ошибка! Изменение невозможно, вы не автор данной темы!');
            
gen_red('topic'$idRND);
          }
        }
        else {

          
$inSes->addMessage('Ошибка! Выбранная вами тема не существует, возможно она была удалена!');
          
gen_red('index'''RND);
        }
      }
      else {

        
$inSes->addMessage('Ошибка! У вас недостаточно актива для изменения темы!');
        
gen_red('index'''RND);
      }
    }
    else {

        
show_header('Изменение темы');
        
show_login('Вы не авторизованы, чтобы редактировать сообщения, необходимо');
        echo 
'<div class="b">' icon('return.png') . ' <a href="' gen_uri('topic'$idRND) . '">Вернуться</a><br /></div>';
    }

}
else if (!empty(
$id) && !empty($mod) && $mod == 'del') { // Удаление сообщений

    
$del = !empty($_POST['del']) ? intar($_POST['del']) : 0;

    if (
$is_logged) {

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            if (
$del 0) {

                
$topics $db->selectRow("SELECT * FROM ?_forums_topics WHERE `topics_id` = ? LIMIT 1;"$id);

                
$minposts $db->selectCell("SELECT MIN(`posts_id`) FROM ?_forums_posts WHERE `posts_topics_id` = ?;"$id);

                if (!empty(
$topics['topics_mod']) || is_admin(array(101))) {

                    
$topics_mod explode(','$topics['topics_mod']);

                    if (
in_array($log$topics_mod) || is_admin(array(101))) {

                        if (!
in_array($minposts$del)) {

                            
$del is_array($del) ? $del : array($del);

                            
$del implode(','$del);

                            
$delposts $db->query("DELETE FROM ?_forums_posts WHERE `posts_id` IN(" $del ") AND `posts_topics_id` = ?"$id);

                            
$db->query("UPDATE ?_forums_topics SET `topics_posts` = (`topics_posts` - ?) WHERE `topics_id` = ?"$delposts$id);

                            
$db->query("UPDATE ?_forums SET `forums_posts` = (`forums_posts` - ?) WHERE `forums_id` = ?"$delposts$topics['topics_forums_id']);

                            
$inSes->addMessage('Выбранные сообщения успешно удалены!''ok');
                        }
                        else 
$inSes->addMessage('Ошибка! Первое сообщение в теме удалять запрещено!');
                    }
                    else 
$inSes->addMessage('Ошибка! Удалять сообщения могут только кураторы темы!');
                }
                else 
$inSes->addMessage('Ошибка! В данной теме отсутствуют кураторы!');
            }
            else 
$inSes->addMessage('Ошибка! Отстутствуют выбранные сообщения для удаления!');
        }
        else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
    }
    else 
$inSes->addMessage('Ошибка авторизации. Неправильный логин или пароль!');

    
gen_red('topic'$id'page=' $page '&amp;' RND);

}
else if (!empty(
$id) && !empty($mod) && $mod == 'edit') {

    
$pid = !empty($_GET['pid']) ? num($_GET['pid']) : 0;

    if (
$is_logged) {

        
$post $db->selectRow("SELECT * FROM ?_forums_posts WHERE `posts_id` = ? LIMIT 1;"$pid);

        if (!empty(
$post)) {

            if (
$post['posts_user'] == $log || is_admin()) {

                if (!empty(
$_POST['cancel'])) {

                    
gen_red('topic'$id'page=' $page '&amp;' RND);
                }

                if (!empty(
$_POST['submit'])) {

                    
$text = !empty($_POST['text']) ? check($_POST['text']) : '';

                    if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                        if (
cms_strlen($text) >= && cms_strlen($text) <= $config['forum_max_text'] || $is_admin) {

                            if (
$post['posts_time'] + 600 SITE_TIME || $is_admin) {

                                
$text antimat($text);
                                
$text smiles($text);

                                if (
is_admin(array(101))) {

                                    
$db->query("UPDATE ?_forums_posts SET `posts_text` = ? WHERE `posts_id` = ?"$text$pid);
                                }
                                else {

                                    
$db->query("UPDATE ?_forums_posts SET `posts_text` = ?, `posts_edit` = ?, `posts_edit_time` = ?
                                                WHERE `posts_id` = ?"
$text$logSITE_TIME$pid);
                                }

                                
$inSes->addMessage('Сообщение успешно отредактировано!''ok');

                                
gen_red('topic'$id'page=' $page '&amp;' RND);
                            }
                            else 
$inSes->addMessage('Ошибка! Редактирование невозможно, прошло более 10 минут!!');
                        }
                        else 
$inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
                    }
                    else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
                }

                
show_header('Редактирование сообщения');

                if (
$post['posts_time'] + 600 SITE_TIME || $is_admin) {

                    
$post['posts_text'] = nosmiles($post['posts_text']);
                    
$post['posts_text'] = str_replace('<br />'"n"$post['posts_text']);
                    
$_POST['text']      = !empty($_POST['text']) ? (string) $_POST['text'] : $post['posts_text'];

                    echo 
'<div class="b">' icon('edit.png''icons');
                    echo 
'<b>' users_anketa($post['posts_user']) . '</b> <small>(' get_date($post['posts_time']) . ')</small><br /></div>';

                    if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
                    else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );

                    
$form = new cmsForm(gen_uri('edit'$post['posts_topics_id'], 'pid=' $pid '&amp;page=' $page '&amp;rnd=' $_SESSION['token'] . '&amp;' RND), 'post'' name="form" id="post"');
                    
$form->addCode(blink('*') . ' Сообщение: ');
                    
$form->addCode('<small>[<a href="' gen_uri('edit'$post['posts_topics_id'], 'pid=' $pid '&amp;page=' $page '&amp;smiles=1&amp;page=' $page) . '">Смайлы</a>] ');
                    
$form->addCode('[<a href="' gen_uri('edit'$post['posts_topics_id'], 'pid=' $pid '&amp;page=' $page '&amp;code=1&amp;page=' $page) . '">ББ-коды</a>]</small>');
                    
$form->addCode(' [<a href="#post" onclick="document.post.msg.rows += 5;">+</a>] [<a href="#post" onclick="document.post.msg.rows -= 5;">-</a>]');
                    
$form->addTextarea('''text'$_POST['text'], ' id="msg" style="width:98%;"');
                    echo 
$form->submit(array('Редактировать','Отмена'), array('submit','cancel'));
                    unset(
$form);
                }
                else {

                    
show_error('Ошибка! Редактирование невозможно, прошло более 10 минут!!');
                    echo 
'<div class="b">' icon('return.png');
                    echo 
' <a href="' gen_uri('topic'$id'page=' $page '&amp;' RND) . '">Вернуться</a><br /></div>';
                }
            }
            else {

                
$inSes->addMessage('Ошибка! Сообщение удалено или вы не автор этого сообщения!');
                
gen_red('index'''RND);
            }
        }
        else {

            
$inSes->addMessage('Ошибка! Сообщение удалено или вы не автор этого сообщения!');
            
gen_red('index'''RND);
        }
    }
    else {

        
$inSes->addMessage('Ошибка! Вы не авторизованы!');
        
gen_red('index'''RND);
    }

}
else if (!empty(
$id) && !empty($mod) && $mod == 'add') { // Добавление сообщения

    
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';

    if (
$is_logged) {

        if (!empty(
$_POST['cancel'])) {

            
gen_red('topic'$id'page=' $page '&' RND);
        }

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            if (
cms_strlen($msg) >= && cms_strlen($msg) <= $config['forum_max_text'] || is_admin()) {

                
$topics $db->selectRow("SELECT `t`.*, `f`.`forums_parent`
                                          FROM ?_forums_topics `t`
                                          LEFT JOIN ?_forums `f`
                                          ON `t`.`topics_forums_id` = `f`.`forums_id`
                                          WHERE `t`.`topics_id` = ? LIMIT 1;"
$id);

                if (!empty(
$topics)) {

                    if (empty(
$topics['topics_closed'])) {

                        if (
is_quarantine($log)) {

                            if (
is_flood($log) || is_admin()) {

                                
$msg antimat($msg);
                                
$msg smiles($msg);

                                
$post $db->selectRow("SELECT * FROM ?_forums_posts WHERE `posts_topics_id` = ? ORDER BY `posts_id` DESC LIMIT 1;"$id);

                                if (
$msg != $post['posts_text']) {

                                    if (
$log == $post['posts_user'] && $post['posts_time'] + 600 SITE_TIME && (cms_strlen($msg) + cms_strlen($post['posts_text']) <= $config['forum_max_text'])) {

                                        
$newpost $post['posts_text'] . "nn[i][small]Добавлено через " maketime(SITE_TIME $post['posts_time']) . " сек.[/small][/i]n" $msg;

                                        
$db->query("UPDATE ?_forums_posts SET `posts_text` = ? WHERE `posts_id` = ? LIMIT 1;"$newpost$post['posts_id']);
                                    }
                                    else { 
// Новое

                                        
set_lider_forum($log);

                                        
$db->query("UPDATE ?_users SET `users_allforum` = (`users_allforum` + 1), `users_point` = (`users_point` + ?), `users_money` = (`users_money` + ?) WHERE `users_login` = ? LIMIT 1;"$config['forum_add_score'], $config['forum_add_money'], $log);

                                        
$db->query("INSERT INTO ?_forums_posts (`posts_topics_id`, `posts_forums_id`, `posts_user`, `posts_text`, `posts_time`, `posts_ip`, `posts_brow`) VALUES (?, ?, ?, ?, ?, ?, ?);"$id$topics['topics_forums_id'], $log$msgSITE_TIME$ip$brow);

                                        
$db->query("UPDATE ?_forums_topics SET `topics_posts` = (`topics_posts` + 1), `topics_last_user` = ?, `topics_last_time` = ? WHERE `topics_id` = ?"$logSITE_TIME$id);

                                        
$db->query("UPDATE ?_forums SET `forums_posts` = (`forums_posts` + 1), `forums_last_id` = ?, `forums_last_themes` = ?, `forums_last_user` = ?, `forums_last_time` = ? WHERE `forums_id` = ?;"$id$topics['topics_title'], $logSITE_TIME$topics['topics_forums_id']);

                                        
// Обновление родительского форума
                                        
if ($topics['forums_parent'] > 0) {

                                            
$db->query("UPDATE ?_forums SET `forums_last_id` = ?, `forums_last_themes` = ?, `forums_last_user` = ?, `forums_last_time` = ? WHERE `forums_id` = ?;"$id$topics['topics_title'], $logSITE_TIME$topics['forums_parent']);
                                        }

                                        if (!empty(
$topics['topics_track'])) {

                                            
$sex   = ($uset['users_gender'] == 1) ? ' добавил' ' добавила';
                                            
$text  'В вашей теме [b]' $topics['topics_title'] . '[/b], ';
                                            
$text .= $log $sex " новое сообщение: n" $msg;
                                            
$text .= "[forum=" $topics['topics_id'] . "]Перейти в тему &gt;&gt;[/forum]";

                                            
$db->query("INSERT INTO ?_users_lenta SET `lenta_subscriber` = ?, `lenta_publisher` = ?, `lenta_time` = ?, `lenta_message` = ?"$topics['topics_author'], $logSITE_TIME$text);

                                        }
                                    }

                                    
$inSes->addMessage('Сообщение успешно добавлено!''ok');

                                    
gen_red('topics'$idRND);
                                }
                                else 
$inSes->addMessage('Ошибка! Ваше сообщение повторяет предыдущий пост!');
                            }
                            else 
$inSes->addMessage('Антифлуд! Разрешается отправлять сообщения раз в ' flood_period() . ' секунд!');
                        }
                        else 
$inSes->addMessage('Карантин! Вы не можете писать в течении ' round($config['karantin'] / 3600) . ' часов!');
                    }
                    else 
$inSes->addMessage('Ошибка! Запрещено писать в закрытую тему!');
                }
                else 
$inSes->addMessage('Ошибка! Выбранная вами тема не существует, возможно она была удалена!');
            }
            else 
$inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
        }
        else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
    }
    else 
$inSes->addMessage('Ошибка авторизации. Неправильный логин или пароль!');

    
gen_red('topic'$idRND);

}
else {

    
$parse  parse_url($_SERVER['REQUEST_URI']);
    
$topics = array();
    
$topics $db->selectRow("SELECT `t`.*, `f`.`forums_id`, `f`.`forums_title`, `f`.`forums_parent`,
                             (SELECT COUNT(1) FROM ?_users_bookmarks WHERE `book_path` = ?) AS `bookmarks`
                              FROM ?_forums_topics `t`
                              LEFT JOIN ?_forums `f`
                              ON `t`.`topics_forums_id` = `f`.`forums_id`
                              WHERE `t`.`topics_id` = ? LIMIT 1;"
$parse['path'], $id);

    if (!empty(
$topics)) {

        if (!empty(
$topics['topics_admins']) && $topics['topics_admins'] == 1) {

            if (!
is_admin()) {

                
$inSes->addMessage('Данная тема только для модеров сайта!');
                
gen_red('index'''RND);
            }
        }
        else if (!empty(
$topics['topics_admins']) && $topics['topics_admins'] == 2) {

            if (!
is_admin(array(101,102))) {

                
$inSes->addMessage('Данная тема только для администрации сайта!');
                
gen_red('index'''RND);
            }
        }

        
show_header($topics['topics_title']);

        echo 
'<div class="b"><a href="#down">' icon('down.png') . '</a> ';

        echo 
'<a href="' gen_uri('index'''RND) . '">Форум</a> | ';

        if (!empty(
$topics['forums_parent'])) {

            
$forums $db->selectRow("SELECT `forums_id`, `forums_title` FROM ?_forums WHERE `forums_id` = ? LIMIT 1;"$topics['forums_parent']);

            echo 
'<a href="' gen_uri('forums'$forums['forums_id'], RND) . '">' $forums['forums_title'] . '</a> | ';
        }

        echo 
'<a href="' gen_uri('forum'$topics['forums_id'], RND) . '">' $topics['forums_title'] . '</a> | ';
        echo 
'<b>' $topics['topics_title'] . '</b>';

        echo 
'<div class="imgrss">';
        echo 
'<a href="' gen_uri('print'$idRND) . '">' icon('printer.png') . '</a> &nbsp; ';
        echo 
' <a href="' $id '.rss.xml">' icon('rss.png') . '</a>&nbsp;</div>';
        echo 
'</div>';

        if (
$topics['topics_author'] == $log && $topics['topics_closed'] != && $uset['users_point'] >= $config['forum_edit_point'] && !$is_admin) {

            echo 
'<div class="b">' icon('folder.png''icons') . '<b>' $topics['topics_title'] . '</b>' ;
            echo 
' (<a href="' gen_uri('closed'$id'page=' $page '&amp;rnd=' $_SESSION['token'] . '&amp;' RND) . '">Закрыть</a> | ';
            echo 
' <a href="' gen_uri('edittopic'$idRND) . '">Изменить</a>)</div>';
        }

        if (!empty(
$topics['topics_mod'])) {

            
$topics_mod explode(','$topics['topics_mod']);
            
$kur = array();
            foreach(
$topics_mod as $mkey => $mval) {

                
$kur[] = users_anketa($mval);
            }
            echo 
'<div class="b">Кураторы темы: ' implode(', '$kur) . '...</div>';
            
$moder = (in_array($log$topics_mod)) ? 0;
        }
        else 
$moder 0;

        if (
$is_admin) {

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

            if (empty(
$topics['topics_closed'])) {

                echo 
' - <a href="' gen_admin('?m=act_topic&amp;do=closed&amp;tid=' $id '&amp;rnd=' $_SESSION['token']) . '">Закрыть</a> | ';
            }
            else {

                echo 
'<a href="' gen_admin('?m=act_topic&amp;do=open&amp;tid=' $id '&amp;rnd=' $_SESSION['token']) . '">Открыть</a> | ';
            }

            if (empty(
$topics['topics_locked'])) {

                echo 
'<a href="' gen_admin('?m=act_topic&amp;do=locked&amp;tid=' $id '&amp;rnd=' $_SESSION['token']) . '">Закрепить</a> | ';
            }
            else {

                echo 
'<a href="' gen_admin('?m=act_topic&amp;do=unlocked&amp;tid=' $id '&amp;rnd=' $_SESSION['token']) . '">Открепить</a> | ';
            }

            echo 
'<a href="' gen_admin('?m=edit_topic&amp;tid=' $id '&amp;page=' $page '&amp;' RND) . '">Изменить</a> | ';
            echo 
'<a href="' gen_admin('?m=move_topic&amp;tid=' $id '&amp;' RND) . '">Переместить</a> | ';
            echo 
'<a href="' gen_admin('?m=forums&amp;fid=' $topics['forums_id'] . '&amp;delt=' $id '&amp;rnd=' $_SESSION['token'] . '&amp;' RND) . '" onclick="return confirm('Вы действительно хотите удалить данную тему?')">Удалить</a> | ';
            echo 
'<a href="' gen_admin('?m=topic&amp;tid=' $id '&amp;page=' $page '&amp;' RND) . '">Управление</a><br />';
            
$moder 1;
            echo 
'</div>';
        }

        
$onpage = !empty($config['post_num']) ? num($config['post_num']) : 10;

        if (
$page 1$from = ($page 1) * $onpage; else $from 0;

        
$rows $db->selectPage$total"SELECT `p`.*, `v`.`visit_nowtime`, `u`.`users_gender`
                                          FROM ?_forums_posts `p`
                                          LEFT JOIN ?_users_visit `v`
                                          ON `p`.`posts_user` = `v`.`visit_user`
                                          LEFT JOIN ?_users `u`
                                          ON `p`.`posts_user` = `u`.`users_login`
                                          WHERE `p`.`posts_topics_id` = ?
                                          ORDER BY `p`.`posts_time` ASC
                                          LIMIT ?d, ?d"
$id$from$onpage );

        if ( !empty(
$rows) && $total ) {

            if (
$moder == 1) {

                echo 
'<form action="' gen_uri('del'$id'page=' $page '&amp;rnd=' $_SESSION['token'] . '&amp;' RND) . '" method="post" name="posts">';
            }

            
$i 0;
            foreach( 
$rows as $row ) {
                ++
$i;

                echo 
'<div class="b" id="post-' $row['posts_id'] . '">';

                if (!empty(
$log) && $log != $row['posts_user']) {

                    echo 
'<div class="right">';
                    echo 
'<a href="' gen_uri('reply'$id'pid=' $row['posts_id'] . '&amp;num=' $i '&amp;page=' $page '&amp;' RND) . '">Отв</a> | ';
                    echo 
'<a href="' gen_uri('quote'$id'pid=' $row['posts_id'] . '&amp;page=' $page '&amp;' RND) . '">Цит</a></div>';
                }

                if (
$log == $row['posts_user'] && $row['posts_time'] + 600 SITE_TIME || $is_admin) {

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

                    echo 
'<a href="' gen_uri('edit'$id'pid=' $row['posts_id'] . '&amp;page=' $page '&amp;' RND) . '">Редактировать</a>';

                    echo 
'</div>';
                }

                if (
$moder == 1) {

                    echo 
'<div class="img"><input type="checkbox" name="del[]" value="' $row['posts_id'] . '" /></div>';
                }

                echo 
'<div class="img">' user_avatars($row['posts_user']) . '</div>';

                
$num = ($from $i);

                echo 
$num '. <b>' users_anketa($row['posts_user']) . '</b>  <small>(' get_date($row['posts_time']) . ')</small><br />';

                echo 
user_title($row['posts_user']) . ' ' user_online($row['posts_user']) . '<br />';

                if (!empty(
$row['posts_file'])) {

                    if (
is_admin()) {

                        echo 
nl2br(bb_code($row['posts_text'] . '[hide]Прикрепленный файл:[url=' $config['site_url'] . '/forum/files/' $row['posts_file'] . '][blue]' $row['posts_file'] . '[/blue][/url] ' formatsize($row['posts_photos_max_weight']) . ' [url=' $config['site_url'] . '/forum/' gen_uri('del_file'$row['posts_id'], 'page=' $page '&amp;' RND) . '][red]Удалить[/red][/url][/hide]')) . '<br />';
                    }
                    else {
     
                        echo 
nl2br(bb_code($row['posts_text'] . '[hide]Прикрепленный файл:[url=' $config['site_url'] . '/forum/files/' $row['posts_file'] . '][blue]' $row['posts_file'] . '[/blue][/url] ' formatsize($row['posts_photos_max_weight']) . '[/hide]')) . '<br />';
                    }
                }
                else {

                    echo 
nl2br(bb_code($row['posts_text'])) . '<br />';
                }

                if (!empty(
$row['posts_edit'])) {

                    echo 
icon('exclamation_small.gif''icons');
                    echo 
' <small>Отредактировано: ' nickname($row['posts_edit']) . ' (' get_date($row['posts_edit_time']) . ')</small><br />';
                }

                if (!empty(
$config['anonymity'])) {

                    echo 
'<span class="data">(' $row['posts_brow'] . ', ' $row['posts_ip'] . ')</span>';
                }

                echo 
'</div>';
           }

           if (
$moder == 1) {

                echo 
'<div class="b">';
                echo 
'<input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()">';
                echo 
'<input type="submit" class="btns" value="Удалить выбранное" /></form><br /></div>';
                echo <<<JSCRIPT

<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
    var frm = document.posts;
    if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    else{ frm.master_box.checked = true; }
    for (var i=0;i<frm.elements.length;i++) {
        var elmnt = frm.elements[i];
        if (elmnt.type=='checkbox') {
            if(frm.master_box.checked == true){ elmnt.checked=false; }
            else{ elmnt.checked=true; }
        }
    }
}
-->
</script>

JSCRIPT;
           }

           echo 
show_pages(gen_uri('topic'$idRND));
       }
       else {

           
show_error('Сообщений еще нет, будь первым!');
       }

        if (
$is_logged) {

            if (
$topics['topics_closed'] == 0) {

               
$form = new cmsForm(gen_uri('add'$id'page=' $page '&amp;rnd=' $_SESSION['token'] . '&amp;' RND), 'post');
               
$form->addTextarea('Сообщение:''text'''' id="msg"');
               echo 
$form->submit('Написать');
               unset(
$form);
           }
           else {

               
show_error('Данная тема закрыта для обсуждения!');
           }
       }
       else {

           
show_login('Вы не авторизованы, чтобы добавить сообщение, необходимо');
       }
    }
    else {

        
show_header('Форум ' $config['title']);
        
show_error('Ошибка! Данной темы не существует!');
    }

    echo 
show_bookmarks($topics['topics_title'], ''$topics['bookmarks']);
    echo 
'<div class="b"><a href="#up">' icon('up.png') . '</a> ';
    echo 
'<a href="' gen_uri('smiles'$idRND) . '">Смайлы</a>  / ';
    echo 
'<a href="' gen_uri('tags'$idRND) . '">Теги</a>  / ';
    echo 
'<a href="' gen_uri('rules'''RND) . '">Правила</a> | ';
    echo 
'<a href="' gen_uri('top'''RND) . '">Топ тем</a> | ';
    echo 
'<a href="' gen_uri('search'''RND) . '">Поиск</a><br /></div>';
}

    echo 
'<div class="b">' icon('return.png');
    echo 
' <a href="' gen_uri('index'''RND) . '">К форумам</a><br /></div>';

    
show_footer();

?>
Онлайн: 0
Реклама