Results 1 to 5 of 5
-
13th Oct 2009, 08:54 AM #1OPMemberWebsite's:
Error-Zone.com shortbusriders.netfunctions_forumlist.php
Hello please share this file i try to edit it and i got an error on line 98 and i didnt take the file backup so please share wid em urs thanks
please ASAp
Chief-Editor Reviewed by Chief-Editor on . functions_forumlist.php Hello please share this file i try to edit it and i got an error on line 98 and i didnt take the file backup so please share wid em urs thanks:( please ASAp Rating: 5
-
13th Oct 2009, 09:12 AM #2Respected MemberWebsite's:
GraffThe.Net MCSkatty.com MCSkatty.co.uk MCSkatty.net MCSkatty.org MCSkatty.infoHeres a clean functions_forumlist ...
Code:<?php /*======================================================================*\ || #################################################################### || || # vBulletin 3.8.0 || # ---------------------------------------------------------------- # || || # Copyright ?2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. || || # This file may not be redistributed in whole or significant part. # || || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || || #################################################################### || \*======================================================================*/ // ###################### Start getimodcache ####################### function cache_moderators($userid = null) { global $vbulletin, $imodcache, $mod; $imodcache = array(); $mod = array(); $forummoderators = $vbulletin->db->query_read_slave(" SELECT moderator.*, user.username, IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid, infractiongroupid FROM " . TABLE_PREFIX . "moderator AS moderator INNER JOIN " . TABLE_PREFIX . "user AS user USING(userid) " . ($userid != null ? "WHERE moderator.userid = " . intval($userid) : "") . " "); while ($moderator = $vbulletin->db->fetch_array($forummoderators)) { fetch_musername($moderator); $imodcache["$moderator[forumid]"]["$moderator[userid]"] = $moderator; $mod["$moderator[userid]"] = 1; } $vbulletin->db->free_result($forummoderators); } // ###################### Start getlastpostinfo ####################### // this function creates a lastpostinfo array that tells makeforumbit which forum // each forum should grab its last post info from. // it also tots up the thread/post totals for each forum. - PERMISSIONS are taken into account. function fetch_last_post_array($root_forumid = -1) { global $vbulletin, $lastpostarray, $counters; $cannotView = array(); $children = array(); // loop through the vbulletin->iforumcache foreach ($vbulletin->iforumcache AS $moo) { foreach ($moo AS $forumid) { $forum = $vbulletin->forumcache["$forumid"]; if (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active'])) { if ($root_forumid == -1 OR !in_array($root_forumid, explode(',', $forum['childlist']))) { // only going to show below this part of the tree if we're already there $cannotView["$forumid"] = 1; } continue; } // if we have no permission to view the forum's parent // set cannotView permissions cache for this forum and continue if (!empty($cannotView["$forum[parentid]"])) { $cannotView["$forumid"] = 1; } else { $forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"]; // can view and validated password OR show counters for private forums -> show post count if ( ($forumperms & $vbulletin->bf_ugp_forumpermissions['canview'] AND (!$forum['password'] OR verify_forum_password($forum['forumid'], $forum['password'], false))) OR ($vbulletin->forumcache["$forumid"]['showprivate'] AND $vbulletin->forumcache["$forumid"]['showprivate'] == 3) OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND $vbulletin->options['showprivateforums'] == 2) ) { if (!isset($lastpostarray["$forumid"])) { $lastpostarray["$forumid"] = $forumid; } $parents = explode(',', $forum['parentlist']); foreach ($parents AS $parentid) { // for each parent, set an array entry containing this forum's number of posts & threads $children["$parentid"]["$forumid"] = array('threads' => $forum['threadcount'], 'posts' => $forum['replycount']); if ($parentid == -1 OR !isset($vbulletin->forumcache["$parentid"])) { continue; } if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) AND $vbulletin->forumcache["$forumid"]['lastposter'] != $vbulletin->userinfo['username']) { // can't view others threads in this forum and the last post isn't by us // so don't try to traverse up the tree continue; } // compare the date for the last post info with the last post date // for the parent forum, and if it's greater, set the last post info // array for this forum to point to that forum... (erm..) if ($forum['lastpost'] > $vbulletin->forumcache["$parentid"]['lastpost']) { $lastpostarray["$parentid"] = $forumid; $vbulletin->forumcache["$parentid"]['lastpost'] = $forum['lastpost']; } } } else { $cannotView["$forumid"] = 1; } } // end can view parent } } $counters = array(); if (is_array($vbulletin->forumcache)) { foreach($vbulletin->forumcache AS $forum) { $this_forum =& $counters["$forum[forumid]"]; $this_forum['threadcount'] = 0; $this_forum['replycount'] = 0; if (is_array($children["$forum[forumid]"])) { foreach($children["$forum[forumid]"] AS $id => $info) { $this_forum['threadcount'] += $info['threads']; $this_forum['replycount'] += $info['posts']; } } } } } // ###################### Start makeforumbit ####################### // this function returns the properly-ordered and formatted forum lists for forumhome, // forumdisplay and usercp. Of course, you could use it elsewhere too.. function construct_forum_bit($parentid, $depth = 0, $subsonly = 0) { global $vbulletin, $stylevar, $vbphrase, $show; global $imodcache, $lastpostarray, $counters, $inforum; // this function takes the constant MAXFORUMDEPTH as its guide for how // deep to recurse down forum lists. if MAXFORUMDEPTH is not defined, // it will assume a depth of 2. // call fetch_last_post_array() first to get last post info for forums if (!is_array($lastpostarray)) { fetch_last_post_array($parentid); } if (empty($vbulletin->iforumcache["$parentid"])) { return; } if (!defined('MAXFORUMDEPTH')) { define('MAXFORUMDEPTH', 2); } $forumbits = ''; $depth++; foreach ($vbulletin->iforumcache["$parentid"] AS $forumid) { // grab the appropriate forum from the $vbulletin->forumcache $forum = $vbulletin->forumcache["$forumid"]; //$lastpostforum = $vbulletin->forumcache["$lastpostarray[$forumid]"]; $lastpostforum = (empty($lastpostarray[$forumid]) ? array() : $vbulletin->forumcache["$lastpostarray[$forumid]"]); if (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active'])) { continue; } $forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"]; $lastpostforumperms = (empty($lastpostarray[$forumid]) ? 0 : $vbulletin->userinfo['forumpermissions']["$lastpostarray[$forumid]"]); if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == 1 OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums']))) { // no permission to view current forum continue; } if ($subsonly) { $childforumbits = construct_forum_bit($forum['forumid'], 1, $subsonly); } else if ($depth < MAXFORUMDEPTH) { $childforumbits = construct_forum_bit($forum['forumid'], $depth, $subsonly); } else { $childforumbits = ''; } // do stuff if we are not doing subscriptions only, or if we ARE doing subscriptions, // and the forum has a subscribedforumid if (!$subsonly OR ($subsonly AND !empty($forum['subscribeforumid']))) { $GLOBALS['forumshown'] = true; // say that we have shown at least one forum if (($forum['options'] & $vbulletin->bf_misc_forumoptions['cancontainthreads'])) { // get appropriate suffix for template name $tempext = '_post'; } else { $tempext = '_nopost'; } if (!$vbulletin->options['showforumdescription']) { // blank forum description if set to not show $forum['description'] = ''; } // dates & thread title $lastpostinfo = (empty($lastpostarray[$forumid]) ? array() : $vbulletin->forumcache["$lastpostarray[$forumid]"]); // compare last post time for this forum with the last post time specified by // the $lastpostarray, and if it's less, use the last post info from the forum // specified by $lastpostarray if (!empty($lastpostinfo) AND $vbulletin->forumcache["$lastpostarray[$forumid]"]['lastpost'] > 0) { if (!($lastpostforumperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR (!($lastpostforumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) AND $lastpostinfo['lastposter'] != $vbulletin->userinfo['username'])) { $forum['lastpostinfo'] = $vbphrase['private']; } else { $lastpostinfo['lastpostdate'] = vbdate($vbulletin->options['dateformat'], $lastpostinfo['lastpost'], 1); $lastpostinfo['lastposttime'] = vbdate($vbulletin->options['timeformat'], $lastpostinfo['lastpost']); $lastpostinfo['trimthread'] = fetch_trimmed_title(fetch_censored_text($lastpostinfo['lastthread'])); if ($lastpostinfo['lastprefixid'] AND $vbulletin->options['showprefixlastpost']) { $lastpostinfo['prefix'] = ($vbulletin->options['showprefixlastpost'] == 2 ? $vbphrase["prefix_$lastpostinfo[lastprefixid]_title_rich"] : htmlspecialchars_uni($vbphrase["prefix_$lastpostinfo[lastprefixid]_title_plain"]) ); } else { $lastpostinfo['prefix'] = ''; } if ($vbulletin->forumcache["$lastpostforum[forumid]"]['options'] & $vbulletin->bf_misc_forumoptions['allowicons'] AND $icon = fetch_iconinfo($lastpostinfo['lasticonid'])) { $show['icon'] = true; } else { $show['icon'] = false; } $show['lastpostinfo'] = (!$lastpostforum['password'] OR verify_forum_password($lastpostforum['forumid'], $lastpostforum['password'], false)); eval('$forum[\'lastpostinfo\'] = "' . fetch_template('forumhome_lastpostby') . '";'); } } else if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview'])) { $forum['lastpostinfo'] = $vbphrase['private']; } else { $forum['lastpostinfo'] = $vbphrase['never']; } // do light bulb $forum['statusicon'] = fetch_forum_lightbulb($forumid, $lastpostinfo, $forum); // add lock to lightbulb if necessary // from 3.6.9 & 3.7.0 we now show locks only if a user can not post AT ALL // previously it was just if they could not create new threads if ( $vbulletin->options['showlocks'] // show locks to users who can't post AND !$forum['link'] // forum is not a link AND ( !($forum['options'] & $vbulletin->bf_misc_forumoptions['allowposting']) // forum does not allow posting OR ( !($forumperms & $vbulletin->bf_ugp_forumpermissions['canpostnew']) // can't post new threads AND !($forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyown']) // can't reply to own threads AND !($forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyothers']) // can't reply to others' threads ) ) ) { $forum['statusicon'] .= '_lock'; } // get counters from the counters cache ( prepared by fetch_last_post_array() ) $forum['threadcount'] = $counters["$forum[forumid]"]['threadcount']; $forum['replycount'] = $counters["$forum[forumid]"]['replycount']; // get moderators ( this is why we needed cache_moderators() ) if ($vbulletin->options['showmoderatorcolumn']) { $showmods = array(); $listexploded = explode(',', $forum['parentlist']); foreach ($listexploded AS $parentforumid) { if (!isset($imodcache["$parentforumid"]) OR $parentforumid == -1) { continue; } foreach($imodcache["$parentforumid"] AS $moderator) { if (isset($showmods["$moderator[userid]"])) { continue; } ($hook = vBulletinHook::fetch_hook('forumbit_moderator')) ? eval($hook) : false; $showmods["$moderator[userid]"] = true; $show['comma_leader'] = isset($forum['moderators']); if (!isset($forum['moderators'])) { $forum['moderators'] = ''; } eval('$forum[\'moderators\'] .= "' . fetch_template('forumhome_moderator') . '";'); } } if (!isset($forum['moderators'])) { $forum['moderators'] = ''; } } if ($forum['link']) { $forum['replycount'] = '-'; $forum['threadcount'] = '-'; $forum['lastpostinfo'] = '-'; } else { $forum['replycount'] = vb_number_format($forum['replycount']); $forum['threadcount'] = vb_number_format($forum['threadcount']); } if (($subsonly OR $depth == MAXFORUMDEPTH) AND $vbulletin->options['subforumdepth'] > 0) { $forum['subforums'] = construct_subforum_bit($forumid, ($forum['options'] & $vbulletin->bf_misc_forumoptions['cancontainthreads'] ) ); } else { $forum['subforums'] = ''; } $forum['browsers'] = 0; $children = explode(',', $forum['childlist']); foreach($children AS $childid) { $forum['browsers'] += (isset($inforum["$childid"]) ? $inforum["$childid"] : 0); } if ($depth == 1 AND $tempext == '_nopost') { global $vbcollapse; $collapseobj_forumid =& $vbcollapse["collapseobj_forumbit_$forumid"]; $collapseimg_forumid =& $vbcollapse["collapseimg_forumbit_$forumid"]; $show['collapsebutton'] = true; } else { $show['collapsebutton'] = false; } $show['forumsubscription'] = ($subsonly ? true : false); $show['forumdescription'] = ($forum['description'] != '' ? true : false); $show['subforums'] = ($forum['subforums'] != '' ? true : false); $show['browsers'] = ($vbulletin->options['displayloggedin'] AND !$forum['link'] AND $forum['browsers'] ? true : false); // build the template for the current forum ($hook = vBulletinHook::fetch_hook('forumbit_display')) ? eval($hook) : false; eval('$forumbits .= "' . fetch_template("forumhome_forumbit_level$depth$tempext") . '";'); } // end if (!$subsonly OR ($subsonly AND !empty($forum['subscribeforumid']))) else { $forumbits .= $childforumbits; } } return $forumbits; } // ###################### Start getforumlightbulb ####################### // returns 'on' or 'off' depending on last post info for a forum function fetch_forum_lightbulb(&$forumid, &$lastpostinfo, &$foruminfo) { global $bb_view_cache, $vbulletin; if (is_array($foruminfo) AND !empty($foruminfo['link'])) { // see if it is a redirect return 'link'; } else { if ($vbulletin->userinfo['lastvisitdate'] == -1) { return 'new'; } else { if ($vbulletin->options['threadmarking'] AND $vbulletin->userinfo['userid']) { $userlastvisit = (!empty($foruminfo['forumread']) ? $foruminfo['forumread'] : (TIMENOW - ($vbulletin->options['markinglimit'] * 86400))); } else { $forumview = intval(fetch_bbarray_cookie('forum_view', $foruminfo['forumid'])); //use which one produces the highest value, most likely cookie $userlastvisit = ($forumview > $vbulletin->userinfo['lastvisit'] ? $forumview : $vbulletin->userinfo['lastvisit']); } if ($lastpostinfo['lastpost'] AND $userlastvisit < $lastpostinfo['lastpost']) { return 'new'; } else { return 'old'; } } } } // ###################### Start makesubforumbit ####################### // gets a list of a forum's children and returns it // based on the forumhome_subforumbit template function construct_subforum_bit($parentid, $cancontainthreads, $output = '', $depthmark = '--', $depth = 0) { global $vbulletin, $stylevar, $vbphrase; global $lastpostinfo, $lastpostarray; static $splitter; if ($cancontainthreads) { $canpost = 'post'; } else { $canpost = 'nopost'; } // get the splitter template if (!isset($splitter["$canpost"])) { eval('$splitter[$canpost] = "' . fetch_template("forumhome_subforumseparator_$canpost") . '";'); } if (!isset($vbulletin->iforumcache["$parentid"])) { return $output; } foreach($vbulletin->iforumcache["$parentid"] AS $forumid) { $forum = $vbulletin->forumcache["$forumid"]; $forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"]; if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == 1 OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums']))) { // no permission to view current forum continue; } if (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active'])) { // forum not active continue; } else { // get on/off status $lastpostinfo = $vbulletin->forumcache["$lastpostarray[$forumid]"]; $forum['statusicon'] = fetch_forum_lightbulb($forumid, $lastpostinfo, $forum); $show['newposticon'] = ($forum['statusicon'] ? true : false); ($hook = vBulletinHook::fetch_hook('forumbit_subforumbit')) ? eval($hook) : false; eval('$subforum = "' . fetch_template("forumhome_subforumbit_$canpost") . '";'); if (!empty($output)) { $subforum = $splitter["$canpost"] . $subforum; } if ($depth < $vbulletin->options['subforumdepth']) { $output .= construct_subforum_bit($forumid, $cancontainthreads, $subforum, $depthmark . '--', $depth + 1); } ($hook = vBulletinHook::fetch_hook('forumbit_subforumbit2')) ? eval($hook) : false; } } return $output; } // ###################### Start geticoninfo ####################### function fetch_iconinfo($iconid = 0) { global $vbulletin, $stylevar, $vbphrase, $vbulletin; $iconid = intval($iconid); switch($iconid) { case -1: DEVDEBUG('returning poll icon'); return array('iconpath' => "$stylevar[imgdir_misc]/poll_posticon.gif", 'title' => $vbphrase['poll']); case 0: if (!empty($vbulletin->options['showdeficon'])) { DEVDEBUG("returning default icon"); return array('iconpath' => $vbulletin->options['showdeficon'], 'title' => ''); } else { return false; } default: if ($vbulletin->iconcache !== null) { // we can get the icon info from the template cache DEVDEBUG("returning iconid:$iconid from the template cache"); return $vbulletin->iconcache["$iconid"]; } else { // we have to get the icon from a query DEVDEBUG("QUERYING iconid:$iconid)"); return $vbulletin->db->query_first_slave(" SELECT title, iconpath FROM " . TABLE_PREFIX . "icon WHERE iconid = $iconid "); } } } /*======================================================================*\ || #################################################################### || # || # CVS: $RCSfile$ - $Revision: 28323 $ || #################################################################### \*======================================================================*/ ?>
Code:<?php /*======================================================================*\ || #################################################################### || || # vBulletin 3.8.0 || # ---------------------------------------------------------------- # || || # Copyright ?2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. || || # This file may not be redistributed in whole or significant part. # || || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || || #################################################################### || \*======================================================================*/ // ###################### Start getimodcache ####################### function cache_moderators($userid = null) { global $vbulletin, $imodcache, $mod; $imodcache = array(); $mod = array(); $forummoderators = $vbulletin->db->query_read_slave(" SELECT moderator.*, user.username, IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid, infractiongroupid FROM " . TABLE_PREFIX . "moderator AS moderator INNER JOIN " . TABLE_PREFIX . "user AS user USING(userid) " . ($userid != null ? "WHERE moderator.userid = " . intval($userid) : "") . " "); while ($moderator = $vbulletin->db->fetch_array($forummoderators)) { fetch_musername($moderator); $imodcache["$moderator[forumid]"]["$moderator[userid]"] = $moderator; $mod["$moderator[userid]"] = 1; } $vbulletin->db->free_result($forummoderators); } // ###################### Start getlastpostinfo ####################### // this function creates a lastpostinfo array that tells makeforumbit which forum // each forum should grab its last post info from. // it also tots up the thread/post totals for each forum. - PERMISSIONS are taken into account. function fetch_last_post_array($root_forumid = -1) { global $vbulletin, $lastpostarray, $counters; $cannotView = array(); $children = array(); // loop through the vbulletin->iforumcache foreach ($vbulletin->iforumcache AS $moo) { foreach ($moo AS $forumid) { $forum = $vbulletin->forumcache["$forumid"]; if (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active'])) { if ($root_forumid == -1 OR !in_array($root_forumid, explode(',', $forum['childlist']))) { // only going to show below this part of the tree if we're already there $cannotView["$forumid"] = 1; } continue; } // if we have no permission to view the forum's parent // set cannotView permissions cache for this forum and continue if (!empty($cannotView["$forum[parentid]"])) { $cannotView["$forumid"] = 1; } else { $forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"]; // can view and validated password OR show counters for private forums -> show post count if ( ($forumperms & $vbulletin->bf_ugp_forumpermissions['canview'] AND (!$forum['password'] OR verify_forum_password($forum['forumid'], $forum['password'], false))) OR ($vbulletin->forumcache["$forumid"]['showprivate'] AND $vbulletin->forumcache["$forumid"]['showprivate'] == 3) OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND $vbulletin->options['showprivateforums'] == 2) ) { if (!isset($lastpostarray["$forumid"])) { $lastpostarray["$forumid"] = $forumid; } $parents = explode(',', $forum['parentlist']); foreach ($parents AS $parentid) { // for each parent, set an array entry containing this forum's number of posts & threads $children["$parentid"]["$forumid"] = array('threads' => $forum['threadcount'], 'posts' => $forum['replycount']); if ($parentid == -1 OR !isset($vbulletin->forumcache["$parentid"])) { continue; } if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) AND $vbulletin->forumcache["$forumid"]['lastposter'] != $vbulletin->userinfo['username']) { // can't view others threads in this forum and the last post isn't by us // so don't try to traverse up the tree continue; } // compare the date for the last post info with the last post date // for the parent forum, and if it's greater, set the last post info // array for this forum to point to that forum... (erm..) if ($forum['lastpost'] > $vbulletin->forumcache["$parentid"]['lastpost']) { $lastpostarray["$parentid"] = $forumid; $vbulletin->forumcache["$parentid"]['lastpost'] = $forum['lastpost']; } } } else { $cannotView["$forumid"] = 1; } } // end can view parent } } $counters = array(); if (is_array($vbulletin->forumcache)) { foreach($vbulletin->forumcache AS $forum) { $this_forum =& $counters["$forum[forumid]"]; $this_forum['threadcount'] = 0; $this_forum['replycount'] = 0; if (is_array($children["$forum[forumid]"])) { foreach($children["$forum[forumid]"] AS $id => $info) { $this_forum['threadcount'] += $info['threads']; $this_forum['replycount'] += $info['posts']; } } } } } // ###################### Start makeforumbit ####################### // this function returns the properly-ordered and formatted forum lists for forumhome, // forumdisplay and usercp. Of course, you could use it elsewhere too.. function construct_forum_bit($parentid, $depth = 0, $subsonly = 0) { global $vbulletin, $stylevar, $vbphrase, $show; global $imodcache, $lastpostarray, $counters, $inforum; // this function takes the constant MAXFORUMDEPTH as its guide for how // deep to recurse down forum lists. if MAXFORUMDEPTH is not defined, // it will assume a depth of 2. // call fetch_last_post_array() first to get last post info for forums if (!is_array($lastpostarray)) { fetch_last_post_array($parentid); } if (empty($vbulletin->iforumcache["$parentid"])) { return; } if (!defined('MAXFORUMDEPTH')) { define('MAXFORUMDEPTH', 2); } $forumbits = ''; $depth++; foreach ($vbulletin->iforumcache["$parentid"] AS $forumid) { // grab the appropriate forum from the $vbulletin->forumcache $forum = $vbulletin->forumcache["$forumid"]; //$lastpostforum = $vbulletin->forumcache["$lastpostarray[$forumid]"]; $lastpostforum = (empty($lastpostarray[$forumid]) ? array() : $vbulletin->forumcache["$lastpostarray[$forumid]"]); if (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active'])) { continue; } $forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"]; $lastpostforumperms = (empty($lastpostarray[$forumid]) ? 0 : $vbulletin->userinfo['forumpermissions']["$lastpostarray[$forumid]"]); if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == 1 OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums']))) { // no permission to view current forum continue; } if (THIS_SCRIPT == 'index' AND $forum['subforumcolumns'] != 1 AND ($subsonly OR $depth < MAXFORUMDEPTH)) { $childforumbits = construct_forum_columns($forum['forumid'], $forum['subforumcolumns']); } else if ($subsonly) { $childforumbits = construct_forum_bit($forum['forumid'], 1, $subsonly); } else if ($depth < MAXFORUMDEPTH) { $childforumbits = construct_forum_bit($forum['forumid'], $depth, $subsonly); } else { $childforumbits = ''; } // do stuff if we are not doing subscriptions only, or if we ARE doing subscriptions, // and the forum has a subscribedforumid if (!$subsonly OR ($subsonly AND !empty($forum['subscribeforumid']))) { $GLOBALS['forumshown'] = true; // say that we have shown at least one forum if (($forum['options'] & $vbulletin->bf_misc_forumoptions['cancontainthreads'])) { // get appropriate suffix for template name $tempext = '_post'; } else { $tempext = '_nopost'; } if (!$vbulletin->options['showforumdescription']) { // blank forum description if set to not show $forum['description'] = ''; } // dates & thread title $lastpostinfo = (empty($lastpostarray[$forumid]) ? array() : $vbulletin->forumcache["$lastpostarray[$forumid]"]); // compare last post time for this forum with the last post time specified by // the $lastpostarray, and if it's less, use the last post info from the forum // specified by $lastpostarray if (!empty($lastpostinfo) AND $vbulletin->forumcache["$lastpostarray[$forumid]"]['lastpost'] > 0) { if (!($lastpostforumperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR (!($lastpostforumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) AND $lastpostinfo['lastposter'] != $vbulletin->userinfo['username'])) { $forum['lastpostinfo'] = $vbphrase['private']; } else { $lastpostinfo['lastpostdate'] = vbdate($vbulletin->options['dateformat'], $lastpostinfo['lastpost'], 1); $lastpostinfo['lastposttime'] = vbdate($vbulletin->options['timeformat'], $lastpostinfo['lastpost']); $lastpostinfo['trimthread'] = fetch_trimmed_title(fetch_censored_text($lastpostinfo['lastthread'])); if ($lastpostinfo['lastprefixid'] AND $vbulletin->options['showprefixlastpost']) { $lastpostinfo['prefix'] = ($vbulletin->options['showprefixlastpost'] == 2 ? $vbphrase["prefix_$lastpostinfo[lastprefixid]_title_rich"] : htmlspecialchars_uni($vbphrase["prefix_$lastpostinfo[lastprefixid]_title_plain"]) ); } else { $lastpostinfo['prefix'] = ''; } if ($vbulletin->forumcache["$lastpostforum[forumid]"]['options'] & $vbulletin->bf_misc_forumoptions['allowicons'] AND $icon = fetch_iconinfo($lastpostinfo['lasticonid'])) { $show['icon'] = true; } else { $show['icon'] = false; } $show['lastpostinfo'] = (!$lastpostforum['password'] OR verify_forum_password($lastpostforum['forumid'], $lastpostforum['password'], false)); eval('$forum[\'lastpostinfo\'] = "' . fetch_template('forumhome_lastpostby') . '";'); } } else if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview'])) { $forum['lastpostinfo'] = $vbphrase['private']; } else { $forum['lastpostinfo'] = $vbphrase['never']; } // do light bulb $forum['statusicon'] = fetch_forum_lightbulb($forumid, $lastpostinfo, $forum); // add lock to lightbulb if necessary // from 3.6.9 & 3.7.0 we now show locks only if a user can not post AT ALL // previously it was just if they could not create new threads if ( $vbulletin->options['showlocks'] // show locks to users who can't post AND !$forum['link'] // forum is not a link AND ( !($forum['options'] & $vbulletin->bf_misc_forumoptions['allowposting']) // forum does not allow posting OR ( !($forumperms & $vbulletin->bf_ugp_forumpermissions['canpostnew']) // can't post new threads AND !($forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyown']) // can't reply to own threads AND !($forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyothers']) // can't reply to others' threads ) ) ) { $forum['statusicon'] .= '_lock'; } // get counters from the counters cache ( prepared by fetch_last_post_array() ) $forum['threadcount'] = $counters["$forum[forumid]"]['threadcount']; $forum['replycount'] = $counters["$forum[forumid]"]['replycount']; // get moderators ( this is why we needed cache_moderators() ) if ($vbulletin->options['showmoderatorcolumn']) { $showmods = array(); $listexploded = explode(',', $forum['parentlist']); foreach ($listexploded AS $parentforumid) { if (!isset($imodcache["$parentforumid"]) OR $parentforumid == -1) { continue; } foreach($imodcache["$parentforumid"] AS $moderator) { if (isset($showmods["$moderator[userid]"])) { continue; } ($hook = vBulletinHook::fetch_hook('forumbit_moderator')) ? eval($hook) : false; $showmods["$moderator[userid]"] = true; $show['comma_leader'] = isset($forum['moderators']); if (!isset($forum['moderators'])) { $forum['moderators'] = ''; } eval('$forum[\'moderators\'] .= "' . fetch_template('forumhome_moderator') . '";'); } } if (!isset($forum['moderators'])) { $forum['moderators'] = ''; } } if ($forum['link']) { $forum['replycount'] = '-'; $forum['threadcount'] = '-'; $forum['lastpostinfo'] = '-'; } else { $forum['replycount'] = vb_number_format($forum['replycount']); $forum['threadcount'] = vb_number_format($forum['threadcount']); } if (($subsonly OR $depth == MAXFORUMDEPTH) AND $vbulletin->options['subforumdepth'] > 0) { $forum['subforums'] = construct_subforum_bit($forumid, ($forum['options'] & $vbulletin->bf_misc_forumoptions['cancontainthreads'] ) ); } else { $forum['subforums'] = ''; } $forum['browsers'] = 0; $children = explode(',', $forum['childlist']); foreach($children AS $childid) { $forum['browsers'] += (isset($inforum["$childid"]) ? $inforum["$childid"] : 0); } if ($depth == 1 AND $tempext == '_nopost') { global $vbcollapse; $collapseobj_forumid =& $vbcollapse["collapseobj_forumbit_$forumid"]; $collapseimg_forumid =& $vbcollapse["collapseimg_forumbit_$forumid"]; $show['collapsebutton'] = true; } else { $show['collapsebutton'] = false; } $show['forumsubscription'] = ($subsonly ? true : false); $show['forumdescription'] = ($forum['description'] != '' ? true : false); $show['subforums'] = ($forum['subforums'] != '' ? true : false); $show['browsers'] = ($vbulletin->options['displayloggedin'] AND !$forum['link'] AND $forum['browsers'] ? true : false); // build the template for the current forum ($hook = vBulletinHook::fetch_hook('forumbit_display')) ? eval($hook) : false; eval('$forumbits .= "' . fetch_template("forumhome_forumbit_level$depth$tempext") . '";'); } // end if (!$subsonly OR ($subsonly AND !empty($forum['subscribeforumid']))) else { $forumbits .= $childforumbits; } } return $forumbits; } // ###################### Start getforumlightbulb ####################### // returns 'on' or 'off' depending on last post info for a forum function fetch_forum_lightbulb(&$forumid, &$lastpostinfo, &$foruminfo) { global $bb_view_cache, $vbulletin; if (is_array($foruminfo) AND !empty($foruminfo['link'])) { // see if it is a redirect return 'link'; } else { if ($vbulletin->userinfo['lastvisitdate'] == -1) { return 'new'; } else { if ($vbulletin->options['threadmarking'] AND $vbulletin->userinfo['userid']) { $userlastvisit = (!empty($foruminfo['forumread']) ? $foruminfo['forumread'] : (TIMENOW - ($vbulletin->options['markinglimit'] * 86400))); } else { $forumview = intval(fetch_bbarray_cookie('forum_view', $foruminfo['forumid'])); //use which one produces the highest value, most likely cookie $userlastvisit = ($forumview > $vbulletin->userinfo['lastvisit'] ? $forumview : $vbulletin->userinfo['lastvisit']); } if ($lastpostinfo['lastpost'] AND $userlastvisit < $lastpostinfo['lastpost']) { return 'new'; } else { return 'old'; } } } } // ###################### Start construct_forum_columns ####################### function construct_forum_columns($parentid, $columncount) { global $vbulletin, $stylevar, $vbphrase, $show; global $imodcache, $lastpostarray, $counters, $inforum; // this function takes the constant MAXFORUMDEPTH as its guide for how // deep to recurse down forum lists. if MAXFORUMDEPTH is not defined, // it will assume a depth of 2. if ($columncount == 0) { // 0 Columns means don't show subforums at all return ''; } // call fetch_last_post_array() first to get last post info for forums if (!is_array($lastpostarray)) { fetch_last_post_array(); } if (empty($vbulletin->iforumcache["$parentid"])) { return; } if (!defined(MAXFORUMDEPTH)) { define('MAXFORUMDEPTH', 1); } $forumbits = ''; $counter = 0; foreach ($vbulletin->iforumcache["$parentid"] AS $forumid) { // grab the appropriate forum from the $vbulletin->forumcache $forum = $vbulletin->forumcache["$forumid"]; $lastpostforum = $vbulletin->forumcache["$lastpostarray[$forumid]"]; if (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active'])) { continue; } $forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"]; $lastpostforumperms = $vbulletin->userinfo['forumpermissions']["$lastpostarray[$forumid]"]; if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) AND !$vbulletin->options['showprivateforums']) { // no permission to view current forum continue; } if ($subsonly) { $childforumbits = construct_forum_bit($forum['forumid'], 1, $subsonly); } else if ($depth < MAXFORUMDEPTH) { $childforumbits = construct_forum_bit($forum['forumid'], $depth, $subsonly); } else { $childforumbits = ''; } // do stuff if we are not doing subscriptions only, or if we ARE doing subscriptions, // and the forum has a subscribedforumid if (!$subsonly OR ($subsonly AND !empty($forum['subscribeforumid']))) { $GLOBALS['forumshown'] = true; // say that we have shown at least one forum if (($forum['options'] & $vbulletin->bf_misc_forumoptions['cancontainthreads'])) { // get appropriate suffix for template name $tempext = '_post'; } else { $tempext = '_nopost'; } if (!$vbulletin->options['showforumdescription']) { // blank forum description if set to not show $forum['description'] = ''; } // dates & thread title $lastpostinfo = $vbulletin->forumcache["$lastpostarray[$forumid]"]; // compare last post time for this forum with the last post time specified by // the $lastpostarray, and if it's less, use the last post info from the forum // specified by $lastpostarray if ($vbulletin->forumcache["$lastpostarray[$forumid]"]['lastpost'] > 0) { if (!($lastpostforumperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR (!($lastpostforumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) AND $lastpostinfo['lastposter'] != $vbulletin->userinfo['username'])) { $forum['lastpostinfo'] = $vbphrase['private']; } else { $lastpostinfo['lastpostdate'] = vbdate($vbulletin->options['dateformat'], $lastpostinfo['lastpost'], 1); $lastpostinfo['lastposttime'] = vbdate($vbulletin->options['timeformat'], $lastpostinfo['lastpost']); $lastpostinfo['trimthread'] = fetch_trimmed_title($lastpostinfo['lastthread']); if ($icon = fetch_iconinfo($lastpostinfo['lasticonid'])) { $show['icon'] = true; } else { $show['icon'] = false; } $show['lastpostinfo'] = (!$lastpostforum['password'] OR verify_forum_password($lastpostforum['forumid'], $lastpostforum['password'], false)); eval('$forum[\'lastpostinfo\'] = "' . fetch_template('forumhome_lastpostby') . '";'); } } else if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview'])) { $forum['lastpostinfo'] = $vbphrase['private']; } else { $forum['lastpostinfo'] = $vbphrase['never']; } // do light bulb $forum['statusicon'] = fetch_forum_lightbulb($forumid, $lastpostinfo, $forum); // add lock to lightbulb if necessary if ((!($forumperms & $vbulletin->bf_ugp_forumpermissions['canpostnew']) OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['allowposting'])) AND $vbulletin->options['showlocks'] AND !$forum['link']) { $forum['statusicon'] .= '_lock'; } // get counters from the counters cache ( prepared by fetch_last_post_array() ) $forum['threadcount'] = $counters["$forum[forumid]"]['threadcount']; $forum['replycount'] = $counters["$forum[forumid]"]['replycount']; // get moderators ( this is why we needed cache_moderators() ) if ($vbulletin->options['showmoderatorcolumn']) { $showmods = array(); $listexploded = explode(',', $forum['parentlist']); foreach ($listexploded AS $parentforumid) { if (!isset($imodcache["$parentforumid"])) { continue; } foreach($imodcache["$parentforumid"] AS $moderator) { if (isset($showmods["$moderator[userid]"])) { continue; } ($hook = vBulletinHook::fetch_hook('forumbit_moderator')) ? eval($hook) : false; $showmods["$moderator[userid]"] = true; if (!isset($forum['moderators'])) { eval('$forum[\'moderators\'] = "' . fetch_template('forumhome_moderator') . '";'); } else { eval('$forum[\'moderators\'] .= ", ' . fetch_template('forumhome_moderator') . '";'); } } } if (!isset($forum['moderators'])) { $forum['moderators'] = ''; } } if ($forum['link']) { $forum['replycount'] = '-'; $forum['threadcount'] = '-'; $forum['lastpostinfo'] = '-'; } else { $forum['replycount'] = vb_number_format($forum['replycount']); $forum['threadcount'] = vb_number_format($forum['threadcount']); } if (($subsonly OR $depth == MAXFORUMDEPTH) AND $vbulletin->options['subforumdepth'] > 0) { $forum['subforums'] = construct_subforum_bit($forumid, ($forum['options'] & $vbulletin->bf_misc_forumoptions['cancontainthreads'] ) ); } else { $forum['subforums'] = ''; } $children = explode(',', $forum['childlist']); foreach($children AS $childid) { $forum['browsers'] += ($inforum["$childid"] ? $inforum["$childid"] : 0); } if ($depth == 1 AND $tempext == '_nopost') { global $vbcollapse; $collapseobj_forumid =& $vbcollapse["collapseobj_forumbit_$forumid"]; $collapseimg_forumid =& $vbcollapse["collapseimg_forumbit_$forumid"]; $show['collapsebutton'] = true; } else { $show['collapsebutton'] = false; } $show['forumsubscription'] = ($subsonly ? true : false); $show['forumdescription'] = ($forum['description'] != '' ? true : false); $show['subforums'] = ($forum['subforums'] != '' ? true : false); $show['browsers'] = ($vbulletin->options['displayloggedin'] AND !$forum['link'] AND $forum['browsers'] ? true : false); // build the template for the current forum $column_width = intval(100 / $columncount) . '%'; eval('$column = "' . fetch_template("forumhome_forumbit_columncell") . '";'); // do the columnstuff if ($counter % $columncount == 0) { // Begin a new row $forumbits .= "\t<tr>\n"; } $forumbits .= $column; if ($counter % $columncount == $columncount - 1) { // End row $forumbits .= "\t</tr>\n"; } $counter++; } } // prevent unclosed <tr> tags if ($counter % $columncount != 0) { $forumbits .= "\t</tr>\n"; } return $forumbits; } // ###################### Start makesubforumbit ####################### // gets a list of a forum's children and returns it // based on the forumhome_subforumbit template function construct_subforum_bit($parentid, $cancontainthreads, $output = '', $depthmark = '--', $depth = 0) { global $vbulletin, $stylevar, $vbphrase; global $lastpostinfo, $lastpostarray; static $splitter; if ($cancontainthreads) { $canpost = 'post'; } else { $canpost = 'nopost'; } // get the splitter template if (!isset($splitter["$canpost"])) { eval('$splitter[$canpost] = "' . fetch_template("forumhome_subforumseparator_$canpost") . '";'); } if (!isset($vbulletin->iforumcache["$parentid"])) { return $output; } foreach($vbulletin->iforumcache["$parentid"] AS $forumid) { $forum = $vbulletin->forumcache["$forumid"]; $forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"]; if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == 1 OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums']))) { // no permission to view current forum continue; } if (!$forum['displayorder'] OR !($forum['options'] & $vbulletin->bf_misc_forumoptions['active'])) { // forum not active continue; } else { // get on/off status $lastpostinfo = $vbulletin->forumcache["$lastpostarray[$forumid]"]; $forum['statusicon'] = fetch_forum_lightbulb($forumid, $lastpostinfo, $forum); $show['newposticon'] = ($forum['statusicon'] ? true : false); ($hook = vBulletinHook::fetch_hook('forumbit_subforumbit')) ? eval($hook) : false; eval('$subforum = "' . fetch_template("forumhome_subforumbit_$canpost") . '";'); if (!empty($output)) { $subforum = $splitter["$canpost"] . $subforum; } if ($depth < $vbulletin->options['subforumdepth']) { $output .= construct_subforum_bit($forumid, $cancontainthreads, $subforum, $depthmark . '--', $depth + 1); } ($hook = vBulletinHook::fetch_hook('forumbit_subforumbit2')) ? eval($hook) : false; } } return $output; } // ###################### Start geticoninfo ####################### function fetch_iconinfo($iconid = 0) { global $vbulletin, $stylevar, $vbphrase, $vbulletin; $iconid = intval($iconid); switch($iconid) { case -1: DEVDEBUG('returning poll icon'); return array('iconpath' => "$stylevar[imgdir_misc]/poll_posticon.gif", 'title' => $vbphrase['poll']); case 0: if (!empty($vbulletin->options['showdeficon'])) { DEVDEBUG("returning default icon"); return array('iconpath' => $vbulletin->options['showdeficon'], 'title' => ''); } else { return false; } default: if ($vbulletin->iconcache !== null) { // we can get the icon info from the template cache DEVDEBUG("returning iconid:$iconid from the template cache"); return $vbulletin->iconcache["$iconid"]; } else { // we have to get the icon from a query DEVDEBUG("QUERYING iconid:$iconid)"); return $vbulletin->db->query_first_slave(" SELECT title, iconpath FROM " . TABLE_PREFIX . "icon WHERE iconid = $iconid "); } } } /*======================================================================*\ || #################################################################### || # || # CVS: $RCSfile$ - $Revision: 28323 $ || #################################################################### \*======================================================================*/ ?>
-
13th Oct 2009, 09:14 AM #3Member
which version ?
Coding Horror Fan
I don't read PM's frequently .
-
23rd Oct 2009, 12:57 AM #4Member
I see the 2nd post helped you there, but if you want the exact way to do it like step by step just let me know.
-
28th Oct 2009, 07:35 AM #5OPMemberWebsite's:
Error-Zone.com shortbusriders.nethmm thanks all for helping me
Sponsored Links
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
themaLeecher - leech and manage...
Version 5.03 released. Open older version (or...