From 813ddeb69682d4ec37ffcbc2b8b2bed91374029b Mon Sep 17 00:00:00 2001 From: mcfly Date: Fri, 12 Dec 2008 03:36:39 +0000 Subject: [PATCH] Adding file back --- e107_plugins/forum/forum_viewforum.php | 565 +++++++++++++++++++++++++ 1 file changed, 565 insertions(+) create mode 100644 e107_plugins/forum/forum_viewforum.php diff --git a/e107_plugins/forum/forum_viewforum.php b/e107_plugins/forum/forum_viewforum.php new file mode 100644 index 000000000..7d940d289 --- /dev/null +++ b/e107_plugins/forum/forum_viewforum.php @@ -0,0 +1,565 @@ +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 .= " ".LAN_411.""; + } + $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 .= " ".LAN_412.""; + } + $unstuck = true; + } + $forum_view_forum .= parse_thread($thread_info); + } +} +else +{ + $forum_view_forum .= "".LAN_58.""; +} + +//$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 = " +
+ + ".($thread_info['thread_s'] == 1 ? " " : " ")." + ".($thread_info['thread_active'] ? " " : " "). " + ".IMAGE_admin_move." +
+ "; + } + + $text .= " + ".$THREADDATE.'
'; + $tmp = explode('.', $thread_info['thread_user'], 2); + + if($thread_info['user_name']) + { + $POSTER = "".$thread_info['user_name'].""; + } + else + { + if($thread_info['thread_user_anon']) + { + $POSTER = $e107->tp->toHTML($thread_info['thread_user_anon']); + } + else + { + $POSTER = FORLAN_19; + } + } + + if ($thread_info['thread_s'] == 1 && $FORUM_VIEW_FORUM_STICKY) + { + return(preg_replace("/\{(.*?)\}/e", '$\1', $FORUM_VIEW_FORUM_STICKY)); + } + + if ($thread_info['thread_s'] == 2 && $FORUM_VIEW_FORUM_ANNOUNCE) + { + return(preg_replace("/\{(.*?)\}/e", '$\1', $FORUM_VIEW_FORUM_ANNOUNCE)); + } + + if (!$REPLIES) + { + $REPLIES = LAN_317; // 'None' + $LASTPOST = ' - '; + } + + return(preg_replace("/\{(.*?)\}/e", '$\1', $FORUM_VIEW_FORUM)); +} + +function parse_sub($subInfo) +{ + global $FORUM_VIEW_SUB, $gen, $tp, $newflag_list; + $e107 = e107::getInstance(); + $SUB_FORUMTITLE = "{$subInfo['forum_name']}"; + $SUB_DESCRIPTION = $tp->toHTML($subInfo['forum_description'], false, 'no_hook'); + $SUB_THREADS = $subInfo['forum_threads']; + $SUB_REPLIES = $subInfo['forum_replies']; + if(USER && is_array($newflag_list) && in_array($subInfo['forum_id'], $newflag_list)) + { + $NEWFLAG = "".IMAGE_new.""; + } + else + { + $NEWFLAG = IMAGE_nonew; + } + + if($subInfo['forum_lastpost_info']) + { + $tmp = explode('.', $subInfo['forum_lastpost_info']); + +// $e107->url->getUrl('forum', 'thread', array('func' => 'last', 'id' => $tmp[1])); + + $lp_thread = " 'last', 'id' => $tmp[1]))."'>".IMAGE_post2.''; + $lp_date = $gen->convert_date($tmp[0], 'forum'); + $tmp = explode('.', $subInfo['forum_lastpost_user'],2); + + if($subInfo['user_name']) + { + $lp_name = "{$subInfo['user_name']}"; + } + else + { + $lp_name = $tmp[1]; + } + $SUB_LASTPOST = $lp_date."
".$lp_name." ".$lp_thread; + } + else + { + $SUB_LASTPOST = "-"; + } + return (preg_replace("/\{(.*?)\}/e", '$\1', $FORUM_VIEW_SUB)); +} + +function forumjump() +{ + global $forum; + $jumpList = $forum->forum_get_allowed(); + $text = "

".LAN_403.":     ".LAN_02."

"; + return $text; +} + +?> \ No newline at end of file