Файл: CMS/comm/comm_add_posts.php
Строк: 54
<?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);
}
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';
$users = array();
if ($is_logged) {
$users = $db->selectRow("SELECT * FROM ?_comm_users WHERE `cu_comm` = ? AND `cu_user` = ? LIMIT 1;", $data['comm_id'], $log);
if (!empty($_POST['cancel'])) {
gen_red('topic', $id, 'page=' . $page . '&' . RND);
}
if (!empty($users)) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen($msg) >= 5 && cms_strlen($msg) <= $config['forum_max_text'] || is_admin()) {
$topics = $db->selectRow("SELECT `t`.*, `f`.`forums_name`
FROM ?_comm_topics `t`
LEFT JOIN ?_comm_forums `f`
ON `t`.`topics_forums_id` = `f`.`forums_id`
WHERE `t`.`topics_id` = ? AND `t`.`topics_comm` = ?
LIMIT 1;", $id, $data['comm_id']);
if (!empty($topics)) {
if (empty($topics['topics_closed'])) {
if (is_quarantine($log)) {
if (is_flood($log)) {
$msg = antimat($msg);
$msg = smiles($msg);
$post = $db->selectRow("SELECT * FROM ?_comm_posts
WHERE `posts_topics_id` = ? AND `posts_comm` = ?
ORDER BY `posts_id` DESC LIMIT 1;", $id, $data['comm_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]";
$newpost .= "Добавлено через " . maketime(SITE_TIME - $post['posts_time']) . " сек.[/small][/i]n" . $msg;
$db->query("UPDATE ?_comm_posts SET `posts_text` = ?
WHERE `posts_id` = ? AND `posts_comm` = ?;", $newpost, $post['posts_id'], $data['comm_id']);
}
else { // Новое
/*
$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 ?_comm_posts (`posts_comm`, `posts_topics_id`, `posts_forums_id`, `posts_user`, `posts_text`, `posts_time`, `posts_ip`, `posts_brow`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);", $data['comm_id'], $id, $topics['topics_forums_id'], $log, $msg, SITE_TIME, $ip, $brow);
$db->query("UPDATE ?_comm_topics SET `topics_posts` = (`topics_posts` + 1), `topics_last_user` = ?, `topics_last_time` = ? WHERE `topics_id` = ? AND `topics_comm` = ?", $log, SITE_TIME, $id, $data['comm_id']);
$db->query("UPDATE ?_comm_forums SET `forums_posts` = (`forums_posts` + 1), `forums_last_id` = ?, `forums_last_themes` = ?, `forums_last_user` = ?, `forums_last_time` = ? WHERE `forums_id` = ? AND `forums_comm` = ?;", $id, $topics['topics_title'], $log, SITE_TIME, $topics['topics_forums_id'], $data['comm_id']);
}
$inSes->addMessage('Сообщение успешно добавлено!', 'ok');
}
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('Ошибка! Добавлять сообщения могут только участники сообщества!');
}
else $inSes->addMessage('Ошибка авторизации. Неправильный логин или пароль!');
gen_red('topic', $id, RND);
?>