Файл: CMS/comm/comm_edit_posts.php
Строк: 69
<?php
if (!defined('CMS')) { die('Access Denied!'); }
$data = '';
$data = $db->selectRow("SELECT ?_comm_comm.*, ?_comm_category.*
                       FROM ?_comm_comm LEFT JOIN ?_comm_category 
                       ON ?_comm_comm.`comm_cats_id` = ?_comm_category.`cats_id` 
                       WHERE `comm_url` = ? LIMIT 1;", $soo);
if (empty($data) || !is_array($data)) {
    $inSes->addMessage('Ошибка! Сообщество не найдено или ссылка неверна!');
    gen_red('index', '', RND);
}
if (empty($data['comm_forum'])) {
    $inSes->addMessage('Ошибка! Форум не найден или ссылка неверна!');
    gen_red('index', '', RND);
}
$arr_admins = @explode(',', $data['comm_admins']);
if ($is_logged) {
    $users = array();
    $users = $db->selectRow("SELECT * FROM ?_comm_users WHERE `cu_comm` = ? AND `cu_user` = ? LIMIT 1;", $data['comm_id'], $log);
    if ($data['comm_user'] == $log || is_admin(array(101))) {
        $is_admin_soo = true;
        $is_moder_soo = true;
    }
    if (in_array($log, $arr_admins) && $users['cu_admin'] == 1) {
        $is_moder_soo = true;
    }
    $post = $db->selectRow("SELECT * FROM ?_comm_posts WHERE `posts_id` = ? AND `posts_comm` = ? LIMIT 1;", $id, $data['comm_id']);
    if (!empty($post)) {
        if ($post['posts_user'] == $log || $is_moder_soo) {
            if (!empty($_POST['cancel'])) {
                gen_red('topic', $post['posts_topics_id'], 'page=' . $page . '&' . RND);
            }
            if (!empty($_POST['submit'])) {
                $text = !empty($_POST['text']) ? check($_POST['text']) : '';
                if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
                    if (cms_strlen($text) >= 5 && cms_strlen($text) <= $config['forum_max_text'] || is_admin()) {
                        if ($post['posts_time'] + 600 > SITE_TIME || $is_moder_soo) {
                            $text = antimat($text);
                            $text = smiles($text);
                            if (is_admin()) {
                                $db->query("UPDATE ?_comm_posts SET `posts_text` = ?
                                            WHERE `posts_id` = ? AND `posts_comm` = ?", $text, $id, $data['comm_id']);
                            }
                            else {
                                $db->query("UPDATE ?_forums_posts SET `posts_text` = ?, `posts_edit` = ?, `posts_edit_time` = ?
                                            WHERE `posts_id` = ? AND `posts_comm` = ?", $text, $log, SITE_TIME, $id, $data['comm_id']);
                            }
                            $inSes->addMessage('Сообщение успешно отредактировано!', 'ok');
                            gen_red('topic', $post['posts_topics_id'], 'page=' . $page . '&' . RND);
                        }
                        else $inSes->addMessage('Ошибка! Редактирование невозможно, прошло более 10 минут!!');
                    }
                    else $inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
                }
                else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
            }
            show_header('Редактирование сообщения');
            if ($post['posts_time'] + 600 > SITE_TIME || $is_moder_soo) {
                $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_posts', $id, 'page=' . $page . '&rnd=' . $_SESSION['token']), 'post', ' name="form" id="post"');
                $form->addCode(blink('*') . ' Сообщение: ');
                $form->addCode('<small>[<a href="' . gen_uri('edit_posts', $id, 'smiles=1&' . RND) . '">Смайлы</a>] ');
                $form->addCode('[<a href="' . gen_uri('edit_posts', $id, 'code=1&' . RND) . '">ББ-коды</a>]</small>');
                $form->addCode(' [<a href="#post" onclick="document.post.msg.rows += 5;">+</a>]');
                $form->addCode(' [<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 . '&' . RND) . '">Вернуться</a><br /></div>';
            }
        }
        else {
            $inSes->addMessage('Ошибка! Сообщение удалено или вы не автор этого сообщения!');
            gen_red('topic', $id, RND);
        }
    }
    else {
        $inSes->addMessage('Ошибка! Сообщение удалено или вы не автор этого сообщения!');
        gen_red('index', '', RND);
    }
}
else {
    $inSes->addMessage('Ошибка! Вы не авторизованы!');
    gen_red('index', '', RND);
}
?>