View file modules/forum/action/create_theme.php

File size: 6.23Kb
<?php

/* SocCMS
 * Дата последнего редактирования 22.10.2016
 * Модифицировал densnet
 * Автор yadalay
 */

if ($razdel->type == 0 || ($razdel->type == 1) && $user['group_access'] > 2) {

    $my_last_theme = mysqli_fetch_object($db->query('SELECT `time` FROM `forum_themes` WHERE `id_user` = ' . $user['id'] . ' ORDER BY `id` DESC'));
    if ($my_last_theme && (time() - $my_last_theme->time < $set['new_them_time'] && $set['new_them_time'] != 0) && $user['group_access'] < 3) {

        if ($set['new_them_time'] == 60) {
            $theme_time = 'минуту';
        } elseif ($set['new_them_time'] == 120) {
            $theme_time = '2 минуты';
        } elseif ($set['new_them_time'] == 180) {
            $theme_time = '3 минуты';
        } elseif ($set['new_them_time'] == 300) {
            $theme_time = '5 минут';
        } elseif ($set['new_them_time'] == 600) {
            $theme_time = '10 минут';
        } elseif ($set['new_them_time'] == 1200) {
            $theme_time = '20 минут';
        }

        $part = ($set['new_them_time'] - (time() - $my_last_theme->time));
        $min = ($part > 60) ? floor(($part / 60) % 60) . ' минут(ы) ' . ($part % 60) . ' секунд(у/ы)' : ' секунд(у/ы)';

        #Навигация
        echo "<div class='list-group-item-null list-group-item-grey'><small>";
        echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo "<a href='" . DIR_FORUM . "'>" . lang('Форум') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo "<a href='" . DIR_FORUM . "$forum->id/'>" . toOutput($forum->name, 1, 1, 0, 0, 0) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo "<a href='" . DIR_FORUM . "$forum->id/$razdel->id/'>" . toOutput($razdel->name, 1, 1, 0, 0, 0) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
        echo lang('Создание темы');
        echo "</small></div>";

        echo "<div class='list-group-item-null-mini list-group-item-warning dop'>";
        echo lang('Тему можно создавать 1 раз в') . " $theme_time.<br />";
        echo lang('Вы сможете создать тему через') . " $min.";
        echo "</div>";

        include_once H . 'sys/inc/tfoot.php';
        exit;
    }

    if (isset($_POST['create'])) {
        $name = $db->safesql(trim($_POST['name']));
        $description = $db->safesql(trim($_POST['description']));
        $type = ($user['group_access'] > 7 && isset($_POST['type'])) ? 1 : 0;

        if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)|(\,\.\-)]/", $_POST['name'], $m)) {
            $_SESSION['err'] = lang('В поле Название темы присутствуют запрещенные') . " <span style='font-weight: bold; color: red;'>$m[0]</span> " . lang('символы');
        } else
        if (mb_strlen($name) < $set['new_them_name_min'] || mb_strlen($name) > $set['new_them_name_max']) {
            $_SESSION['err'] = lang('В поле Название темы можно использовать от') . " $set[new_them_name_min] " . lang('до') . " $set[new_them_name_max] " . lang('символов');
        } elseif (mb_strlen($description) < 3 || mb_strlen($name) > $set['new_them_opis_max']) {
            $_SESSION['err'] = lang('В поле Содержание темы можно использовать от 3 до') . " $set[new_them_opis_max] " . lang('символов');
        } else {
            $_SESSION['message'] = lang('Тема успешно создана');

            $db->query('INSERT INTO `forum_themes` SET `id_forum` = ' . $forum->id . ', `id_razdel` = ' . $razdel->id . ', `name` = "' . $name . '", `description` = "' . $description . '", `type` = ' . $type . ', `time` = ' . $time . ', `time_edit` = "0", `time_post` = ' . $time . ', `reason_close` = "", `id_user` = ' . $user['id']);
            $db->query("UPDATE `user` SET `money` = '" . ($user['money'] + $set['forum_money_s']) . "', `activity` = '" . ($user['activity'] + $set['forum_activity_s']) . "', `forum_them` = '" . ($user['forum_them'] + 1) . "' WHERE `id` = '" . $user['id'] . "' LIMIT 1");

            $insert = $db->insert_id();
            if ($set['new_them_location'] == 1) {
                header('Location: ' . DIR_FORUM . '' . $forum->id . '/' . $razdel->id . '/' . $insert . '.html');
            } else {
                header('Location: ' . DIR_FORUM . '' . $forum->id . '/' . $razdel->id . '/');
            }
            exit;
        }
    }

    #Навигация
    echo "<div class='list-group-item-null list-group-item-grey'><small>";
    echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FORUM . "'>" . lang('Форум') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FORUM . "$forum->id/'>" . toOutput($forum->name, 1, 1, 0, 0, 0) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FORUM . "$forum->id/$razdel->id/'>" . toOutput($razdel->name, 1, 1, 0, 0, 0) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo lang('Создание темы');
    echo "</small></div>";

    echo "<form class='list-group-item-null-mini' name='form' action='" . DIR_FORUM . "$forum->id/$razdel->id/create_theme.html' method='post'>";

    $doc->Input('name', 'Название темы', null, null, 'form-control', 'text', 'required');
    echo auto_bb("form", "description");
    $doc->Textarea('description', 'Содержание темы');

    if ($user['group_access'] > 7) {
        $doc->Checkbox('type', 'Закрепить тему', 1);
    }

    echo "<br />";

    $doc->Button('btn btn-primary btn-sm', 'create', null, 'Создать');
    $doc->a("" . DIR_FORUM . "$forum->id/$razdel->id/", 'btn btn-secondary btn-sm', null, 'Отменить');

    echo "</form>";

    require_once H . 'sys/inc/tfoot.php';
} else {
    header('Location: ' . DIR_FORUM . $forum->id . '/' . $razdel->id . '/');
}
exit;