sibtracker/system/forum/sources/showforum.php
2019-05-18 13:46:03 +08:00

328 lines
12 KiB
PHP

<?php
if(!defined('DATALIFEENGINE')){die("Hacking attempt!");}
if (intval($fid))
{
$row_forum = $db->super_query("SELECT * FROM " . PREFIX . "_forum_forums WHERE id = $fid");
$check_moderator = check_moderator($row_forum['access_mod'], $row_forum['moderators']);
$check_read = check_access($row_forum['access_read']);
if ($check_moderator){$mass_prune = moderator_value('mass_prune', $fid, $m_member);}
// ********************************************************************************
// PASSWORD
// ********************************************************************************
$password = $row_forum['password'];
if ($password)
{
$forum_cookie = $_COOKIE["dle_forum_{$fid}"];
unset ($check_read); // âõîä ïî ïàðîëþ äëÿ âñåõ
if ($_REQUEST['password']){
if ($password == $_REQUEST['password']){
set_cookie ("dle_forum_{$fid}", md5($_REQUEST['password']), 365);
$check_read = true;
}
} else {
if (md5($password) == $forum_cookie)
{
$check_read = true;
}
}
}
// ********************************************************************************
// SHOW FORUM
// ********************************************************************************
$c_id = $row_forum['main_id'];
if ($row_forum['id'] and $check_read)
{
$forum_name = stripslashes($row_forum['name']);
if ($sub_parentid[$fid] and $sub_parentid != 'empty')
{
if ($forum_config['hide_forum'])
{
$access_hide = "and access_read regexp '[[:<:]](".$member_id['user_group'].")[[:>:]]'";
} else
{
$access_hide = "";
}
$result = $db->query("SELECT * FROM ". PREFIX ."_forum_forums WHERE parentid = $fid {$access_hide} ORDER by position");
while ($row = $db->get_row($result))
{
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']); }
$tpl->load_template($tpl_dir.'forums.tpl');
$tpl->set('{status}', forum_status ($row['f_last_date'], $row['password'], $row['icon']));
$tpl->set('{name}', link_forum($row['id'], $row['name']));
$tpl->set('{description}', stripslashes($row['description']));
$tpl->set('{forum_id_rss}', $forum_url."/rss/forum_".$row['id'].".xml");
$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']));
$tpl->compile('forums');
$tpl->clear();
unset ($moderators_list);
unset ($mod_count);
unset ($mod_symbol);
}
$tpl->load_template($tpl_dir.'category.tpl');
$tpl->set('{category}', $forum_name.$f_lang['subforums']);
$tpl->set('{forums}', $tpl->result['forums']);
$tpl->compile('subforums');
$tpl->clear();
}
// ********************************************************************************
// TOPIC VIEWS
// ********************************************************************************
if ($is_logged){
$row_views = $db->query("SELECT topic_id FROM " . PREFIX . "_forum_views WHERE user_id = $member_id[user_id] and forum_id = $fid");
$topic_views = array();
while ($row = $db->get_row($row_views))
{
$topic_views[$row['topic_id']] = '1';
}
} else {
$row_views = explode(",", $_COOKIE['dle_forum_views']);
foreach ($row_views as $value)
{
$topic_views[$value] = '1';
}
}
// ********************************************************************************
// CSTART
// ********************************************************************************
if ($cstart){
$cstart = $cstart - 1;
$cstart = $cstart * $forum_config['topic_inpage'];
}
if ($forum_config['topic_sort']){
$sort_type = "last_date";
} else {
$sort_type = "tid";
}
// ********************************************************************************
// SWITCH
// ********************************************************************************
if (!$check_moderator) $q_hidden = " and hidden = 0"; else $q_hidden = "";
switch ($_REQUEST['code'])
{
// ********************************************************************************
// HIDDEN
// ********************************************************************************
case "hidden":
if ($check_moderator){
$WHERE = "and hidden = 1";
$get_count = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_topics WHERE forum_id = $fid and hidden = 1");
$count_all = $get_count['count'];
$icat = $a_forum_url."showforum={$fid}&code=hidden&cstart=";
} else {
break;
}
break;
// ********************************************************************************
// TODAY
// ********************************************************************************
case "today":
$today_date = date('Y-m-d');;
$WHERE = "{$q_hidden} and last_date >= DATE_ADD(NOW(), INTERVAL -1 DAY)";
$get_count = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_topics WHERE forum_id = $fid {$WHERE}");
$count_all = $get_count['count'];
$icat = $a_forum_url."showforum={$fid}&code=today&cstart=";
break;
// ********************************************************************************
// NOREPLY
// ********************************************************************************
case "noreply":
$WHERE = "{$q_hidden} and post = '0'";
$get_count = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_forum_topics WHERE forum_id = $fid {$WHERE}");
$count_all = $get_count['count'];
$icat = $a_forum_url."showforum={$fid}&code=noreply&cstart=";
break;
// ********************************************************************************
// SEARCH
// ********************************************************************************
case "search":
if ($_POST['search_text']){}
break;
// ********************************************************************************
// DEFAULT
// ********************************************************************************
default:
$count_all = $row_forum['topics'];
$icat = $forum_url."/forum_{$fid}/";
if (!$check_moderator) $WHERE = "and hidden = 0"; else $WHERE = "";
break;
}
// ********************************************************************************
// DLE Forum
// ********************************************************************************
$config_inpage = $forum_config['topic_inpage'];
$result_topics = $db->query("SELECT * FROM " . PREFIX . "_forum_topics WHERE forum_id = $fid ".$WHERE." ORDER BY fixed, ".$sort_type." DESC LIMIT ".$cstart.",".$forum_config['topic_inpage']."");
require_once SYSTEM_DIR.'/forum/sources/showtopics.php';
require_once SYSTEM_DIR.'/forum/sources/components/navigation.php';
if (!$is_topics){$msg_info = $f_lang['is_topics'];}
$tpl->load_template($tpl_dir.'forum.tpl');
$tpl->set('{banner}', stripslashes($row_forum['banner']));
$tpl->set('{forum}', $forum_name);
$tpl->set('{subforums}', $tpl->result["subforums"]);
$tpl->set('{info}', $msg_info);
if ($row_forum['rules_title']){
$tpl->set('[rules]',"");
$tpl->set('{rules-name}', $row_forum['rules_title']);
$tpl->set('{rules-text}', $row_forum['rules']);
$tpl->set('[/rules]',"");
} else {
$tpl->set_block("'\\[rules\\](.*?)\\[/rules\\]'si","");
}
if($is_logged){
$a_new_topic = $forum_url."/forum_{$fid}/add/";
$tpl->set('[new_topic]',"<a href=\"{$a_new_topic}\">");
$tpl->set('[/new_topic]',"</a>");
} else {
$tpl->set('[new_topic]',"");
$tpl->set('[/new_topic]',"");
}
$tpl->set('[options]',"<a onClick=\"return dropdownmenu(this, event, ForumMenu('$fid', '$check_moderator', '$a_forum_url'), '180px')\" onMouseout=\"delayhidemenu()\" href='#'\">");
$tpl->set('[/options]',"</a>");
$tpl->set('[fast-search]',"<form method=\"post\" action=\"{$a_forum_url}act=search&search_fid={$fid}\">");
$tpl->set('[/fast-search]',"</form>");
if ($mass_prune){
$tpl->set('[selected]',"");
$tpl->set('[/selected]',"");
$tpl->set('[moderation]',"<form name=\"modform\" method=\"post\" action=\"{$a_forum_url}act=moderation\">");
$moderation = "<select name=\"code\">";
$moderation .= "<option value=\"-1\">{$f_lang['mtf_op']}</option>";
$moderation .= "<option value=\"02\">{$f_lang['mtf_02']}</option>";
$moderation .= "<option value=\"01\">{$f_lang['mtf_01']}</option>";
$moderation .= "<option value=\"08\">{$f_lang['mtf_08']}</option>";
$moderation .= "<option value=\"09\">{$f_lang['mtf_09']}</option>";
$moderation .= "<option value=\"05\">{$f_lang['mtf_05']}</option>";
$moderation .= "<option value=\"07\">{$f_lang['mtf_07']}</option>";
$moderation .= "<option value=\"06\">{$f_lang['mtf_06']}</option>";
$moderation .= "<option value=\"03\">{$f_lang['mtf_03']}</option>";
$moderation .= "</select>";
$tpl->set('{moderation}', $moderation);
$tpl->set('[/moderation]',"<input type=\"hidden\" value=\"\" name=\"selected_id\" /></form>");
} else {
$tpl->set_block("'\\[selected\\](.*?)\\[/selected\\]'si","");
$tpl->set_block("'\\[moderation\\](.*?)\\[/moderation\\]'si","");
}
if ($forum_config['ses_forum'] and $forum_config['sessions_log']){
forum_sessions($fid);
get_forum_online("act_forum", $fid);
$tpl->set('[online]',"");
$tpl->set('{all_count}', $forum_online['all_count']);
$tpl->set('{guest_count}', $forum_online['guest_count']);
$tpl->set('{member_count}', $forum_online['member_count']);
$tpl->set('{member_list}', $forum_online['member_list']);
$tpl->set('[/online]',"");
} else {
$tpl->set_block("'\\[online\\](.*?)\\[/online\\]'si","");
}
$tpl->set('{topics}', $tpl->result['topics']);
$tpl->set('{navigation}', $tpl->result['navigation']);
$tpl->compile('dle_forum');
$tpl->clear();
} else {
if (!$check_read){
if (!$password){
$group_name = $user_group[$member_id['user_group']]['group_name'];
forum_msg($f_lang['f_msg'], $f_lang['forum_read'], 'user_group', $group_name);
} else {
$password_form = "<form method=\"post\" action=\"\">Ïàðîëü: <input class=\"bbcodes\" type=\"text\" name=\"password\"><input class=\"bbcodes\" type=\"submit\" value=\"Ok\"></form>";
forum_msg($f_lang['f_msg'], $password_form);
}
} else {
@header("HTTP/1.0 404 Not Found");
forum_msg($f_lang['f_msg'], $f_lang['f_404']);
}
}
$metatags['title'] = $forum_config['forum_title'].' &raquo; ' . stripslashes($row_forum['name']);
if ($forum_config['forum_bar']){
$bbr_cid = $c_id;
$bbr_name = $cats_array[$c_id]['cat_name'];
$bbr_fid = $fid;
$bbr_fname = $row_forum['name'];
}
} else {
@header("HTTP/1.0 404 Not Found");
forum_msg($f_lang['f_msg'], $f_lang['f_404']);
}
?>