Вход Регистрация
Файл: CMS/comm/comm_forum.php
Строк: 157
<?php

if (!defined('CMS')) { die('Access Denied!'); }

$data '';
$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);
}

$users     = array();
$arr_admins = @explode(','$data['comm_admins']);

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) {

        
$is_admin_soo true;

        if (!empty(
$_POST['add_cat'])) {

            if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                
$name  = !empty($_POST['name'])  ? check($_POST['name'])  : '';
                
$about = !empty($_POST['about']) ? check($_POST['about']) : '';

                if (
cms_strlen($name) >= && cms_strlen($name) <= 100) {

                    
$maxorder = (int) $db->selectCell("SELECT IFNULL(MAX(`forums_order`),0)+1 
                                                       FROM ?_comm_forums WHERE `forums_comm` = ?;"
$data['comm_id']);

                    
$last_id = (int) $db->query("INSERT INTO ?_comm_forums SET `forums_comm` = ?, `forums_order` = ?, `forums_name` = ?, `forums_about` = ?"$data['comm_id'], $maxorder$name$about);

                    if (
$last_id 0$inSes->addMessage('Новый раздел успешно добавлен!''ok');
                    else 
$inSes->addMessage('Ошибка! Не удалось создать новый раздел!');

                    
gen_red('forum'''RND);
                }
                else 
$inSes->addMessage('Ошибка! Слишком длинное или короткое название раздела!');
            }
            else 
$inSes->addMessage('Неверный идентификатор сессии, повторите действие!');
        }

        if (!empty(
$_POST['edit_cat'])) {

            if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                
$cat   = !empty($_POST['cat'])   ? num($_POST['cat'])     : 0;
                
$name  = !empty($_POST['name'])  ? check($_POST['name'])  : '';
                
$about = !empty($_POST['about']) ? check($_POST['about']) : '';


                
$is_cat = (int) $db->selectCell("SELECT `forums_id` FROM ?_comm_forums 
                                                 WHERE `forums_id` = ? AND `forums_comm` = ? LIMIT 1"
$cat$data['comm_id']);

                if (
$is_cat 0) {

                    
$db->query("UPDATE ?_comm_forums SET `forums_name` = ?, `forums_about` = ?
                                WHERE `forums_id` = ? AND `forums_comm` = ?"
$name$about$cat$data['comm_id']);

                    
$inSes->addMessage('Категория успешно изменена!''ok');

                    
gen_red('forum'''RND);
                }
                else 
$inSes->addMessage('Ошибка! Категория не найдена или у Вас нет прав для её именения!');
            }
            else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
        }

        if (!empty(
$_GET['del_cat'])) {

            if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                
$is_cat = (int) $db->selectCell("SELECT `forums_id` FROM ?_comm_forums 
                                                 WHERE `forums_id` = ? AND `forums_comm` = ? LIMIT 1"
num($_GET['del_cat']), $data['comm_id']);

                if (
$is_cat 0) {

                    
$db->query("DELETE FROM ?_comm_posts
                                WHERE `posts_forums_id` = ? AND `posts_comm` = ? LIMIT 1"
$is_cat$data['comm_id']);

                    
$db->query("DELETE FROM ?_comm_topics
                                WHERE `topics_forums_id` = ? AND `topics_comm` = ? LIMIT 1"
$is_cat$data['comm_id']);

                    
$db->query("DELETE FROM ?_comm_forums 
                                WHERE `forums_id` = ? AND `forums_comm` = ? LIMIT 1"
$is_cat$data['comm_id']);

                    
$db->query("OPTIMIZE TABLE ?_comm_forums, ?_comm_topics, ?_comm_posts;");

                    
$inSes->addMessage('Раздел успешно удален!''ok');

                    
gen_red('forum'''RND);
                }
                else 
$inSes->addMessage('Ошибка! Категория не найдена или у Вас нет прав для её удаления!');
            }
            else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
        }
    }

    if (
in_array($log$arr_admins) && $users['cu_admin'] == 1) {

        
$is_moder_soo true;
    }
}

if (
$data['comm_status'] == && empty($users)) {

    
$inSes->addMessage('Форум только для участников сообщества!');
    
gen_red('index'''RND);
}

