url->getUrl('forum', 'forum', array('func' => 'view', 'id'=>$_POST['forumjump'])));
exit;
}
if (!e_QUERY)
{
header('Location:'.$e107->url->getUrl('forum', 'forum', array('func' => 'main')));
exit;
}
$view = 25;
$threadFrom = (isset($_REQUEST['p']) ? $_REQUEST['p'] * $view : 0);
/*
else
{
$tmp = explode('.', e_QUERY);
$forum_id = (int)$tmp[0];
$thread_from = (isset($tmp[1]) ? (int)$tmp[1] : 0);
}
if(is_numeric(e_MENU))
{
$thread_from = (intval(e_MENU)-1)*$view;
}
*/
require_once(e_PLUGIN.'forum/forum_class.php');
$forum = new e107forum;
$STARTERTITLE = LAN_54;
$THREADTITLE = LAN_53;
$REPLYTITLE = LAN_55;
$LASTPOSTITLE = LAN_57;
$VIEWTITLE = LAN_56;
global $forum_info, $FORUM_CRUMB;
$forumId = (int)$_REQUEST['id'];
if (!$forum->checkPerm($forumId, 'view'))
{
header('Location:'.$e107->url->getUrl('forum', 'forum', array('func' => 'main')));
exit;
}
$forumInfo = $forum->forum_get($forumId);
if (!$FORUM_VIEW_START)
{
if (file_exists(THEME.'forum_viewforum_template.php'))
{
require_once(THEME.'forum_viewforum_template.php');
}
elseif (file_exists(THEME.'forum_template.php'))
{
require_once(THEME.'forum_template.php');
}
else
{
require_once(e_PLUGIN.'forum/templates/forum_viewforum_template.php');
}
}
$forumInfo['forum_name'] = $e107->tp->toHTML($forumInfo['forum_name'], true, 'no_hook, emotes_off');
$forumInfo['forum_description'] = $e107->tp->toHTML($forumInfo['forum_description'], true, 'no_hook');
$_forum_name = (substr($forumInfo['forum_name'], 0, 1) == '*' ? substr($forumInfo['forum_name'], 1) : $forumInfo['forum_name']);
define('e_PAGETITLE', LAN_01.' / '.$_forum_name);
//define('MODERATOR', $forum_info['forum_moderators'] != '' && check_class($forum_info['forum_moderators']));
//$modArray = $forum->forum_getmods($forum_info['forum_moderators']);
$modArray = $forum->forum_getmods($thread->forum_info['forum_moderators']);
define('MODERATOR', (USER && is_array($modArray) && in_array(USERID, array_keys($modArray))));
$message = '';
if (MODERATOR)
{
if ($_POST)
{
require_once(e_PLUGIN.'forum/forum_mod.php');
$message = forum_thread_moderate($_POST);
}
}
if(varset($pref['track_online']))
{
$member_users = $sql->db_Count('online', '(*)', "WHERE online_location REGEXP('viewforum.php.id=$forumId\$') AND online_user_id != 0");
$guest_users = $sql->db_Count('online', '(*)', "WHERE online_location REGEXP('viewforum.php.id=$forumId\$') AND online_user_id = 0");
$users = $member_users+$guest_users;
}
require_once(HEADERF);
$text='';
if ($message)
{
$ns->tablerender('', $message, array('forum_viewforum', 'msg'));
}
$threadCount = $forumInfo['forum_threads'];
if ($threadCount > $view)
{
$pages = ceil($threadCount/$view);
}
else
{
$pages = false;
}
//echo "pages = $pages
";
if ($pages)
{
if(strpos($FORUM_VIEW_START, 'THREADPAGES') !== false || strpos($FORUM_VIEW_END, 'THREADPAGES') !== false)
{
$parms = "{$threadCount},{$view},{$threadFrom},".e_SELF.'?'.$forumId.'.[FROM],off';
$THREADPAGES = $tp->parseTemplate("{NEXTPREV={$parms}}");
}
}
if($forum->checkPerm($forumId, 'post'))
{
$NEWTHREADBUTTON = " 'nt', 'id' => $forumId))."'>".IMAGE_newthread.'';
}
if(substr($forumInfo['forum_name'], 0, 1) == '*')
{
$forum_info['forum_name'] = substr($forum_info['forum_name'], 1);
$container_only = true;
}
else
{
$container_only = false;
}
if(substr($forum_info['sub_parent'], 0, 1) == '*')
{
$forum_info['sub_parent'] = substr($forum_info['sub_parent'], 1);
}
$forum->set_crumb(); // set $BREADCRUMB (and $BACKLINK)
$FORUMTITLE = $forumInfo['forum_name'];
$MODERATORS = LAN_404.': '.implode(', ', $modArray);
$BROWSERS = '';
if(varset($pref['track_online']))
{
$BROWSERS = $users.' '.($users == 1 ? LAN_405 : LAN_406).' ('.$member_users.' '.($member_users == 1 ? LAN_407 : LAN_409).", ".$guest_users." ".($guest_users == 1 ? LAN_408 : LAN_410).')';
}
$ICONKEY = "
".IMAGE_new_small." |
".LAN_79." |
".IMAGE_nonew_small." |
".LAN_80." |
".IMAGE_sticky_small." |
".LAN_202." |
".IMAGE_announce_small." |
".LAN_396." |
".IMAGE_new_popular_small." |
".LAN_79." ".LAN_395." |
".IMAGE_nonew_popular_small." |
".LAN_80." ".LAN_395." |
".IMAGE_stickyclosed_small." |
".LAN_203." |
".IMAGE_closed_small." |
".LAN_81." |
";
$SEARCH = "
";
if($forum->checkPerm($forumId, 'post'))
{
$PERMS = LAN_204.' - '.LAN_206.' - '.LAN_208;
}
else
{
$PERMS = LAN_205.' - '.LAN_207.' - '.LAN_209;
}
$sticky_threads = 0;
$stuck = false;
$reg_threads = 0;
$unstuck = false;
$threadList = $forum->forumGetThreads($forumId, $threadFrom, $view);
$subList = $forum->forum_getsubs($forum_id);
//print_a($sub_list);
$gen = new convert;
$SUBFORUMS = '';
if(is_array($sub_list))
{
$newflag_list = $forum->forum_newflag_list();
$sub_info = '';
foreach($sub_list as $sub)
{
$sub_info .= parse_sub($sub);
}
$SUBFORUMS = $FORUM_VIEW_SUB_START.$sub_info.$FORUM_VIEW_SUB_END;
}
if (count($threadList) )
{
// foreach($threadList as $thread_info)
// {
// $idArray[] = $thread_info['thread_id'];
// }
// $inList = '('.implode(',', $idArray).')';
foreach($threadList as $thread_info)
{
if($thread_info['thread_options'])
{
$thread_info['thread_options'] = unserialize($thread_info['thread_options']);
}
else
{
$thread_info['thread_options'] = array();
}
if ($thread_info['thread_s'])
{
$sticky_threads ++;
}
if ($sticky_threads > 0 && !$stuck && $pref['forum_hilightsticky'])
{
if($FORUM_IMPORTANT_ROW)
{
$forum_view_forum .= $FORUM_IMPORTANT_ROW;
}
else
{
$forum_view_forum .= "
";
}
$stuck = true;
}
if (!$thread_info['thread_s'])
{
$reg_threads ++;
}
if ($reg_threads == '1' && !$unstuck && $stuck)
{
if($FORUM_NORMAL_ROW)
{
$forum_view_forum .= $FORUM_NORMAL_ROW;
}
else
{
$forum_view_forum .= "
";
}
$unstuck = true;
}
$forum_view_forum .= parse_thread($thread_info);
}
}
else
{
$forum_view_forum .= "
";
}
//$sql->db_Select('forum', '*', "forum_parent !=0 AND forum_class != '255' ");
$FORUMJUMP = forumjump();
$TOPLINK = "".LAN_02.'';
if($container_only)
{
$FORUM_VIEW_START = ($FORUM_VIEW_START_CONTAINER ? $FORUM_VIEW_START_CONTAINER : $FORUM_VIEW_START);
$FORUM_VIEW_END = ($FORUM_VIEW_END_CONTAINER ? $FORUM_VIEW_END_CONTAINER : $FORUM_VIEW_END);
$forum_view_forum = '';
}
$forum_view_start = preg_replace("/\{(.*?)\}/e", '$\1', $FORUM_VIEW_START);
$forum_view_end = preg_replace("/\{(.*?)\}/e", '$\1', $FORUM_VIEW_END);
if ($pref['forum_enclose'])
{
$ns->tablerender($pref['forum_title'], $forum_view_start.$forum_view_subs.$forum_view_forum.$forum_view_end, array('forum_viewforum', 'main1'));
}
else
{
echo $forum_view_start.$forum_view_forum.$forum_view_end;
}
echo "";
require_once(FOOTERF);
function parse_thread($thread_info)
{
global $forum, $tp, $FORUM_VIEW_FORUM, $FORUM_VIEW_FORUM_STICKY, $FORUM_VIEW_FORUM_ANNOUNCE, $gen, $pref, $forum_id, $menu_pref;
$e107 = e107::getInstance();
$text = '';
$threadId = $thread_info['thread_id'];
$forumId = $thread_info['thread_forum_id'];
$VIEWS = $thread_info['thread_views'];
$REPLIES = $thread_info['thread_total_replies'];
if ($REPLIES)
{
$lastpost_datestamp = $gen->convert_date($thread_info['thread_lastpost'], 'forum');
if($thread_info['lastpost_username'])
{
$LASTPOST = "".$thread_info['lastpost_username']."";
}
else
{
if(!$thread_info['thread_lastuser'])
{
$LASTPOST = $tp->toHTML($thread_info['thread_lastuser_anon']);
}
else
{
$LASTPOST = FORLAN_19;
}
}
$LASTPOST .= '
'.$lastpost_datestamp;
}
$newflag = false;
if (USER)
{
if ($thread_info['thread_lastpost'] > USERLV && !$forum->threadViewed($thread_info['thread_id']))
{
$newflag = true;
}
}
$THREADDATE = $gen->convert_date($thread_info['thread_datestamp'], 'forum');
$ICON = ($newflag ? IMAGE_new : IMAGE_nonew);
if ($REPLIES >= $pref['forum_popular'])
{
$ICON = ($newflag ? IMAGE_new_popular : IMAGE_nonew_popular);
}
$THREADTYPE = '';
if ($thread_info['thread_s'] == 1)
{
$ICON = ($thread_info['thread_active'] ? IMAGE_sticky : IMAGE_stickyclosed);
$THREADTYPE = '['.LAN_202.']
';
}
elseif($thread_info['thread_s'] == 2)
{
$ICON = IMAGE_announce;
$THREADTYPE = '['.LAN_396.']
';
}
elseif(!$thread_info['thread_active'])
{
$ICON = IMAGE_closed;
}
$thread_name = strip_tags($tp->toHTML($thread_info['thread_name'], false, 'no_hook, emotes_off'));
if(isset($thread_info['thread_options']['poll']))
{
$thread_name = '['.FORLAN_23.'] ' . $thread_name;
}
// if (strtoupper($THREADTYPE) == strtoupper(substr($thread_name, 0, strlen($THREADTYPE))))
// {
// $thread_name = substr($thread_name, strlen($THREADTYPE));
// }
if ($pref['forum_tooltip'])
{
$thread_thread = strip_tags($tp->toHTML($thread_info['thread_thread'], true, 'no_hook'));
$tip_length = ($pref['forum_tiplength'] ? $pref['forum_tiplength'] : 400);
if (strlen($thread_thread) > $tip_length)
{
$thread_thread = substr($thread_thread, 0, $tip_length).' '.$menu_pref['newforumposts_postfix'];
}
$thread_thread = str_replace("'", ''', $thread_thread);
$title = "title='".$thread_thread."'";
}
else
{
$title = '';
}
$THREADNAME = "{$thread_name}";
$pages = ceil(($REPLIES+1)/$pref['forum_postspage']);
if ($pages > 1)
{
if($pages > 6)
{
for($a = 0; $a <= 2; $a++)
{
$PAGES .= $PAGES ? ' ' : '';
$PAGES .= "".($a+1)."";
}
$PAGES .= ' ... ';
for($a = $pages-3; $a <= $pages-1; $a++)
{
$PAGES .= $PAGES ? " " : "";
$PAGES .= "".($a+1)."";
}
}
else
{
for($a = 0; $a <= ($pages-1); $a++)
{
$PAGES .= $PAGES ? ' ' : '';
$PAGES .= "".($a+1)."";
}
}
$PAGES = LAN_316.' [ '.$PAGES.' ]';
}
else
{
$PAGES = '';
}
if (MODERATOR)
{
// $thread_id = $thread_info['thread_id'];
// $e107->url->getUrl('forum', 'thread', array('func' => 'last', 'id' => $tmp[1]))
$ADMIN_ICONS = "
";
}
$text .= "