Activity Stream
48,167 MEMBERS
6730 ONLINE
besthostingforums On YouTube Subscribe to our Newsletter besthostingforums On Twitter besthostingforums On Facebook besthostingforums On facebook groups

Results 1 to 5 of 5
  1.     
    #1
    Member
    Website's:
    Error-Zone.com shortbusriders.net

    Default 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
    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

  2.   Sponsored Links

  3.     
    #2
    Respected Member
    Website's:
    GraffThe.Net MCSkatty.com MCSkatty.co.uk MCSkatty.net MCSkatty.org MCSkatty.info
    Heres 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 $
    || ####################################################################
    \*======================================================================*/
    ?>
    Heres my edited one for the Arrange Forums in Columns hack ...

    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 $
    || ####################################################################
    \*======================================================================*/
    ?>
    Both for 3.8.x
    GraffThe.Net - The #1 Graffiti Download Site.



  4.     
    #3
    Member
    which version ?
    Coding Horror Fan
    I don't read PM's frequently .

  5.     
    #4
    Member
    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.

  6.     
    #5
    Member
    Website's:
    Error-Zone.com shortbusriders.net
    hmm thanks all for helping me

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

BE SOCIAL