View file modules/forum/view/forum.php

File size: 6.82Kb
<?php

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

$forum = mysqli_fetch_object($db->query('SELECT * FROM `forum` WHERE `id` = ' . intval($_GET['forum'])));

if (!$forum || ($forum->access == 1 && $user['group_access'] < 8) || ($forum->access == 2 && $user['group_access'] < 3)) {
    header('Location: ' . DIR_FORUM);
    exit;
} else {
    $set['title'] = (isset($_GET['create_razdel'])) ? toOutput($forum->name, 1, 1, 0, 0, 0) . ' - ' . lang('Создание раздела') : lang('Подфорум') . ' - ' . toOutput($forum->name, 1, 1, 0, 0, 0);

    require_once H . 'sys/inc/thead.php';

    aut();

    if (isset($_GET['create_razdel'])) {
        require_once 'action/create_razdel.php'; #Создание раздела.
    } elseif (isset($_GET['edit_razdel'])) {
        require_once 'action/edit_razdel.php'; #Редактирование раздела.
    }

    if (isset($_SESSION['msg'])) {
        echo $_SESSION['msg'];
        unset($_SESSION['msg']);
    }

    #Навигация
    echo "<div class='list-group-item-null list-group-item-grey'><small>";

    #Кнопка меню действий
    if (access('forum_for_create')) {
        echo "<span class='right'>";
        if (IS_WEB) {
            echo "<a data-toggle='modal' data-target='#add_razdel'><span data-toggle='tooltip' data-placement='left' title='" . lang('Создать раздел') . "'><i class='fa fa-plus fa-fw fa-lg'></i></span></a>";
        } else {
            echo "<a href='" . DIR_FORUM . "$forum->id/create_razdel.html'><span title='" . lang('Создать раздел') . "'><i class='fa fa-plus fa-fw'></i></a>";
        }
        echo "</span>";
    }

    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 toOutput(utf8_substr($forum->name, 20));
    echo "</small></div>";

    #Всплывающее меню
    if (access('forum_for_create')) {
        echo "<div class='modal fade' id='add_razdel'>\n";
        echo "<div class='modal-dialog'>\n";
        echo "<div class='modal-content'>\n";

        echo "<div class='modal-header'>\n";
        echo "<button type='button' class='close' data-dismiss='modal' aria-label='Close'><span aria-hidden='true'>&times;</span><span class='sr-only'>Close</span></button>";
        echo "<h5 class='modal-title'>" . lang('Новый раздел') . "</h5>";
        echo "</div>";

        $next_number = $db->super_query("SELECT MAX(`number`) as number FROM forum_razdels WHERE id_forum = '$forum->id'");
        $next_number = $next_number['number'] + 1;

        echo "<form action='" . DIR_FORUM . "$forum->id/create_razdel.html' class='list-group-item-null-mini' method='post'>";
        $doc->Input('name', 'Название раздела');
        $doc->Textarea('description', 'Описание раздела');
        $doc->Input('icon', 'Иконка', null, "folder");
        $doc->Input('number', 'Позиция', null, "$next_number", 'form-control', 'number');

        echo lang('Могут создавать темы только') . ":<br />";
        $doc->Checkbox('type', 'Администраторы + модераторы', '1');

        echo "<div class='hr'></div>";

        echo lang('Вывод раздела') . ":<br />";
        $doc->Checkbox('output', 'Отображать посл. 3 темы', '1');

        echo "<br />";

        $doc->Button('btn btn-primary btn-sm', 'create', null, 'Создать');

        echo "</form>";
        echo "</div>\n";
        echo "</div>\n";
        echo "</div>\n";
    }

    $k_post = $db->super_query("SELECT COUNT(*) as count FROM `forum_razdels` WHERE `id_forum` = '$forum->id'");
    $k_page = k_page($k_post['count'], $set['p_str']);
    $page = page($k_page);
    $start = $set['p_str'] * $page - $set['p_str'];

    if ($k_post['count'] == 0) {
        echo "<br />";
        $doc->NoResult();
    } else {

        $razdels = $db->query('SELECT * FROM `forum_razdels` WHERE `id_forum` = ' . $forum->id . ' ORDER BY `number` ASC LIMIT ' . $start . ', ' . $set['p_str']);
        echo "<div class='list-group-item-null-mini'>\n";
        while ($razdel = mysqli_fetch_object($razdels)) {
            $q = $db->super_query("SELECT COUNT(*) as count FROM `forum_themes` WHERE `id_razdel` = '$razdel->id'");
            $count_themes = $q['count'];

            echo "<div class='card'>\n";
            echo "<div class='card-header'>\n";
            echo "<a href='" . DIR_FORUM . "$forum->id/$razdel->id/'><i class='fa fa-$razdel->icon fa-fw'></i> " . toOutput($razdel->name, 1, 1, 0, 0, 0) . "</a> &nbsp; " . (access('forum_for_edit') ? "<a href='" . DIR_FORUM . "$forum->id/$razdel->id/edit_razdel.html' class='tag tag-default hint--top' data-hint='" . lang('Редактировать') . "'><i class='fa fa-edit fa-fw'></i> " . lang('Ред') . "</a>" : null) . " <span class='tag tag-info right'>$count_themes</span>";
            echo "</div>\n";

            if ($razdel->description != NULL && $razdel->output == 0) {
                echo "<div class='card-block'>\n";
                echo "<small style='color: #9197a3;'>" . toOutput($razdel->description, 1, 1, 0, 1, 1) . "</small>";
                echo "</div>\n";
            } elseif ($razdel->output == 1 && $count_themes > 0) {
                echo "<div class='card-block'>\n";
                $themes = $db->query('SELECT `id`, `name`, `reason_close`, `type` FROM `forum_themes` WHERE `id_razdel` = ' . $razdel->id . ' ORDER BY `time` DESC LIMIT 3');
                while ($theme = mysqli_fetch_object($themes)) {

                    if ($theme->reason_close != NULL) {
                        $type = "<i class='fa fa-file-text fa-fw'></i> " . toOutput($theme->name, 1, 1, 0, 0, 0) . " <i class='fa fa-lock fa-fw'></i>";
                    } elseif ($theme->type == 1) {
                        $type = "<i class='fa fa-file-text fa-fw'></i> " . toOutput($theme->name, 1, 1, 0, 0, 0) . " <i class='fa fa-thumb-tack fa-fw'></i>";
                    } else {
                        $type = "<i class='fa fa-file-text fa-fw'></i> " . toOutput($theme->name, 1, 1, 0, 0, 0) . "";
                    }

                    echo "<a style='color:grey;' href='" . DIR_FORUM . "$forum->id/$razdel->id/$theme->id.html'> $type</a><br />";
                }
                echo "</div>\n";
            }
            echo "</div>";
        }
        echo "</div>\n";

        if ($k_page > 1) {
            str(DIR_FORUM . $forum->id . '/', $k_page, $page);
        }
    }
}