Вход Регистрация
Файл: 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 . "]Подробнее &gt;&gt;[/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&amp;' . RND) . '">Смайлы</a>] ');
        
$form->addCode('[<a href="' . gen_uri('addtheme', $id, 'code=1&amp;' . 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>';

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