Back to vBulletin 3 Articles

Remove unneeded code
by TheComputerGuy 12 Apr 2008
Rating: (1 vote - 5.00 average)

Bandwidth is a concern for me, as well as size of files. By default index.php in the main directory is 18kb, with the file modifications reduces it to 9kb. This will also reduce the number of queries.

This is only useful, because I do not use the Calendar/Birthday features on my index.php.
If you do use the birthday features or calendar features turned on, this will cause a an error on page load. You must turn it off in the admincp!

Before attempting this, please backup the index.php. If you have hacked your index.php you must look at how I have done this simple file edit.

I do this each time I install a new version of vBulletin.

If you want a demo...ummm... http://www.gunandgame.com/forums/

Find this code:
PHP Code:
// get special data templates from the datastore
$specialtemplates = array(
    
'userstats',
    
'birthdaycache',
    
'maxloggedin',
    
'iconcache',
    
'eventcache',
    
'mailqueue'
); 
Replace it with:
PHP Code:
// get special data templates from the datastore
$specialtemplates = array(
    
'userstats',
    
'maxloggedin',
    
'iconcache',
    
'mailqueue'
); 
Find this code:
PHP Code:
// pre-cache templates used by all actions
$globaltemplates = array(
    
'ad_forumhome_afterforums',
    
'FORUMHOME',
    
'forumhome_event',
    
'forumhome_forumbit_level1_nopost',
    
'forumhome_forumbit_level1_post',
    
'forumhome_forumbit_level2_nopost',
    
'forumhome_forumbit_level2_post',
    
'forumhome_lastpostby',
    
'forumhome_loggedinuser',
    
'forumhome_moderator',
    
'forumhome_subforumbit_nopost',
    
'forumhome_subforumbit_post',
    
'forumhome_subforumseparator_nopost',
    
'forumhome_subforumseparator_post',
    
'forumhome_markread_script',
    
'forumhome_birthdaybit'
); 
Replace the code with this:
PHP Code:
// pre-cache templates used by all actions
$globaltemplates = array(
    
'ad_forumhome_afterforums',
    
'FORUMHOME',
    
'forumhome_forumbit_level1_nopost',
    
'forumhome_forumbit_level1_post',
    
'forumhome_forumbit_level2_nopost',
    
'forumhome_forumbit_level2_post',
    
'forumhome_lastpostby',
    
'forumhome_loggedinuser',
    
'forumhome_moderator',
    
'forumhome_subforumbit_nopost',
    
'forumhome_subforumbit_post',
    
'forumhome_subforumseparator_nopost',
    
'forumhome_subforumseparator_post',
    
'forumhome_markread_script'
); 
Ok, half way done!
Find this code:
PHP Code:
// ### TODAY'S BIRTHDAYS #################################################
if ($vbulletin->options['showbirthdays'])
{
    if (!
is_array($vbulletin->birthdaycache)
        OR (
$today != $vbulletin->birthdaycache['day1'] AND $today != $vbulletin->birthdaycache['day2'])
        OR !
is_array($vbulletin->birthdaycache['users1'])
    )
    {
        
// Need to update!
        
require_once(DIR '/includes/functions_databuild.php');
        
$birthdaystore build_birthdays();
        
DEVDEBUG('Updated Birthdays');
    }
    else
    {
        
$birthdaystore $vbulletin->birthdaycache;
    }

    switch (
$today)
    {
        case 
$birthdaystore['day1']:
            
$birthdaysarray $birthdaystore['users1'];
            break;

        case 
$birthdaystore['day2']:
            
$birthdaysarray $birthdaystore['users2'];
            break;
    }
    
// memory saving
    
unset($birthdaystore);

    
$birthdaybits = array();

    foreach (
$birthdaysarray AS $birthday)
    {
        eval(
'$birthdaybits[] = "' fetch_template('forumhome_birthdaybit') . '";');
    }

    
$birthdays implode(', '$birthdaybits);

    if (
$stylevar['dirmark'])
    {
        
$birthdays str_replace('<!--rlm-->'$stylevar['dirmark'], $birthdays);
    }

    
$show['birthdays'] = iif ($birthdaystruefalse);
}
else
{
    
$show['birthdays'] = false;

Remove it.

Find this code:
PHP Code:
// ### TODAY'S EVENTS #################################################
if ($vbulletin->options['showevents'])
{
    require_once(
DIR '/includes/functions_calendar.php');

    
$future gmdate('n-j-Y' TIMENOW 86400 86400 $vbulletin->options['showevents']);

    if (!
is_array($vbulletin->eventcache) OR $future != $vbulletin->eventcache['date'])
    {
        
// Need to update!
        
$eventstore build_events();
        
DEVDEBUG('Updated Events');
    }
    else
    {
        
$eventstore $vbulletin->eventcache;
    }

    unset(
$eventstore['date']);
    
$events = array();
    
$eventcount 0;

    foreach (
$eventstore AS $eventid => $eventinfo)
    {
        
$offset $eventinfo['dst'] ? $vbulletin->userinfo['timezoneoffset'] : $vbulletin->userinfo['tzoffset'];
        
$eventstore["$eventid"]['dateline_from_user'] = $eventinfo['dateline_from_user'] = $eventinfo['dateline_from'] + $offset 3600;
        
$eventstore["$eventid"]['dateline_to_user'] = $eventinfo['dateline_to_user'] = $eventinfo['dateline_to'] + $offset 3600;
        
$gettime TIMENOW $vbulletin->options['hourdiff'];
        
$iterations 0;
        
$todaydate getdate($gettime);

        if (!
$eventinfo['singleday'] AND !$eventinfo['recurring'] AND $eventinfo['dateline_from_user'] < gmmktime(000$todaydate['mon'], $todaydate['mday'], $todaydate['year']))
        {
            
$sub = -3;
        }
        else if (
$eventinfo['holidayid'])
        {
            
$sub = -2;
        }
        else if (
$eventinfo['singleday'])
        {
            
$sub = -1;
        }
        else
        {
            
$sub $eventinfo['dateline_from_user'] - (86400 * (intval($eventinfo['dateline_from_user'] / 86400)));
        }

        if (
$vbulletin->userinfo['calendarpermissions']["$eventinfo[calendarid]"] & $vbulletin->bf_ugp_calendarpermissions['canviewcalendar'] OR ($eventinfo['holidayid'] AND $vbulletin->options['showholidays']))
        {
            if (
$eventinfo['userid'] == $vbulletin->userinfo['userid'] OR $vbulletin->userinfo['calendarpermissions']["$eventinfo[calendarid]"] & $vbulletin->bf_ugp_calendarpermissions['canviewothersevent'] OR ($eventinfo['holidayid'] AND $vbulletin->options['showholidays']))
            {
                if (!
$eventinfo['recurring'] AND !$vbulletin->options['showeventtype'] AND !$eventinfo['singleday'] AND cache_event_info($eventinfo$todaydate['mon'], $todaydate['mday'], $todaydate['year']))
                {
                    
$events["$eventid"][] = $gettime "_$sub";
                }
                else
                {
                    while (
$iterations $vbulletin->options['showevents'])
                    {
                        
$addcache false;

                        
$todaydate getdate($gettime);
                        if (
$eventinfo['holidayid'] AND $eventinfo['recurring'] == 6)
                        {
                            if (
$eventinfo['recuroption'] == "$todaydate[mon]|$todaydate[mday]")
                            {
                                
$addcache true;
                            }
                        }
                        else if (
cache_event_info($eventinfo$todaydate['mon'], $todaydate['mday'], $todaydate['year']))
                        {
                            
$addcache true;
                        }

                        if (
$addcache)
                        {
                            if (!
$vbulletin->options['showeventtype'])
                            {
                                
$events["$eventid"][] = $gettime "_$sub";
                            }
                            else
                            {
                                
$events["$gettime"][] = $eventid;
                            }
                            
$eventcount++;
                        }

                        
$iterations++;
                        
$gettime += 86400;
                    }
                }
            }
        }
    }

    if (!empty(
$events))
    {
        if (
$vbulletin->options['showeventtype'])
        {
            
ksort($eventsSORT_NUMERIC);
        }
        else
        {
            function 
groupbyevent($a$b)
            {
                if (
$a[0] == $b[0])
                {
                    return 
0;
                }
                else
                {
                    
$values1 explode('_'$a[0]);
                    
$values2 explode('_'$b[0]);
                    if (
$values1[0] != $values2[0])
                    {
                        return (
$values1[0] < $values2[0]) ? -1;
                    }
                    else
                    {
                        
// Same day events. Check the event start time to order them properly (compare number of seconds from 00:00)
                        
return ($values1[1] < $values2[1]) ? -1;
                    }
                }
            }
            
uasort($events'groupbyevent');
            
// this crazy code is to remove $sub added above that ensures a event maintains its position after the sort
            // if associative values are the same
            
foreach($events AS $eventid => $times)
            {
                foreach (
$times AS $key => $time)
                {
                    
$events["$eventid"]["$key"] = intval($time);
                }
            }
        }

        
$upcomingevents '';
        foreach(
$events AS $index => $value)
        {
            
$pastevent 0;
            
$pastcount 0;

            
$comma $eventdates $daysevents '';
            if (!
$vbulletin->options['showeventtype'])
            {    
// Group by Event // $index = $eventid
                
$eventinfo $eventstore["$index"];
                if (empty(
$eventinfo['recurring']) AND empty($eventinfo['singleday']))
                {    
// ranged event -- show it from its real start and real end date (vbgmdate)
                    
$fromdate vbdate($vbulletin->options['dateformat'], $eventinfo['dateline_from_user'], falsetruefalsetrue);
                    
$todate vbdate($vbulletin->options['dateformat'], $eventinfo['dateline_to_user'], falsetruefalsetrue);
                    if (
$fromdate != $todate)
                    {
                        
$eventdates construct_phrase($vbphrase['event_x_to_y'], $fromdate$todate);
                    }
                    else
                    {
                        
$eventdates vbdate($vbulletin->options['dateformat'], $eventinfo['dateline_from_user'], falsetruefalsetrue);
                    }
                    
$day vbdate('Y-n-j'$eventinfo['dateline_from_user'], falsefalse);
                }
                else
                {
                    unset(
$day);
                    foreach(
$value AS $key => $dateline)
                    {
                        if ((
$dateline 86400) == $pastevent AND !$eventinfo['holidayid'])
                        {
                            
$pastevent $dateline;
                            
$pastcount++;
                            continue;
                        }
                        else
                        {
                            if (
$pastcount)
                            {
                                
$eventdates construct_phrase($vbphrase['event_x_to_y'], $eventdatesvbdate($vbulletin->options['dateformat'], $pasteventfalsetruefalse));
                            }
                            
$pastcount 0;
                            
$pastevent $dateline;
                        }
                        if (!
$day)
                        {
                            
$day vbdate('Y-n-j'$datelinefalsefalsefalse);
                        }
                        
$eventdates .= $comma vbdate($vbulletin->options['dateformat'], $datelinefalsetruefalse);
                        
$comma ', ';
                    }
                    if (
$pastcount)
                    {
                        
$eventdates construct_phrase($vbphrase['event_x_to_y'], $eventdatesvbdate($vbulletin->options['dateformat'], $pasteventfalsetruefalse));
                    }
                }

                if (
$eventinfo['holidayid'])
                {
                    
$callink '<a href="calendar.php?' $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day\">" $vbphrase['holiday' $eventinfo['holidayid'] . '_title'] . "</a>";
                }
                else
                {
                    
$callink '<a href="calendar.php?' $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day&amp;e=$eventinfo[eventid]&amp;c=$eventinfo[calendarid]\">$eventinfo[title]</a>";
                }
            }
            else
            {    
// Group by Date
                
$eventdate vbdate($vbulletin->options['dateformat'], $indexfalsetruefalse);

                
$day vbdate('Y-n-j'$indexfalsefalsefalse);
                foreach(
$value AS $key => $eventid)
                {
                    
$eventinfo $eventstore["$eventid"];
                    if (
$eventinfo['holidayid'])
                    {
                        
$daysevents .= $comma '<a href="calendar.php?' $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day\">" $vbphrase['holiday' $eventinfo['holidayid'] . '_title'] . "</a>";
                    }
                    else
                    {
                        
$daysevents .= $comma '<a href="calendar.php?' $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day&amp;e=$eventinfo[eventid]&amp;c=$eventinfo[calendarid]\">$eventinfo[title]</a>";
                    }
                    
$comma ', ';
                }
            }

            (
$hook vBulletinHook::fetch_hook('forumhome_event')) ? eval($hook) : false;
            eval(
'$upcomingevents .= "' fetch_template('forumhome_event') . '";');
        }
        
// memory saving
        
unset($events$eventstore);
    }
    
$show['upcomingevents'] = iif ($upcomingeventstruefalse);
    
$show['todaysevents'] = iif ($vbulletin->options['showevents'] == 1truefalse);
}
else
{
    
$show['upcomingevents'] = false;

Remove it.

Reupload the index.php.

vblts.ru supports vBulletin®, 2022-2024