Файл: CMS/comm/comm_add_themes.php
Строк: 93
<?php
if (!defined('CMS')) { die('Access Denied!'); }
$data = array();
$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']);
$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 ($data['comm_user'] == $log) {
if (in_array($log, $arr_admins) && $users['cu_admin'] == 2) {
$is_admin_soo = true;
$is_moder_soo = true;
}
if (in_array($log, $arr_admins) && $users['cu_admin'] == 1) {
$is_moder_soo = true;
}
}
if ($data['comm_status'] == 1 && empty($users)) {
$inSes->addMessage('Форум только для участников сообщества!');
gen_red('index', '', RND);
}
$rows = $db->select("SELECT * FROM ?_comm_forums WHERE `forums_comm` = ? ORDER BY `forums_order` ASC;", $data['comm_id']);
$forums = array();
if (!empty($rows) && count($rows) > 0) {
foreach($rows as $row) {
$forums[$row['forums_id']] = $row['forums_name'];
}
}
if (!empty($_POST['cancel'])) {
gen_red('forum', $id, RND);
}
if (!empty($_POST['submit'])) {
$fid = !empty($_POST['fid']) ? num($_POST['fid']) : 0;
$name = !empty($_POST['name']) ? check($_POST['name']) : '';
$text = !empty($_POST['text']) ? check($_POST['text']) : '';
$error = '';
if ($is_logged) {
if (!empty($users)) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen($name) >= 3 && cms_strlen($name) <= 100) {
if (cms_strlen($text) >= 10 && cms_strlen($text) <= $config['forum_max_text'] || is_admin()) {
//$row = $db->selectRow("SELECT * FROM ?_comm_forums
//WHERE `forums_id` = ? AND `forums_comm` = ? LIMIT 1;", $fid, $data['comm_id']);
if (array_key_exists($fid,$forums)) {
if (is_quarantine($log)) {
if (is_flood($log)) {
$text = antimat($text);
$text = smiles($text);
if ($is_moder_soo) {
$pswd = !empty($_POST['pswd']) ? check($_POST['pswd']) : '';
}
else $pswd = '';
/*
$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 ?_comm_topics (`topics_comm`, `topics_forums_id`, `topics_title`, `topics_author`, `topics_password`, `topics_posts`, `topics_last_user`, `topics_last_time`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);", $data['comm_id'], $fid, $name, $log, $pswd, 1, $log, SITE_TIME);
$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'], $lastid, $fid, $log, $text, SITE_TIME, $ip, $brow);
$db->query("UPDATE ?_comm_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` = ? AND `forums_comm` = ?", $lastid, $name, $log, SITE_TIME, $fid, $data['comm_id']);
$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('Ошибка! Создавать темы могут только участники сообщества!');
}
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('add_themes', $id, 'rnd=' . $_SESSION['token']), 'post', ' name="form" id="form"');
$form->addSelect('Раздел:', 'fid', $id, $forums);
$form->addText('Заголовок:', 'name', request('name'), ' size="50" maxlength="50"');
$form->addCode(blink('*') . ' Сообщение: ');
$form->addCode('<small>[<a href="' . gen_uri('add_themes', $id, 'smiles=1&' . RND) . '">Смайлы</a>] ');
$form->addCode('[<a href="' . gen_uri('add_themes', $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%;"');
if ($is_moder_soo) $form->addText('Закрыть паролем:', 'pswd', request('pswd'));
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>';
?>