197 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			197 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|  | <?php | ||
|  | if(!defined('DATALIFEENGINE')){die("Hacking attempt!");} | ||
|  | 	$act = $_REQUEST['act']; | ||
|  |      | ||
|  | 	require_once SYSTEM_DIR.'/forum/sources/components/init.php'; | ||
|  | 	 | ||
|  | 	switch ($act) | ||
|  | 	{ | ||
|  | 
 | ||
|  | // ********************************************************************************
 | ||
|  | // SHOW INDEX
 | ||
|  | // ********************************************************************************		
 | ||
|  | 		case "": | ||
|  | 		 | ||
|  | 		if ($forum_config['hide_forum']){ | ||
|  |             $access_hide = "and access_read regexp '[[:<:]](".$member_id['user_group'].")[[:>:]]'"; | ||
|  |         }else{ | ||
|  | 			$access_hide = ""; | ||
|  | 		} | ||
|  | 		 | ||
|  | 		$result_content = $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($result_content); $i = $row['sid']) | ||
|  | 		{ | ||
|  | 			if ($row['name']) | ||
|  | 			{ | ||
|  | 				if (!$fcache->open('sub-'.$row['id'])) | ||
|  | 				{ | ||
|  | 					if ($sub_forums_array != 'empty') | ||
|  | 					{ | ||
|  | 						foreach ($sub_forums_array as $value) | ||
|  | 						{ | ||
|  | 							if ($row['id'] == $value['parentid']) | ||
|  | 							{ | ||
|  | 								$symbol_count++; | ||
|  | 								 | ||
|  | 								if ($symbol_count > 1) $symbol = ", "; | ||
|  | 								 | ||
|  | 								$sub_forums .= link_forum($value['id'], $value['name'], $symbol); | ||
|  | 							} | ||
|  | 						} | ||
|  | 					} | ||
|  | 					 | ||
|  | 					$fcache->save('sub-'.$row['id'], $sub_forums); | ||
|  | 				} | ||
|  | 				else { $sub_forums = $fcache->open('sub-'.$row['id']); } | ||
|  | 				 | ||
|  | 				if (!$fcache->open('moder-'.$row['id'])) | ||
|  | 				{ | ||
|  | 					foreach ($forum_moderators as $moderators) | ||
|  | 					{ | ||
|  | 						if ($moderators['forum_id'] == $row['id'] and $moderators['member_name']) | ||
|  | 						{ | ||
|  | 							$mod_count++; | ||
|  | 							 | ||
|  | 							if ($mod_count > 1) $mod_symbol = ", "; | ||
|  | 							 | ||
|  | 							$moderators_list .= $mod_symbol . link_user($moderators['member_name']); | ||
|  | 						} | ||
|  | 					} | ||
|  | 					 | ||
|  | 					$fcache->save('moder-'.$row['id'], $moderators_list); | ||
|  | 				} | ||
|  | 				else { $moderators_list = $fcache->open('moder-'.$row['id']); } | ||
|  | 				 | ||
|  | 				$forum_link = link_forum($row['id'], $row['name']); | ||
|  | 				 | ||
|  | 				$tpl->load_template($tpl_dir.'forums.tpl'); | ||
|  | 
 | ||
|  |                 $tpl->set('{forum_id_rss}', $forum_url."/rss/forum_".$row['id'].".xml");				 | ||
|  | 				$tpl->set('{status}', forum_status ($row['f_last_date'], $row['password'], $row['icon']));				 | ||
|  | 				$tpl->set('{name}', $forum_link);				 | ||
|  | 				$tpl->set('{description}', stripslashes($row['description'])); | ||
|  | 				 | ||
|  | 				if ($sub_forums){$tpl->set('{forums}', '<br />' . $forum_config['forum_pr_sub'].' '.$sub_forums); | ||
|  | 				} else {$tpl->set('{forums}', '');}				 | ||
|  | 				if ($moderators_list){$tpl->set('{moderators}', '<br />' . $f_lang['moderators'] . ' ' . $moderators_list); | ||
|  | 				} else {$tpl->set('{moderators}', '');} | ||
|  | 				 | ||
|  | 				$tpl->set('{topics}', $row['topics']);				 | ||
|  | 				$tpl->set('{post}', $row['posts']);				 | ||
|  | 				$tpl->set('{last}', forum_last ($row['f_last_tid'], $row['f_last_title'], $row['f_last_poster_name'], $row['f_last_date'], $row['password'], $row['id'], $row['access_read'], $row['last_post_id'])); | ||
|  | 				 | ||
|  | 				$tpl->compile("forums_{$row['main_id']}");				 | ||
|  | 				$tpl->clear(); | ||
|  | 				 | ||
|  | 				unset ($sub_forums);				 | ||
|  | 				unset ($symbol_count);				 | ||
|  | 				unset ($symbol);				 | ||
|  | 				unset ($moderators_list);				 | ||
|  | 				unset ($mod_count);				 | ||
|  | 				unset ($mod_symbol); | ||
|  | 			} | ||
|  | 			 | ||
|  | 			if ($row['sid'] != $start_id){ | ||
|  | 				$category_link = link_category($start_id, $start_name);				 | ||
|  | 				$tpl->load_template($tpl_dir.'category.tpl');				 | ||
|  | 				$tpl->set('{category}', $category_link);				 | ||
|  | 				$tpl->set('{forums}', $tpl->result["forums_{$start_id}"]);				 | ||
|  | 				$tpl->compile('dle_forum');				 | ||
|  | 				$tpl->clear(); | ||
|  | 			} | ||
|  | 			 | ||
|  | 			$start_id = $row['sid'];			 | ||
|  | 			$start_name = stripslashes($row['cat_name']); | ||
|  | 		} | ||
|  | 		 | ||
|  | 		$category_link = link_category($start_id, $start_name); | ||
|  | 		 | ||
|  | 		$tpl->load_template($tpl_dir.'category.tpl'); | ||
|  | 		 | ||
|  | 		$tpl->set('{category}', $category_link);		 | ||
|  | 		$tpl->set('{forums}', $tpl->result["forums_{$start_id}"]); | ||
|  | 		 | ||
|  | 		$tpl->compile('dle_forum');		 | ||
|  | 		$tpl->clear(); | ||
|  | 		 | ||
|  | 		if ($forum_config['stats']){require_once SYSTEM_DIR.'/forum/sources/modules/stats.php';} | ||
|  | 		 | ||
|  | 		break; | ||
|  | 
 | ||
