Файл: CMS/core/modules/forum_addtheme.php
Строк: 91
<?php
if (!defined('CMS')) { die('Access Denied!'); }
$forums = get_vars('forum_select_addtheme');
if (!$forums) {
$rows = $db->select("SELECT `forums_id`, `forums_parent`, `forums_title` FROM ?_forums ORDER BY `forums_order` ASC;");
if (!empty($rows) && count($rows) > 0) {
$output = array();
foreach($rows as $row) {
$i = $row['forums_id'];
$p = $row['forums_parent'];
$output[$p][$i] = $row;
}
foreach($output[0] as $key => $data) {
$forums[$data['forums_id']] = $data['forums_title'];
if (isset($output[$key])) {
foreach($output[$key] as $datasub) {
$forums[$datasub['forums_id']] = '– ' . $datasub['forums_title'];
}
}
}
}
set_vars('forum_select_addtheme', $forums);
}
if (!empty($_POST['cancel'])) {
gen_red('forum', $id, RND);
}
if (!empty($_POST['submit'])) {
$fid = !empty($_POST['fid']) ? num($_POST['fid']) : 0;
$title = !empty($_POST['title']) ? check($_POST['title']) : '';
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';
$track = !empty($_POST['track']) ? 1 : 0;
$error = '';
if ($is_logged) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen($title) >= 3 && cms_strlen($title) <= 100) {
if (cms_strlen($msg) >= 10 && cms_strlen($msg) <= $config['forum_max_text'] || is_admin()) {
$row = $db->selectRow("SELECT * FROM ?_forums WHERE `forums_id` = ? LIMIT 1;", $fid);
if (!empty($row)) {
if (is_admin()) {
$admins = !empty($_POST['admins']) ? num($_POST['admins']) : 0;
}
else $admins = 0;
if (is_quarantine($log)) {
if (is_flood($log)) {
$msg = antimat($msg);
$msg = smiles($msg);
$db->query("UPDATE ?_users SET `users_allforum` = (`users_allforum` + 1), `users_point` = (`users_point` + 1), `users_money` = (`users_money` + 5) WHERE `users_login` = ?", $log);
$lastid = $db->query("INSERT INTO ?_forums_topics (`topics_forums_id`, `topics_title`, `topics_author`, `topics_posts`, `topics_last_user`, `topics_last_time`, `topics_admins`, `topics_track`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);", $fid, $title, $log, 1, $log, SITE_TIME, $admins, $track);
$db->query("INSERT INTO ?_forums_posts (`posts_topics_id`, `posts_forums_id`, `posts_user`, `posts_text`, `posts_time`, `posts_ip`, `posts_brow`) VALUES (?, ?, ?, ?, ?, ?, ?);", $lastid, $fid, $log, $msg, SITE_TIME, $ip, $brow);
$db->query("UPDATE ?_forums SET `forums_topics` = (`forums_topics` + 1), `forums_posts` = (`forums_posts` + 1), `forums_last_id` = ?, `forums_last_themes` = ?, `forums_last_user` = ?, `forums_last_time` = ? WHERE `forums_id` = ?", $lastid, $title, $log, SITE_TIME, $fid);
// Обновление родительского форума
if ($row['forums_parent'] > 0) {
$db->query("UPDATE ?_forums SET `forums_last_id` = ?, `forums_last_themes` = ?, `forums_last_user` = ?, `forums_last_time` = ? WHERE `forums_id` = ?", $lastid, $title, $log, SITE_TIME, $row['forums_parent']);
}
/* Лента */
$subs = $db->select("SELECT * FROM ?_users_lenta_subscribe
WHERE `sub_publisher` = ?", $log);
if (!empty($subs) && count($subs) > 0) {
$sex = ($uset['users_gender'] == 1) ? 'создал' : 'создала';
$text = $sex . " новую тему <b>" . $title . "</b> на форуме.n";
$text .= "[forum=" . $lastid . "]Подробнее >>[/forum]";
foreach($subs as $sub) {
$db->query("INSERT INTO ?_users_lenta SET `lenta_subscriber` = ?, `lenta_publisher` = ?, `lenta_time` = ?, `lenta_message` = ?", $sub['sub_subscriber'], $log, SITE_TIME, $text);
}
}
$inSes->addMessage('Новая тема успешно добавлена!', 'ok');
gen_red('topic', $lastid, RND);
}
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('Ошибка! Создавать темы могут только зарегистрированые пользователи сайта!');
}
show_header('Создание новой темы');
if ($is_logged) {
if (count($forums) > 0) {
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('addtheme', $id, 'rnd=' . $_SESSION['token']), 'post', ' name="form" id="form"');
$form->addSelect('Раздел:', 'fid', $id, $forums);
$form->addText('Заголовок:', 'title', request('title'), ' size="50" maxlength="50"');
$form->addCode(blink('*') . ' Сообщение: ');
$form->addCode('<small>[<a href="' . gen_uri('addtheme', $id, 'smiles=1&' . RND) . '">Смайлы</a>] ');
$form->addCode('[<a href="' . gen_uri('addtheme', $id, 'code=1&' . RND) . '">ББ-коды</a>]</small>');
$form->addCode(' [<a href="#form" onclick="document.form.text.rows += 5;">+</a>]');
$form->addCode(' [<a href="#form" onclick="document.form.text.rows -= 5;">-</a>]');
$form->addTextarea('', 'text', request('text'), ' id="text" style="width:98%;"');
$form->addRadio('Следить за темой:', 'track', '0', array('1' => 'Да', '0' => 'Нет'));
if (is_admin(array(101,102))) {
$form->addRadio('Доступ:', 'admins', request('admins'), array('0' => 'Для всех', '1' => 'Только для модеров', '2' => 'Только для администрации'));
}
else if (is_admin()) {
$form->addRadio('Доступ:', 'admins', request('admins'), array('0' => 'Для всех', '1' => 'Только для модеров'));
}
echo $form->Submit(array('Создать тему','Отмена'), array('submit','cancel'));
unset($form);
echo '<div class="b">';
echo 'Прежде чем создать новую тему необходимо ознакомиться с правилами<br />';
echo '<a href="' . gen_uri('rules', '', RND) . '">Правила сайта</a><br />';
echo 'Также убедись что такой темы нет, чтобы не создавать одинаковые, для этого введи ключевое слово в поиске<br />';
echo '<a href="' . gen_uri('search', '', RND) . '">Поиск по форуму</a><br />';
echo 'И если после этого вы уверены, что ваша тема будет интересна другим пользователям, то можете ее создать<br /></div>';
}
else {
show_error('Разделы форума еще не созданы!');
}
}
else {
show_login('Вы не авторизованы, для создания новой темы, необходимо');
}
echo '<div class="b">' . icon('return.png') . ' <a href="' . gen_uri('forum', $id, RND) . '">Вернуться</a><br /></div>';
?>