if (!empty(
$id)) {

    
$forums $db->selectRow("SELECT * FROM ?_comm_forums
                              WHERE `forums_id` = ? AND `forums_comm` = ? LIMIT 1;"
$id$data['comm_id']);

    if (!empty(
$forums)) {

        
show_header('Форум - ' $forums['forums_name']);

        echo 
'<div class="b"><a href="#down">' icon('down.png') . '</a> ';
        echo 
'<a href="' gen_uri('forum'''RND) . '">Форум</a> | ';
        echo 
'<a href="' gen_uri($mod$id'page=' $page '&amp;rand=' mt_rand(10009999)) . '">Обновить</a> | ';
        echo 
'<a href="' gen_uri('add_themes'$idRND) . '">Создать тему</a>';
        echo 
'<br /></div>';

        
$onpage = !empty($config['themes_num']) ? num($config['themes_num']) : 10;

        if (
$page 1$from = ($page 1) * $onpage; else $from 0;

        
$rows $db->selectPage($total"SELECT * FROM ?_comm_topics
                                         WHERE `topics_forums_id` = ? AND `topics_comm` = ?
                                         ORDER BY `topics_locked` DESC, `topics_last_time` DESC
                                         LIMIT ?d, ?d"
$id$data['comm_id'], $from$onpage);

        if (!empty(
$rows) && $total 0) {

            foreach(
$rows as $row) {

                if (
$row['topics_locked'] == 1) {

                    
$icon 'sticky-notes-pin.png';
                }
                else if (
$row['topics_closed'] == 1) {

                    
$icon 'lock.png';
                }
                else 
$icon 'post_new.png';

                echo 
'<div class="b">' icon($icon'icons');
                echo 
'<a href="' gen_uri('topic'$row['topics_id'], RND) . '"><b>' $row['topics_title'] . '</b></a> ';
                echo 
'(' $row['topics_posts'] . ')<br />';
                echo 
'Страницы: ' forum_navigation('topic'$row['topics_id'], $config['post_num'], $row['topics_posts']);
                echo 
'Сообщение: ' nickname($row['topics_last_user']) . ' (' get_date($row['topics_last_time']) . ')</div>';
            }

            echo 
show_pages(gen_uri('forum'$idRND));

            echo 
'<div class="b"><a href="#up">' icon('up.png') . '</a> ';
            echo 
'<a href="' gen_uri('add_themes'$idRND) . '">Создать тему</a> | ';
            echo 
'<a href="' gen_uri('top'''RND) . '">Топ тем</a> | ';
            echo 
'<a href="' gen_uri('search'''RND) . '">Поиск</a><br /></div>';
        }
        else {

            
show_error('Тем еще нет, будь первым!');
        }
    }
    else {
        
show_error('Ошибка! Данного раздела не существует!');
    }
}
else {


    
show_header('Форум - ' $data['comm_name']);

    echo 
'<div class="b"><a href="#down">' icon('down.png') . '</a> ';

    echo 
'Новые: <a title="Новые темы" href="' gen_uri('new_themes'''RND) . '">темы</a>, ';
    echo 
'<a title="Новые сообщения" href="' gen_uri('new_posts'''RND) . '">сообщения</a></div>';

    
$rows $db->select("SELECT * FROM ?_comm_forums WHERE `forums_comm` = ? LIMIT 0, 25"$data['comm_id']);

    if (!empty(
$rows) && count($rows) > 0) {

        foreach(
$rows as $row) {

            echo 
'<div class="b">';

            if (
$is_admin_soo) {

                echo 
'<div class="right">';
                echo 
' [<a href="' gen_uri('forum''''edit_cat=' $row['forums_id'] . '#edit') . '">Ред.</a> | ';
                echo 
'[<a href="' gen_uri('forum''''del_cat=' $row['forums_id'] . '&amp;rnd=' $_SESSION['token']) . '">Уд.</a>]</div>';
            }
            echo 
icon('folder.png');
            echo 
'<a href="' gen_uri('forum'$row['forums_id'], RND) . '">' $row['forums_name'] . '</a> ';
            echo 
'(' $row['forums_topics'] . '/' $row['forums_posts'] . ')<br />';
            if (!empty(
$row['forums_about'])) echo bb_code($row['forums_about']);
            echo 
'</div>';
        }
    }
    else {

        
show_error('Разделы форума еще не созданы!');
    }

    if (
$is_admin_soo) {

        if (!empty(
$_GET['edit_cat'])) {

             
$cat $db->selectRow("SELECT * FROM ?_comm_forums 
                                    WHERE `forums_id` = ? AND `forums_comm` = ? LIMIT 1"
num($_GET['edit_cat']), $data['comm_id']);

            if (!empty(
$cat)) {

                
$form = new cmsForm(gen_uri('forum'$id'rnd=' $_SESSION['token']), 'post'' id="edit"');
                
$form->addText('Название:''name'$cat['forums_name']);
                
$form->addTextarea('Описание (max 250):''about'$cat['forums_about']);
                
$form->addHidden('cat'$cat['forums_id']);
                echo 
$form->Submit(array('Изменить','Отмена'), array('edit_cat','cancel'));
                unset(
$form);
            }
            else 
show_error('Ошибка! Раздел не найден!');
        }
        else if (!empty(
$_GET['add_cat'])) {

            
$form = new cmsForm(gen_uri('forum''''rnd=' $_SESSION['token']), 'post'' id="add"');
            
$form->addText('Название:''name'request('name'));
            
$form->addTextarea('Описание (max 250):''about'request('about'));
            echo 
$form->Submit(array('Создать','Отмена'), array('add_cat','cancel'));
            unset(
$form);
        }
        else {

            echo 
'<div class="b">' icon('add.png');
            echo 
'<a href="' gen_uri('forum''''add_cat=1&amp;' RND '#add') . '">Создать раздел</a> | ';
            echo 
'<a href="' gen_uri('add_themes'''RND) . '">Создать тему</a><br /></div>';
        }
    }
    else {

        echo 
'<div class="b">' icon('add.png');
        echo 
'<a href="' gen_uri('add_themes'''RND) . '">Создать тему</a><br /></div>';
    }

    echo 
'<div class="b"><a href="#up">' icon('up.png') . '</a> ';
    echo 
'<a href="../' gen_uri('index'''RND) . '">Сообщества</a> | ';
    echo 
'<a href="../' gen_uri('cats'$data['cats_id'], RND) . '">' $data['cats_name'] . '</a> | ';
    echo 
'<a href="' gen_uri('index'''RND) . '">' $data['comm_name'] . '</a></div>';
}

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