|  | 		case "category":		require_once SYSTEM_DIR.'/forum/sources/category.php';				break; | ||
|  | 		case "forum":			require_once SYSTEM_DIR.'/forum/sources/showforum.php';				break; | ||
|  | 		case "topic":			require_once SYSTEM_DIR.'/forum/sources/showtopic.php';				break;		 | ||
|  | 		case "add_topic":		require_once SYSTEM_DIR.'/forum/action/addtopic.php';				break; | ||
|  | 		case "getforum":		require_once SYSTEM_DIR.'/forum/action/forum.php';					break; | ||
|  | 		case "getnew":			require_once SYSTEM_DIR.'/forum/sources/modules/getnew.php';		break; | ||
|  | 		case "search":			require_once SYSTEM_DIR.'/forum/sources/modules/search.php';		break; | ||
|  | 		case "subscription":	require_once SYSTEM_DIR.'/forum/sources/modules/subscription.php';	break; | ||
|  | 		case "moderation":		require_once SYSTEM_DIR.'/forum/action/moderation.php';				break; | ||
|  | 		case "post":			require_once SYSTEM_DIR.'/forum/action/post.php';					break; | ||
|  | 		case "_topic":			require_once SYSTEM_DIR.'/forum/action/topic.php';					break; | ||
|  |         case "user_posts":		require_once SYSTEM_DIR.'/forum/sources/shapeshifter/forum_posts.php';	break; | ||
|  | 
 | ||
