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); | ||
|  | 	 | ||
|  | ?>
 |