<?php
# Forum by seg0ro (http://mobilarts.ru)
include '../engine/includes/start.php';
require_once ('includes/functions.php');
include_once 'includes/journal.php';
$set['title'] = 'Форум';
$i = 1;
Core::get(array('page.class', 'text.class'), 'classes');
if ($forum){
$sql->query("SELECT * FROM `forum_forums` WHERE `id` = '$forum' LIMIT 1 ");
if (!$sql->num_rows()){
include H . 'engine/includes/head.php';
echo Core::msg_show('Такого форума не существует!<br /><a href="index.php">Форум</a>');
include H . 'engine/includes/foot.php';
}
$forumRes = $sql->fetch();
if ($forumRes['refid'])
$forumRefid = $sql->query("SELECT `name` FROM `forum_forums` WHERE `id` = '".$forumRes['refid']."' LIMIT 1 ")->fetch();
$set['title'] = htmlspecialchars($forumRes['name']);
}
if($topic){
$topicReq = $sql->query("SELECT * FROM `forum_topics` WHERE `id` = '$topic' LIMIT 1 ");
if (!$sql->num_rows()){
include H . 'engine/includes/head.php';
echo Core::msg_show('Такой темы не существует!<br /><a href="index.php">Форум</a>');
include H . 'engine/includes/foot.php';
}
$topicRes = $sql->fetch();
if (!empty($topicRes['poll_name'])){
$pollReq = mysqli_query($sql->db, "SELECT * FROM `forum_polls` WHERE `refid` = '$topic' ORDER BY `id` ASC LIMIT 20 ");
$pollSet = unserialize($topicRes['poll_set']);
}
$set['title'] = htmlspecialchars($topicRes['name']);
if($post){
$sql->query("SELECT * FROM `forum_posts` WHERE `id` = '$post' LIMIT 1 ");
if (!$sql->num_rows()){
include H . 'engine/includes/head.php';
echo Core::msg_show('Такого поста не существует!<br /><a href="index.php">Форум</a>');
include H . 'engine/includes/foot.php';
}
$postRes = $sql->fetch();
$set['title'] = htmlspecialchars($topicRes['name']).' | Пост: '.$post;
}else{
$topicRefid = $sql->query("SELECT `id`, `refid`, `name` FROM `forum_forums` WHERE `id` = '".$topicRes['refid']."' LIMIT 1 ")->result();
}
if ($user_id && $topicRes['curator'] == $user_id)
$rights = 3;
}
if($file){
$fileReq = mysqli_query($sql->db, "SELECT * FROM `forum_files` WHERE `id` = '$file' LIMIT 1 ");
if (!mysqli_num_rows($fileReq)){
include H . 'engine/includes/head.php';
echo Core::msg_show('Такого файла не существует!<br /><a href="index.php">Форум</a>');
include H . 'engine/includes/foot.php';
}
$fileRes = mysqli_fetch_assoc($fileReq);
$fileRefid = $sql->query("SELECT `id`, `name`, `close` FROM `forum_topics` WHERE `id` = '".$fileRes['topic']."' LIMIT 1 ")->fetch();
$set['title'] = title($fileRefid['name']).' | Файл: '.$file;
}
$arrayIncludes = array('addforum', 'addpost', 'addtopic', 'clean', 'delfile', 'delforum', 'delpoll', 'delpost', 'deltopic', 'download', 'editforum', 'editpost', 'edittopic', 'files', 'last', 'loadtopic', 'massdelpost', 'movetopic', 'moveforum', 'my', 'onforum', 'poll', 'polled', 'rating', 'search');
if (in_array($act, $arrayIncludes) && file_exists('includes/'.$act.'.php')){
require_once ('includes/'.$act.'.php');
}else{
include H . 'engine/includes/head.php';
if ($topic){
if (isset($_GET['unread'])){
$resReaded = $sql->query("SELECT `time`, `lastpost` FROM `forum_readed` WHERE `topic` = '$topic' AND `user_id` = '$user_id' LIMIT 1 ")->fetch();
if ($resReaded['time'] && $resReaded['lastpost'] > 0){
$gopage = ceil($sql->query("SELECT COUNT(*) FROM `forum_posts` WHERE `refid` = '$topic' AND `id` <= '".$resReaded['lastpost']."' ")->result() / $set['p_str']);
header ('Location: index.php?topic='.$topic.'&page='.$gopage.'#p'.$resReaded['lastpost']);
}else{
header ('Location: index.php?topic='.$topic);
}
include H . 'engine/includes/foot.php';
}
require_once('includes/showtopic.php');
include H . 'engine/includes/foot.php';
}
if ($post){
$sql->query("SELECT `refid` FROM `forum_posts` WHERE `id` = '$post' LIMIT 1 ");
if (!$sql->num_rows()){
include H . 'engine/includes/head.php';
echo Core::msg_show('Такого поста не существует!<br /><a href="index.php">Форум</a>');
include H . 'engine/includes/foot.php';
}
$postRes = $sql->fetch();
$go = ceil(($sql->query("SELECT COUNT(*) FROM `forum_posts` WHERE `refid` = '".$postRes['refid']."' AND `id` <= '$post' ")->result()) / $set['p_str']);
header('Location: index.php?topic='.$postRes['refid'].'&page='.$go.'#p'.$post);
include H . 'engine/includes/foot.php';
}
if ($admin)
echo '
<script language="JavaScript" type="text/javascript">function show_hide(elem) {
obj = document.getElementById(elem);
if(obj.style.display == "none") obj.style.display = "inline";
else obj.style.display = "none";
}</script>
';
if ($forum){
if ($forumRes['refid'])
$tree = array('<a href="index.php">Форум</a>', '<a href="index.php?forum='.$forumRes['refid'].'">'.text::output($forumRefid['name']).'</a>', text::output($forumRes['name']));
else
$tree = array('<a href="index.php">Форум</a>', text::output($forumRes['name']));
}else{
$tree = array('Форум');
$total = $sql->query("SELECT * FROM `forum_forums` WHERE `refid` < '1' ORDER BY `realid` ASC ")->num_rows();
}
echo forum_counter();
echo '<div class="fmenu">';
foreach ($tree as $menu)
{
echo $menu . ' ';
}
echo '</div>';
if ($user_id && $forum && $forumRes['type'] == 1)
echo '<div class="msg"><a href="index.php?act=addtopic&forum='.$forum.'">Новая тема</a></div>';
if ($forum){
if ($forumRes['type'] == 1){
$total = $sql->query("SELECT COUNT(*) FROM `forum_topics` WHERE `refid` = '$forum' ")->result();
$page = new page($total, $set['p_str']);
if ($total){
$sql->query("SELECT * FROM `forum_topics` WHERE `refid` = '$forum' ORDER BY `time` DESC LIMIT ".$page->limit()); // `sticky` DESC,
if ($page->k_page() > 5)
$page->display('index.php?forum='.$forum.'&');
while ($res = $sql->fetch()){
echo $i % 2 ? '<div class="p_t">' : '<div class="p_m">';
$sub = 'Автор: '.$res['user'];
if ($res['count'] > 1){
$lastPost = explode(':|:', $res['lastpost']);
$sub .= ' <a href="index.php?post='.$lastPost[1].'">Посл.</a>: '.$lastPost[0];
}
$sub .= ' '.Core::time($res['time']).'<br />';
echo show_topic($res, $sub);
echo '</div>';
++$i;
}
echo '<div class="fmenu">Тем: '.$total.'</div>';
$page->display('index.php?forum='.$forum.'&');
}else{
echo '<div class="p_m">Пусто</div>';
}
$adm = '<a href="index.php?act=editforum&forum='.$forum.'">Изменить форум</a>';
}else{
$req = $sql->query("SELECT * FROM `forum_forums` WHERE `refid` = '$forum' ORDER BY `realid` ASC ");
$total = $sql->num_rows();
if ($total){
while ($res = $sql->fetch()){
echo $i % 2 ? '<div class="p_t">' : '<div class="p_m">';
echo show_folder($res);
echo '</div>';
++$i;
}
echo '<div class="fmenu">Подфорумов: '.$total.'</div>';
}else{
echo '<div class="post">Пусто</div>';
}
$adm = '<a href="index.php?act=addforum&forum='.$forum.'">Создать подфорум</a><br /><a href="index.php?act=editforum&forum='.$forum.'">Изменить форум</a>';
}
}
else
{
$total = $sql->query("SELECT COUNT(*) FROM `forum_forums` WHERE `refid` = '$forum'")->result();
$page = new page($total, $set['p_str']);
$sql->query("SELECT * FROM `forum_forums` WHERE `refid` = '$forum' ORDER BY `id` DESC LIMIT ". $page->limit());
if($total){
while ($res = $sql->fetch()){
echo $i % 2 ? '<div class="p_t">' : '<div class="p_m">';
echo show_folder($res);
echo '</div>';
++$i;
}
$topics = $sql->query("SELECT COUNT(*) FROM `forum_topics` ")->result();
$posts = $sql->query("SELECT COUNT(*) FROM `forum_posts` ")->result();
echo '<div class="fmenu">Тем: '.$topics.', Сообщений: '.$posts.'</div>';
}else{
echo '<div class="p_m">Пусто</div>';
}
$adm = '<a href="index.php?act=addforum">Создать форум</a><br /><a href="index.php?act=clean">Чистка форума</a>';
}
echo '<div class="menu"><a href="index.php?act=search">Поиск</a><br /><a href="index.php?act=files">Файлы форума</a></div>';
if ($forum && $forumRes['type'] == 1){
echo '<p><img src="images/new.png" alt="+" title="Есть новые сообщения" /> Есть новые сообщения <small>(только для зарегистрированых)</small><br />
<img src="images/sticky.png" alt="^" title="Тема закреплена" /> Прикреплённая тема<br />
<img src="images/close.png" alt="#" title="Тема закрыта" /> Закрытая тема<br />
<img src="images/poll.png" alt="*" title="Голосование" /> В теме есть голосование</p>';
}
if ($admin)
echo '<div class="menu">'.$adm.'</div>';
}
include H . 'engine/includes/foot.php';