|  | // ********************************************************************************
 | ||
|  | // ATTACHMENT
 | ||
|  | // ********************************************************************************	
 | ||
|  | 		case "attachment": | ||
|  | 		$file_id = intval($_REQUEST['id']); | ||
|  | 		if ($file_id) | ||
|  | 		{ | ||
|  | 			$row = $db->super_query("SELECT * FROM " . PREFIX . "_forum_files WHERE file_id = '$file_id'"); | ||
|  | 			 | ||
|  | 			if ($row['file_id']) | ||
|  | 			{ | ||
|  | 				if (count($forums_array)) | ||
|  | 				{ | ||
|  | 					$access_download = $forums_array[$row['forum_id']]['access_download']; | ||
|  | 					 | ||
|  | 					if (check_access($access_download)) | ||
|  | 					{ | ||
|  | 						if ($row['file_type'] == "file"){ | ||
|  | 							$FILE_DIR = "files"; | ||
|  | 						} else { | ||
|  | 							$FILE_DIR = "images"; | ||
|  | 						} | ||
|  | 						 | ||
|  | 						$db->query("UPDATE " . PREFIX . "_forum_files SET dcount = dcount+1 WHERE file_id = '$file_id'"); | ||
|  | 						@header("Location: {$config['http_home_url']}uploads/forum/{$FILE_DIR}/{$row['onserver']}"); | ||
|  | 					} | ||
|  | 					else | ||
|  | 					{ | ||
|  | 						$group_name = $user_group[$member_id['user_group']]['group_name']; | ||
|  | 						forum_msg($f_lang['f_msg'], $f_lang['forum_down'], 'user_group', $group_name); | ||
|  | 					} | ||
|  | 				} | ||
|  | 			} | ||
|  | 			else | ||
|  | 			{ | ||
|  | 				@header("HTTP/1.0 404 Not Found"); | ||
|  | 				forum_msg($f_lang['f_msg'], $f_lang['f_404']); | ||
|  | 			} | ||
|  | 		} | ||
|  | 		 | ||
|  | 		else | ||
|  | 		{ | ||
|  | 			@header("HTTP/1.0 404 Not Found"); | ||
|  | 			forum_msg($f_lang['f_msg'], $f_lang['f_404']); | ||
|  | 		} | ||
|  | 		break; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	if ($forum_config['forum_bar']) | ||
|  | 	{ | ||
|  | 		$forum_bar = "<a href=\"{$forum_url}/\">".$forum_config['forum_title']."</a>"; | ||
|  | 		if ($bbr_cid and $bbr_name){$forum_bar .= " » ".link_category($bbr_cid, $bbr_name);} | ||
|  | 		if ($bbr_fname and $bbr_fid){$forum_bar .= " » ".link_forum($bbr_fid, $bbr_fname);} | ||
|  | 		if ($bbr_tname and $bbr_tid){$forum_bar .= " » ".link_topic($bbr_tid, $bbr_tname);} | ||
|  | 		if ($bbr_app){$forum_bar .= " » ".$bbr_app."</a>";} | ||
|  | 		$forum_bar = stripslashes($forum_bar); | ||
|  | 	} | ||
|  | 	 | ||
|  | 	if (!defined('FORUM_SUB_DOMAIN')){require_once SYSTEM_DIR . $compile_php;} | ||
|  | 
 | ||
|  | 	if ($forum_config['meta_descr'] and !$meta_topic){$metatags['description'] = $forum_config['meta_descr'];} | ||
|  | 	if ($forum_config['meta_keywords'] and !$meta_topic){$metatags['keywords'] = $forum_config['meta_keywords'];} | ||
|  | ?>
 |