Back to vBulletin 3.5 Add-ons

Custom Forum Status Icons
Mod Version: 1.0.0, by Chris M

This modification is in the archives.
vB Version: 3.5.1 Rating: (15 votes - 4.93 average) Installs: 330
Released: 01 Dec 2005 Last Update: Never Downloads: 1364
Not Supported Uses Plugins Template Edits  

Installation Instructions

Step 1: Upload the .xml file to the Product Manager
Step 2: Read the install.txt file for template edit instructions
Step 3: Click

Requested by: nonamer69

What does this Plugin do?

Basically, this will allow you to have Custom Forum Status Icons for each forum - To have one image constantly displayed simply edit the options for each image replacement to the same image :devious:

Are there any screenshots?

See post below

Version History:

1.0.0: First release

Forums arranged in columns on forumhome (by Xenon):
See here

Spoiler (click to open)


If you want this to work with Chris M's Cust Forum Status Icons Modification just replace Xenon's function with the following:

PHP Code:
// ###################### 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);
            
$show['customstatusicon'] = false;
if (
$forum['hasstatusicons'])
{
    
$show['customstatusicon'] = true;
    if (
$forum['statusicon'] == 'new')
    {
        
$forum['customicon'] = $forum['statusiconon'];
    }
    if (
$forum['statusicon'] == 'new_lock')
    {
        
$forum['customicon'] = $forum['statusiconlockon'];
    }
    if (
$forum['statusicon'] == 'old')
    {
        
$forum['customicon'] = $forum['statusiconoff'];
    }
    if (
$forum['statusicon'] == 'old_lock')
    {
        
$forum['customicon'] = $forum['statusiconlockoff'];
    }
    if (
$forum['statusicon'] == 'link')
    {
        
$forum['customicon'] = $forum['statusiconlink'];
    }
}

            
// 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 == 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;

And follow this template change:

Quote by Chris M
Edit forumhome_forumbit_columncell
Change:
Code:
<img src="$stylevar[imgdir_statusicon]/forum_$forum[statusicon].gif" alt="" border="0" />
to
Code:
<img src="<if condition="$show['customstatusicon']">$forum[customicon]<else />$stylevar[imgdir_statusicon]/forum_$forum[statusicon].gif</if>" alt="" border="0" />
That should change it for you

Chris
And it should know work correctly....

Close
for the function and template change you need to make (Thanks to Danny.vBT for this)
Please Note: This modification is only required if you wish to use Custom Status Icons in conjunction with Xenon's hack...

Chris

Download

This modification is archived and cannot be downloaded.


vblts.ru supports vBulletin®, 2022-2024