428 lines
12 KiB
PHP
428 lines
12 KiB
PHP
|
<?php
|
||
|
@session_start();
|
||
|
@error_reporting(E_ALL ^ E_NOTICE);
|
||
|
@ini_set('display_errors', true);
|
||
|
@ini_set('html_errors', false);
|
||
|
|
||
|
define('DATALIFEENGINE', true);
|
||
|
|
||
|
if(!defined('FORUM_SUB_DOMAIN')){define('ROOT_DIR', '../..');}
|
||
|
|
||
|
define('SYSTEM_DIR', ROOT_DIR.'/system');
|
||
|
|
||
|
include SYSTEM_DIR.'/data/config.php';
|
||
|
include SYSTEM_DIR.'/data/forum_config.php';
|
||
|
|
||
|
$_TIME = time()+($config['date_adjust']*60);
|
||
|
|
||
|
$tpl = array();
|
||
|
|
||
|
$tpl['charset'] = $config['charset'];
|
||
|
|
||
|
include_once ROOT_DIR.'/language/'.$config['langs'].'/website.lng';
|
||
|
require_once SYSTEM_DIR.'/modules/functions.php';
|
||
|
require_once SYSTEM_DIR.'/classes/mysql.php';
|
||
|
require_once SYSTEM_DIR.'/data/dbconfig.php';
|
||
|
require_once SYSTEM_DIR.'/forum/sources/components/init.php';
|
||
|
require_once SYSTEM_DIR.'/forum/sources/components/text_skin.php';
|
||
|
|
||
|
// ********************************************************************************
|
||
|
// FORUM URL
|
||
|
// ********************************************************************************
|
||
|
if (!$forum_config['forum_url'])
|
||
|
{
|
||
|
$forum_url = $config['http_home_url']."forum";
|
||
|
|
||
|
$txt_url = $config['http_home_url']."forum/textversion.html";
|
||
|
|
||
|
$a_forum_url = $config['http_home_url']."index.php?do=forum&";
|
||
|
}
|
||
|
|
||
|
else
|
||
|
{
|
||
|
$forum_url = $forum_config['forum_url'];
|
||
|
|
||
|
$txt_url = $forum_config['forum_url']."/textversion.html";
|
||
|
|
||
|
$a_forum_url = $forum_config['forum_url']."/index.php?";
|
||
|
}
|
||
|
|
||
|
$c_url = $forum_url.'/category_';
|
||
|
|
||
|
$f_url = $forum_url.'/forum_';
|
||
|
|
||
|
$t_url = $forum_url.'/topic_';
|
||
|
|
||
|
// ********************************************************************************
|
||
|
// USER GROUP
|
||
|
// ********************************************************************************
|
||
|
$user_group = $cache->get ("usergroup");
|
||
|
if (!$user_group){
|
||
|
$user_group = array ();
|
||
|
$db->query("SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC");
|
||
|
while($row = $db->get_row())
|
||
|
{
|
||
|
$user_group[$row['id']] = array ();
|
||
|
foreach ($row as $key => $value){$user_group[$row['id']][$key] = $value;}
|
||
|
}
|
||
|
$cache->set ("usergroup", $user_group);
|
||
|
$db->free();
|
||
|
}
|
||
|
|
||
|
require_once SYSTEM_DIR.'/modules/sitelogin.php';
|
||
|
|
||
|
if (!$is_logged){$member_id['user_group'] = 5;}
|
||
|
|
||
|
function get_attachment ($tid, $sourse){
|
||
|
global $db, $a_forum_url;
|
||
|
|
||
|
$get_attachment = $db->query("SELECT * FROM " . PREFIX . "_forum_files WHERE topic_id = '$tid' and file_attach = '1'");
|
||
|
|
||
|
while ($row = $db->get_row($get_attachment))
|
||
|
{
|
||
|
if ($row['file_type'] == "image")
|
||
|
{
|
||
|
$img_full = $config['http_home_url'].'uploads/forum/images/'.$row['onserver'];
|
||
|
$attachment = "<img src=\"{$img_full}\" border=\"0\">";
|
||
|
}
|
||
|
|
||
|
elseif ($row['file_type'] == "thumb")
|
||
|
{
|
||
|
$img_full = $config['http_home_url'].'uploads/forum/images/'.$row['onserver'];
|
||
|
$img_thumb = $config['http_home_url'].'uploads/forum/thumbs/'.$row['onserver'];
|
||
|
$attachment = "<a href=\"{$img_full}\"><img src=\"{$img_thumb}\" border=\"0\"></a>";
|
||
|
}else{
|
||
|
$attachment_down = $a_forum_url."act=attachment&id=".$row['file_id'];
|
||
|
$attachment = "<a href=\"$attachment_down\">{$row['file_name']}</a> ({$row['dcount']} | ".mksize($row['file_size']).")";
|
||
|
}
|
||
|
$sourse = str_replace('[attachment='.$row['file_id'].']', $attachment, $sourse);
|
||
|
}
|
||
|
return $sourse;
|
||
|
}
|
||
|
|
||
|
function not_access(){
|
||
|
global $txt_url;
|
||
|
@header ("Location: $txt_url");
|
||
|
}
|
||
|
|
||
|
$forum_config['topic_inpage'] = 150;
|
||
|
$forum_config['post_inpage'] = 50;
|
||
|
|
||
|
// ********************************************************************************
|
||
|
// TEXT VERSION
|
||
|
// ********************************************************************************
|
||
|
$main_string = parse_url($_SERVER['REQUEST_URI']);
|
||
|
|
||
|
$main_string = $main_string['query'];
|
||
|
|
||
|
$act = '';
|
||
|
$id = 0;
|
||
|
$cstart = 0;
|
||
|
|
||
|
$category_name = 0;
|
||
|
$category_id = 0;
|
||
|
$forum_name = 0;
|
||
|
|
||
|
if (strstr($main_string, "-")){
|
||
|
list($main, $start) = explode("-", $main_string);
|
||
|
|
||
|
$main_string = $main;
|
||
|
$cstart = $start;
|
||
|
}
|
||
|
|
||
|
if (preg_match( "#c\d#", $main_string)){
|
||
|
$act = "category";
|
||
|
|
||
|
$id = intval( preg_replace( "#c(\d+)#", "\\1", $main_string ) );
|
||
|
}
|
||
|
|
||
|
if (preg_match( "#f\d#", $main_string)){
|
||
|
$act = "forum";
|
||
|
|
||
|
$id = intval( preg_replace( "#f(\d+)#", "\\1", $main_string ) );
|
||
|
}
|
||
|
|
||
|
if (preg_match( "#t\d#", $main_string)){
|
||
|
$act = "topic";
|
||
|
|
||
|
$id = intval( preg_replace( "#t(\d+)#", "\\1", $main_string ) );
|
||
|
}
|
||
|
|
||
|
switch ($act)
|
||
|
{
|
||
|
// ********************************************************************************
|
||
|
// SHOW CATEGORY
|
||
|
// ********************************************************************************
|
||
|
case "category":
|
||
|
|
||
|
$category_id = $id;
|
||
|
|
||
|
if ($forum_config['hide_forum']) $access_hide = "and access_read regexp '[[:<:]](".$member_id['user_group'].")[[:>:]]'";
|
||
|
|
||
|
else $access_hide = "";
|
||
|
|
||
|
$category_name = $cats_array[$id]['cat_name'];
|
||
|
|
||
|
if ($id and $category_name)
|
||
|
{
|
||
|
$result = $db->query("SELECT * FROM ". PREFIX ."_forum_forums WHERE main_id = '$id' and parentid = '0' {$access_hide} ORDER by position");
|
||
|
|
||
|
$tpl['content'] .= tpl_category ($id, $category_name);
|
||
|
|
||
|
while ($row = $db->get_row($result))
|
||
|
{
|
||
|
$sub_forums = "";
|
||
|
|
||
|
if ($sub_forums_array != 'empty')
|
||
|
{
|
||
|
foreach ($sub_forums_array as $value)
|
||
|
{
|
||
|
if ($row['id'] == $value['parentid'])
|
||
|
{
|
||
|
$sub_forums .= tpl_forum_sub ($value['id'], $value['name']);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tpl['content'] .= tpl_forum ($row['id'], $row['name'], $row['posts'], $sub_forums);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tpl['content'] = tpl_forums_page ($tpl['content']);
|
||
|
|
||
|
$tpl['content'] .= tpl_category_end ();
|
||
|
|
||
|
$tpl['title'] = $forum_config['forum_title'] .' > '. $category_name;
|
||
|
|
||
|
$tpl['full_version'] = $category_name;
|
||
|
|
||
|
$tpl['full_version_link'] = $c_url . $id;
|
||
|
|
||
|
break;
|
||
|
|
||
|
// ********************************************************************************
|
||
|
// SHOW FORUM
|
||
|
// ********************************************************************************
|
||
|
case "forum":
|
||
|
|
||
|
if ($cstart){
|
||
|
$cstart = $cstart - 1;
|
||
|
$cstart = $cstart * $forum_config['topic_inpage'];
|
||
|
}
|
||
|
|
||
|
if ($forum_config['topic_sort'])
|
||
|
{
|
||
|
$sort_type = "last_date";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$sort_type = "tid";
|
||
|
}
|
||
|
|
||
|
if ($id)
|
||
|
{
|
||
|
$row_forum = $db->super_query("SELECT * FROM " . PREFIX . "_forum_forums WHERE id = '$id'");
|
||
|
|
||
|
$check_read = check_access($row_forum['access_read']);
|
||
|
|
||
|
$forum_name = $row_forum['name'];
|
||
|
|
||
|
$password = $row_forum['password'];
|
||
|
|
||
|
$category_id = $row_forum['main_id'];
|
||
|
|
||
|
$count_all = $row_forum['topics'];
|
||
|
|
||
|
if ($password)
|
||
|
{
|
||
|
$forum_cookie = $_COOKIE["dle_forum_{$fid}"];
|
||
|
|
||
|
unset ($check_read);
|
||
|
|
||
|
if (md5($password) == $forum_cookie)
|
||
|
{
|
||
|
$check_read = true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ($check_read and $count_all)
|
||
|
{
|
||
|
$db->query("SELECT * FROM " . PREFIX . "_forum_topics WHERE forum_id = '$id' ".$WHERE." ORDER BY fixed, ".$sort_type." DESC LIMIT ".$cstart.",".$forum_config['topic_inpage']."");
|
||
|
|
||
|
while ($row = $db->get_row())
|
||
|
{
|
||
|
if ($row['hidden']) $n_pre = $forum_config['forum_pr_modr'].' ';
|
||
|
|
||
|
elseif (!$row['fixed']) $n_pre = $forum_config['forum_pr_imp'].' ';
|
||
|
|
||
|
elseif ($row['frage']) $n_pre = $forum_config['forum_pr_vote'].' ';
|
||
|
|
||
|
else $n_pre = '';
|
||
|
|
||
|
$tpl['content'] .= tpl_topic_list ($row['tid'], $n_pre, $row['title'], $row['post']);
|
||
|
}
|
||
|
|
||
|
if ($count_all > $forum_config['topic_inpage'])
|
||
|
{
|
||
|
$tpl['pages'] = tpl_pages ($cstart, $count_all, $forum_config['topic_inpage'], "?f{$id}");
|
||
|
}
|
||
|
|
||
|
$tpl['content'] = tpl_forum_page ($tpl['content']);
|
||
|
}
|
||
|
|
||
|
else
|
||
|
{
|
||
|
not_access();
|
||
|
}
|
||
|
|
||
|
$tpl['title'] = $forum_config['forum_title'] .' > '. $forum_name;
|
||
|
|
||
|
$tpl['full_version'] = $forum_name;
|
||
|
|
||
|
$tpl['full_version_link'] = $f_url . $id;
|
||
|
|
||
|
$category_name = $cats_array[$category_id]['cat_name'];
|
||
|
}
|
||
|
|
||
|
else
|
||
|
{
|
||
|
not_access();
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
// ********************************************************************************
|
||
|
// SHOW TOPIC
|
||
|
// ********************************************************************************
|
||
|
case "topic":
|
||
|
|
||
|
if ($cstart){
|
||
|
$cstart = $cstart - 1;
|
||
|
$cstart = $cstart * $forum_config['post_inpage'];
|
||
|
}
|
||
|
|
||
|
if ($id){
|
||
|
$row_topic = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = '$id'");
|
||
|
$forum_id = $row_topic['forum_id'];
|
||
|
$forum_name = $forums_array[$forum_id]['name'];
|
||
|
$check_read = check_access($forums_array[$forum_id]['access_read']);
|
||
|
}
|
||
|
|
||
|
if ($row_topic['tid'] and $check_read and !$row_topic['hidden']){
|
||
|
$result_posts = $db->query("SELECT p.*, u.* FROM " . PREFIX . "_forum_posts AS p LEFT JOIN " . USERPREFIX . "_users AS u ON p.post_author=u.name WHERE p.topic_id = '$id' ORDER by pid LIMIT ".$cstart.",".$forum_config['post_inpage']."");
|
||
|
|
||
|
$count_all = ($row_topic['post'] + 1);
|
||
|
|
||
|
if ($count_all)
|
||
|
{
|
||
|
while ($row = $db->get_row ($result_posts))
|
||
|
{
|
||
|
if ($row['hidden'])
|
||
|
{
|
||
|
$row['post_text'] = " ";
|
||
|
}
|
||
|
|
||
|
if( $user_group[$member_id['user_group']]['allow_hide'] ) $row['post_text'] = preg_replace( "'\[hide\](.*?)\[/hide\]'si", "\\1", $row['post_text']);
|
||
|
else $row['post_text'] = preg_replace ( "'\[hide\](.*?)\[/hide\]'si", "<div class=\"quote\">" . $lang['news_regus'] . "</div>", $row['post_text'] );
|
||
|
$row['post_text'] = preg_replace ( "'\[group=(.*?)\](.*?)\[/group\]'sie",'group_hide($1,"\\2")', $row['post_text']);
|
||
|
|
||
|
$row['post_date'] = strtotime($row['post_date']);
|
||
|
|
||
|
$tpl['content'] .= tpl_post ($row['post_text'], $row['post_author'], show_date($row['post_date']));
|
||
|
}
|
||
|
|
||
|
if (stristr ($tpl['content'], "[attachment="))
|
||
|
{
|
||
|
$tpl['content'] = get_attachment ($id, $tpl['content']);
|
||
|
}
|
||
|
|
||
|
if ($count_all > $forum_config['post_inpage'])
|
||
|
{
|
||
|
$tpl['pages'] = tpl_pages ($cstart, $count_all, $forum_config['post_inpage'], "?t{$id}");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
else
|
||
|
{
|
||
|
not_access();
|
||
|
}
|
||
|
|
||
|
$tpl['title'] = $forum_config['forum_title'] .' > '. $row_topic['title'];
|
||
|
|
||
|
$tpl['full_version'] = $row_topic['title'];
|
||
|
|
||
|
$tpl['full_version_link'] = $t_url . $id;
|
||
|
|
||
|
$category_id = $forums_array[$forum_id]['main_id'];
|
||
|
|
||
|
$category_name = $cats_array[$category_id]['cat_name'];
|
||
|
}
|
||
|
|
||
|
else
|
||
|
{
|
||
|
not_access();
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
// ********************************************************************************
|
||
|
// SHOW INDEX
|
||
|
// ********************************************************************************
|
||
|
default:
|
||
|
|
||
|
if ($forum_config['hide_forum']) $access_hide = "and access_read regexp '[[:<:]](".$member_id['user_group'].")[[:>:]]'";
|
||
|
|
||
|
else $access_hide = "";
|
||
|
|
||
|
$db->query("SELECT * FROM " . PREFIX . "_forum_category LEFT JOIN ". PREFIX ."_forum_forums ON ". PREFIX ."_forum_category.sid= ". PREFIX ."_forum_forums.main_id WHERE parentid = '0' {$access_hide} ORDER BY posi, position");
|
||
|
|
||
|
for ($i = 0; $row = $db->get_row(); $i = $row['sid'])
|
||
|
{
|
||
|
$count++;
|
||
|
|
||
|
if ($row['sid'] != $i)
|
||
|
{
|
||
|
if ($count > 1)
|
||
|
{
|
||
|
$tpl['content'] .= tpl_category_end ();
|
||
|
}
|
||
|
|
||
|
$tpl['content'] .= tpl_category ($row['main_id'], $row['cat_name']);
|
||
|
}
|
||
|
|
||
|
if ($row['name'])
|
||
|
{
|
||
|
$sub_forums = "";
|
||
|
|
||
|
if ($sub_forums_array != 'empty')
|
||
|
{
|
||
|
foreach ($sub_forums_array as $value)
|
||
|
{
|
||
|
if ($row['id'] == $value['parentid'])
|
||
|
{
|
||
|
$sub_forums .= tpl_forum_sub ($value['id'], $value['name']);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tpl['content'] .= tpl_forum ($row['id'], $row['name'], $row['posts'], $sub_forums);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tpl['content'] = tpl_forums_page ($tpl['content']);
|
||
|
$tpl['title'] = $forum_config['forum_title'];
|
||
|
$tpl['full_version'] = $forum_config['forum_title'];
|
||
|
$tpl['full_version_link'] = $forum_url;
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
$tpl['nav'] = "<a href='{$txt_url}'>{$forum_config['forum_title']}</a>";
|
||
|
|
||
|
if ($category_name){$tpl['nav'] = $tpl['nav'] . " > <a href='{$txt_url}?c{$category_id}'>{$category_name}</a>";}
|
||
|
if ($forum_name){$tpl['nav'] = $tpl['nav'] . " > <a href='{$txt_url}?f{$id}'>{$forum_name}</a>";}
|
||
|
|
||
|
tpl_main ($tpl);
|
||
|
|
||
|
?>
|