Вход Регистрация
Файл: page/forum/topic.php
Строк: 315
<?php
$title 
'Форум';
require_once(
$_SERVER["DOCUMENT_ROOT"]."/inc/head.php");

if (isset(
$active) && $sys['modules']['forum'] == 1) { 

    
$strow_top $connect->prepare("select * from `topic` where `id` = ?");
    
$strow_top->execute(array($id));
    
$n_row $strow_top->fetch();

    if (
$n_row) {

        
// prepared
        
$top $connect->prepare("update `topic` set `top` = ? where `id` = ?");

        
// категория
        
$stmt_kat $connect->prepare("select * from `kat` where `type` = '2' and `id` = ?");
        
$stmt_kat->execute(array($n_row['kat']));
        
$krow $stmt_kat->fetch(); 

        
// up
        
$up $connect->prepare("update `topic` set `up` = ? where `id` = ?");

        
// тип
        
$type 3;
        
// количество комментариев
        
$count_comm Comments::CountMess($id$type);

        
// файлы
        
$attach_files GlobFiles::findById($idGlobFiles::FilesGlobFiles::MaskForumtrue);
        
$count_files count($attach_files);

        
// Лайки
        
$like = new Respect($id2);

        echo 
'<div class="title">'.$n_row['name'].'</div>';

        if (isset(
$_GET['del_n']) && $adm_id == || $adm_id == 5) {
            if (isset(
$_POST['ok'])) {
                
$del_topic $connect->prepare("delete from `topic` where `id` = ?");
                if (
$del_topic->execute(array($id)) &&
                    
Comments::DelMess($id$type) &&
                    
Vote::Delete($id$type) &&
                    
GlobFiles::DelAllById($idGlobFiles::FilesGlobFiles::MaskForum) &&
                    
$like->removeLikes()) {
                    
header ('location: /forum');
                } else {
                    echo 
'<div class="menu">Произошла ошибка!</div>';
                }
            }
            elseif (isset(
$_POST['cancel'])) {
                
header('Location: /forum/topic/'.$id);
            }
            echo 
'<div class="menu">
            <form action="" method="POST">
            <input type="submit" name="ok" value="Удалить">
            <input type="submit" name="cancel" value="Отмена">
            </form></div>'
;
        }
        elseif (isset(
$_GET['pictures']) && $n_row['uid'] == $user['id'] && $n_row['status'] == && $count_files $sys['system']['forum_attach']) {
            if (isset(
$_POST['cancel'])) {
                
header('Location: /forum/topic/'.$id);
            }
            elseif (isset(
$_POST['upload_f'])) {
                
$error '';
                
$reFiles reArrayFiles($_FILES['filename']);
                foreach (
$reFiles as $key => $file) {
                    if (
file_exists($file['tmp_name'])) {
                        if (!
BeforeUpload::AttachIMG($file)) {
                            
$error.= $file['name'] . ': неверный тип файла!<br/>';
                        }
                        if (
$file['size'] > 1024 1024) {
                            
$error.= $file['name'] . ': максимальный размер файла - 1 Mb!<br/>';
                        }
                    } else {
                        unset(
$reFiles[$key]);
                    }
                }
                if (
$count_files count($reFiles) > $sys['system']['forum_attach']) {
                    
$error.= 'Максимальное количество прикреплённых файлов - '.$sys['system']['forum_attach'].'!<br/>';
                }
                elseif (
count($reFiles) == 0) {
                    
$error.= 'Выберите хотя бы 1 файл!<br/>';
                }
                elseif (
count($reFiles) > 10) {
                    
$error.= 'Нельзя загружать более 10 файлов одновременно!<br/>';
                }
                if (
$error) {
                    echo 
'<div class="menu">'.$error.'</div>';
                } else {
                    
$path $_SERVER["DOCUMENT_ROOT"]."/files/";
                    foreach (
$reFiles as $key => $file) {
                        if (
file_exists($file['tmp_name'])) {
                            
$files $id."_".$key."_forum_".random_int(1111199999)."_".$file['name'];
                            
$full_path $path $files;
                            
move_uploaded_file($file['tmp_name'], $full_path);
                        }
                    }
                    
header('Location: /forum/topic/'.$id);
                }
            }
            echo 
'<div class="menu">
            <form action="" method="POST" enctype="multipart/form-data">
            <div id="inpContFile">
            <input type="file" name="filename[]" id="file"><br/>
            <input type="file" name="filename[]" id="file"><br/>
            <input type="file" name="filename[]" id="file"><br/>
            <input type="file" name="filename[]" id="file"><br/>
            <input type="file" name="filename[]" id="file"><br/>
            </div>
            <div class="butt1"><a href="javascript:AddFile()">Добавить еще</a></div><br/>
            <input type="submit" name="upload_f" value="Загрузить">
            <input type="submit" name="cancel" value="Отмена">
            </form></div>'
;
        }
        elseif (isset(
$_GET['del_file']) && isset($attach_files[$_GET['del_file']]) && $n_row['uid'] == $user['id'] && $n_row['status'] == 1) {
            
$filedel $attach_files[$_GET['del_file']];
            if (
$filedel) {
                if (isset(
$_POST['cancel'])) {
                    
header('Location: /forum/topic/'.$id);
                }
                elseif (isset(
$_POST['yes'])) {
                    
unlink($filedel);
                    
header('Location: /forum/topic/'.$id);
                }
                echo 
'<div class="menu">
                <form action="" method="POST">
                <input type="submit" name="yes" value="Удалить файл ('
.basename($filedel).')">
                <input type="submit" name="cancel" value="Отмена">
                </form></div>'
;
            } else {
                
header('Location: /forum/topic/'.$id);
            }
        }
        elseif (isset(
$_GET['del_all_files']) && $n_row['uid'] == $user['id'] && $n_row['status'] == 1) {
            if (
$attach_files) {
                if (isset(
$_POST['cancel'])) {
                    
header('Location: /forum/topic/'.$id);
                }
                elseif (isset(
$_POST['yes'])) {
                    
GlobFiles::DelAllById($idGlobFiles::FilesGlobFiles::MaskForum);
                    
header('Location: /forum/topic/'.$id);
                }
                echo 
'<div class="menu">
                <form action="" method="POST">
                <input type="submit" name="yes" value="Удалить все прикреплённые файлы ('
.$count_files.')">
                <input type="submit" name="cancel" value="Отмена">
                </form></div>'
;
            } else {
                
header('Location: /forum/topic/'.$id);
            }
        }
        elseif (isset(
$_GET['edit_n']) && $n_row['uid'] == $user['id'] && $n_row['status'] == && $count_comm == 0) {
            
SmilesAndBB('#topic');
            if (isset(
$_POST['cancel'])) {
                
header('Location: /forum/topic/'.$id); 
            }
            elseif (isset(
$_POST['red'])) {
                
$error '';
                if (empty(
$_POST['name'])) {
                    
$error.= 'Введите название темы!<br/>';
                }
                elseif (
mb_strlen($_POST['name']) < || mb_strlen($_POST['name']) > 50) {
                    
$error.= 'Название темы должно содержать не менее 5 и не более 50 символов!<br/>';
                }
                if (empty(
$_POST['text'])) {
                    
$error.= 'Введите сообщение!<br/>';
                }
                elseif (
mb_strlen($_POST['text']) < 10 || mb_strlen($_POST['text']) > 25000) {
                    
$error.= 'Сообщение должно содержать не менее 10 и не более 25000 символов!<br/>';
                } 
                if (
$error) {
                    echo 
'<div class="menu">'.$error.'</div>';
                } else {
                    
$stmt $connect->prepare("update `topic` set `name` = ?, `text` = ? where `id` = ?");
                    if (
$stmt->execute(array($_POST['name'], $_POST['text'], $id))) {
                        
header('Location: /forum/topic/'.$id); 
                    } else {
                        echo 
'<div class="menu">Произошла ошибка!</div>';
                    }
                }
            }
            echo 
'<div class="menu">
            <form action="" method="POST">
            Название темы:<br/><input type="text" name="name" value="'
.$n_row['name'].'"><br/>
            Сообщение:<br/><textarea data-select-range id="topic" name="text" rows="5" cols="30">'
.$n_row['text'].'</textarea><br/>
            <input type="submit" name="red" value="Сохранить">
            <input type="submit" name="cancel" value="Отмена">
            </form></div>'
;
        }
        elseif (isset(
$_GET['kat']) && ($n_row['uid'] == $user['id'] || $adm_id == || $adm_id == || $adm_id == 5)) {
            if (isset(
$_POST['cancel'])) {
                
header('Location: /forum/topic/'.$id); 
            }
            elseif (isset(
$_POST['ok'])) {
                
$stmt $connect->prepare("update `topic` set `kat` = ? where `id` = ?");
                if (
$stmt->execute(array($_POST['kat'], $id))) {
                    
header('Location: /forum/topic/'.$id); 
                } else {
                    echo 
'<div class="menu">Произошла ошибка!</div>';
                }
            }
            echo 
'<div class="menu">
            <form action="" method="POST">
            Раздел форума:<br/><select name="kat">'
;

            
$sql $connect->query("select * from `kat` where `type` = '2' order by `id` desc")->fetchAll();

            foreach (
$sql as $kat_row) {

                echo 
'<option ' . ($n_row['kat'] == $kat_row['id'] ? 'selected' '') . ' value="'.$kat_row['id'].'">'.$kat_row['name'].'</option>';

            }

            echo 
'</select><br/> 
            <input type="submit" name="ok" value="Перенести">
            <input type="submit" name="cancel" value="Отмена">
            </form></div>'
;
        }
        elseif (isset(
$_GET['up']) && $n_row['uid'] == $user['id'] && $n_row['status'] == && $n_row['up'] < time() - 3600 $sys['system']['forum_up']) {
            
$up->execute(array(time(), $id));
            
header('Location: /forum/topic/'.$id);
        }
        elseif (isset(
$_GET['close']) && ($n_row['uid'] == $user['id'] || $adm_id == || $adm_id == || $adm_id == 5) && $n_row['status'] == 1) {
            if (isset(
$_POST['ok'])) {
                
$stmt $connect->prepare("update `topic` set `status` = '0' where `id` = ?");
                if (
$stmt->execute(array($id))) {
                    
header('Location: /forum/topic/'.$id); 
                } else {
                    echo 
'<div class="menu">Произошла ошибка!</div>';
                }
            }
            elseif (isset(
$_POST['cancel'])) {
                
header('Location: /forum/topic/'.$id);
            }
            echo 
'<div class="menu">
            <form action="" method="POST">
            <input type="submit" name="ok" value="Закрыть тему">
            <input type="submit" name="cancel" value="Отмена">
            </form></div>'
;
        }
        elseif (isset(
$_GET['pt']) && $n_row['uid'] == $user['id']) {
            if (
$count_pt $sys['system']['ft_limit'] || $n_row['top'] > time()) {
                if (isset(
$_POST['cancel'])) {
                    
header('Location: /forum/topic/'.$id); 
                }
                elseif (isset(
$_POST['ok'])) {

                    
$error '';

                    
$days intval(abs($_POST['days']));
                    
$sum $sys['system']['ft_cena'] * $days;

                    if (empty(
$days)) {
                        
$error.= 'Введите количество дней!<br/>';
                    }
                    elseif (
$user['money'] < $sum) {
                        
$error.= 'Недостаточно средств!<br/>';
                    }
                    if (
$error) {
                        echo 
'<div class="menu">'.$error.'</div>';
                    } else {

                        
$time $n_row['top'] > time() ? $n_row['top'] : time();
                        
$top_time $time 3600 24 $days;

                        if (
pay(-$sum$user['id']) && $top->execute(array($top_time$id))) {
                            
header('Location: /forum/topic/'.$id); 
                        } else {
                            echo 
'<div class="menu">Произошла ошибка!</div>';
                        }
                    }
                }
                echo 
'<div class="menu">
                <form action="" method="POST">
                Количество дней:<br/><input type="text" name="days"><br/>
                <input type="submit" name="ok" value="'
.($n_row['top'] > time() ? 'Продлить закрепление темы' 'Закрепить тему').'">
                <input type="submit" name="cancel" value="Отмена">
                <div class="chi">Стоимость: '
.quantDec($sys['system']['ft_cena'], ['рубль''рубля''рублей']).'/день</div>
                </form></div>'
;
            } else {
                echo 
'<div class="menu">
                Нет свободных мест!<br/>
                Следующее освободится: '
.daytime($ptrow['top']).'<br/>
                Всего мест: '
.$sys['system']['ft_limit'].'
                </div>'
;
            }
        }
        elseif (isset(
$_GET['unf']) && $n_row['top'] > time() && ($adm_id == || $adm_id == 5)) {
            if (isset(
$_POST['ok'])) {
                if (
$top->execute(array(0$id))) {
                    
header('Location: /forum/topic/'.$id); 
                } else {
                    echo 
'<div class="menu">Произошла ошибка!</div>';
                }
            }
            elseif (isset(
$_POST['cancel'])) {
                
header('Location: /forum/topic/'.$id);
            }
            echo 
'<div class="menu">
            <form action="" method="POST">
            <input type="submit" name="ok" value="Открепить тему">
            <input type="submit" name="cancel" value="Отмена">
            </form></div>'

        }
        elseif (isset(
$_GET['respect'])) {

            
$review = ($_GET['respect'] == 1);

            
$like->Like($review);

            
header('Location: /forum/topic/'.$id);

        }

        
/* Голосование */

        
$vote = new Vote($id$type, ($n_row['uid'] == $user['id']), '/forum/topic/'.$id);

        
// Вывод опроса
        
$vote->output();

        echo 
'<div class="menu">
        '
.nl2br(smiles(bb(bbyoutube(bblinks($n_row['text']))))).'<hr/>
        Автор: '
.profileLink($n_row['uid']).'<br/>
        Дата публикации: '
.daytime($n_row['time']).
        
$like->OutputLikes().'
        <div class="butt2">
        '
.($n_row['uid'] == $user['id'] && $n_row['status'] == && $count_files $sys['system']['forum_attach'] ? '<a href="?pictures">Прикрепить картинки</a><br/>' '').
        (
$adm_id == || $adm_id == '<a href="?del_n">Удалить</a>' '').
        (
$n_row['uid'] == $user['id'] && $n_row['status'] == && $count_comm == '<a href="?edit_n">Редактировать</a>' '').
        ((
$n_row['uid'] == $user['id'] || $adm_id == || $adm_id == || $adm_id == 5) ? '<a href="?kat">Перенести</a>' '').
        (
$n_row['uid'] == $user['id'] && $n_row['status'] == && $n_row['up'] < time() - 3600 $sys['system']['forum_up'] ? '<a href="?up">Поднять</a>' '').
        (
$n_row['uid'] == $user['id'] ? '<br/><a href="?pt">'.($n_row['top'] > time() ? 'Продлить закрепление темы' 'Закрепить тему').'</a>
        '
.($n_row['top'] > time() && ($adm_id == || $adm_id == 5) ? '<a href="?unf">Открепить тему</a>' '').
        (!
$vote->row '<br/><a href="?vote">Создать опрос</a>' '') : '').
        ((
$n_row['uid'] == $user['id'] || $adm_id == || $adm_id == || $adm_id == 5) && $n_row['status'] == '<a href="?close">Закрыть </a>' '').'
        </div>
        </div>'
;

        if (
$attach_files) {

            echo 
'<div class="menu">Прикреплённые файлы ('.$count_files.'):<br/>';

            foreach (
$attach_files as $key => $file) {

                echo 
iconFile($file).'<a data-noajax href="/files/'.basename($file).'">'.basename($file).'</a> ('.get_filesize($file).')'.($n_row['uid'] == $user['id'] ? '<a href="?del_file='.$key.'"><img src="/img/delete.png" alt="delete"></a>' '').'<br/>';

            }

            echo 
'</div>';

            if (
$n_row['uid'] == $user['id'])
                echo 
'<div class="forlink"><a href="?del_all_files" class="links"><img src="/img/delete.png" alt="delete">Удалить все файлы</a></div>';

        }

        if (
$n_row['uid'] == $user['id'] && $n_row['top'] > time())
            echo 
'<div class="menu">Тема закреплена до: '.date('d.m.Y H:i'$n_row['top']).'</div>';

        if (
$n_row['uid'] == $user['id'] && $n_row['status'] == && $n_row['up'] > time() - 3600 $sys['system']['forum_up'])
            echo 
'<div class="menu">Следующий UP через '.restime($n_row['up'] - time() + 3600 $sys['system']['forum_up']).'.</div>';

        
// Кто в теме?
        
$congestion congestion($_SERVER['PHP_SELF'], $id);
        if (
$congestion)
            echo 
'<div class="menu">Сейчас в теме ('.count($congestion).'): '.congestionOutputLinks($congestion25).'</div>';

        
/* Комментарии */

        
$c = new Comments($id$type$n_row['uid'], ($adm_id == || $adm_id == || $adm_id == 5), '/forum/topic/'.$id);

        if (
$n_row['status'] == 1) {

            
// Форма ввода
            
$c->InsertForm(

                
// добавление
                
'[b]'.$user['login'].'[/b] оставил комментарий в вашей теме на форуме [url='.ROOT.'/forum/topic/'.$id.']'.$n_row['name'].'[/url].',

                
// цитата
                
'[b]'.$user['login'].'[/b] процитировал ваше сообщение в [url='.ROOT.'/forum/topic/'.$id.']Теме на форуме[/url].',

                
//ответ
                
'[b]'.$user['login'].'[/b] ответил вам в [url='.ROOT.'/forum/topic/'.$id.']Теме на форуме[/url].',

                
true // разрешаем прикреплять картинки

            
);

        } else
            echo 
'<div class="menu">Тема закрыта!</div>';

        
// Модератору
        
$c->moder();

        
// Вывод комментариев
        
$c->output();

        if (
$krow)
            echo 
'<div class="forlink"><a href="/forum/category/'.$krow['id'].'" class="links"><img src="/img/top.png" alt="kat">'.$krow['name'].'</a></div>';

        echo 
'<div class="forlink"><a href="/forum" class="links" ><img src="/img/forum.png" alt="">Форум</a></div>';

    } else {
        
header('Location: /forum');
    }
} else {
    
header('Location: /');
}

require(
$_SERVER["DOCUMENT_ROOT"]."/inc/foot.php");
?>
Онлайн: 2
Реклама