View file modules/forum/action/edit_theme.php

File size: 5.86Kb
<?php

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

if (!access('forum_them_edit') && $user['id'] != $theme->id_user) {
    header('Location: ' . DIR_FORUM . $forum->id . '/' . $razdel->id . '/' . $theme->id . '.html');
    exit;
} else {
    if (isset($_POST['save'])) {
        $name = $db->safesql(trim($_POST['name']));
        $description = $db->safesql(trim($_POST['description']));
        $type = ($user['group_access'] > 7 && isset($_POST['type'])) ? 1 : 0;
        $razdel_id = intval($_POST['razdel']);
        $forum_id = mysqli_fetch_object($db->query('SELECT `id_forum` FROM `forum_razdels` WHERE `id` = ' . $razdel_id))->id_forum;

        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('UPDATE `forum_themes` SET `id_forum` = ' . $forum_id . ', `id_razdel` = ' . $razdel_id . ', `id_admin` = ' . $user['id'] . ', `name` = "' . $name . '", `description` = "' . $description . '", `type` = ' . $type . ', `time_edit` = "' . $time . '" WHERE `id` = ' . $theme->id);
            header('Location: ' . DIR_FORUM . $forum->id . '/' . $razdel->id . '/' . $theme->id . '.html');
            exit;
        }
    } elseif (isset($_POST['delete']) && (access('forum_them_del'))) {
        admin_log('Форум', 'Темы', "Тема $theme->name была удалена из раздела $razdel->name");

        $files = $db->query('SELECT `name` FROM `forum_post_files` WHERE `id_theme` = ' . $theme->id);

        while ($file = mysqli_fetch_object($files)) {
            unlink(DIR_FORUM_FILES . $file->name);
        }

        $votes = $db->query('SELECT `id` FROM `forum_votes` WHERE `id_theme` = ' . $theme->id);

        while ($vote = $db->query($votes)) {
            $db->query('DELETE FROM `forum_vote_voices` WHERE `id_vote` = ' . $vote->id);
        }
        $db->query('DELETE FROM `forum_votes` WHERE `id_theme` = ' . $theme->id);
        $db->query('DELETE FROM `forum_post_rating` WHERE `id_theme` = ' . $theme->id);
        $db->query('DELETE FROM `forum_posts` WHERE `id_theme` = ' . $theme->id);
        $db->query('DELETE FROM `forum_post_files` WHERE `id_theme` = ' . $theme->id);
        $db->query('DELETE FROM `forum_votes_var` WHERE `id_theme` = ' . $theme->id);
        $db->query('DELETE FROM `forum_themes` WHERE `id` = ' . $theme->id);

        $_SESSION['message'] = lang('Тема успешно удалена');
        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(utf8_substr($forum->name, 10)) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FORUM . "$forum->id/$razdel->id/'>" . toOutput(utf8_substr($razdel->name, 10)) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FORUM . "$forum->id/$razdel->id/$theme->id.html'>" . toOutput(utf8_substr($theme->name, 10)) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo lang('Редактирование');
    echo "</small></div>";

    echo "<form action='" . DIR_FORUM . "$forum->id/$razdel->id/$theme->id/edit_theme.html' class='list-group-item-null-mini' method='post'>";
    $doc->Input('name', 'Название темы', null, "$theme->name", 'form-control', 'text', 'required');
    $doc->Textarea('description', 'Содержание темы', null, "$theme->description");

    echo lang('Категория') . ":<br />";
    echo "<select class='custom-select' name='razdel'>";

    $forums = $db->query('SELECT `id`, `name`, `access` FROM `forum`');
    while ($forum_s = mysqli_fetch_object($forums)) {
        if ($forum_s->access == 0 || ($forum_s->access == 1 && $user['group_access'] > 7) || ($forum_s->access == 2 && $user['group_access'] > 2)) {
            echo "<option disabled='disabled'><b>$forum_s->name</b></option>";

            $razdels = $db->query('SELECT `id`, `name` FROM `forum_razdels` WHERE `id_forum` = ' . $forum_s->id);

            while ($cat = mysqli_fetch_object($razdels)) {
                echo "<option value='$cat->id' " . (($cat->id == $theme->id_razdel) ? 'selected = "selected"' : NULL) . ">>> $cat->name</option>";
            }
        } else {
            continue;
        }
    }
    echo "</select><br />";

    if ($user['group_access'] > 7) {
        $doc->Checkbox('type', 'Закрепить тему', 1, "" . (($theme->type == 1) ? 'checked="checked"' : NULL) . "");
    }

    echo "<br />";

    $doc->Button('btn btn-success btn-sm', 'save', 'save', 'Сохранить');

    if (access('forum_for_delete')) {
        $doc->Button('btn btn-danger btn-sm', 'delete', 'trash-o', 'Удалить тему');
    }

    echo "</form>";

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