Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #8  
Old 03-26-2009, 12:42 AM
TigerC10's Avatar
TigerC10 TigerC10 is offline
 
Join Date: Apr 2006
Location: Austin, TX
Posts: 616
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I heard that vBulletin's iif function is depricated. This could easily be the cause of the issue, since it may not be defined properly for the use of outside code. However, since it's still being used in forumhome - I don't think this is really the case.

iif is a ternary operator.

Code:
variable = iff(boolean, true, false);
is the same as saying
Code:
if(boolean)
{
    variable =  true
{
else
{
    variable = false
}
So you might consider replacing the iif calls with the idea above - there aren't many of them.



Next, there's a hook being called. I don't know if you have any calendar affecting plugins, but it might be causing your script to break. You might want to remove the hook.

Areas of code I mentioned are highlighted:
Code:
<?php 

// ####################### SET PHP ENVIRONMENT ########################### 
error_reporting(E_ALL & ~E_NOTICE); 

// #################### DEFINE IMPORTANT CONSTANTS ####################### 

define('THIS_SCRIPT', 'clubslist'); // change this depending on your filename 


// ################### PRE-CACHE TEMPLATES AND DATA ###################### 
// get special phrase groups 
$phrasegroups = array( 
     'holiday'
); 

// get special data templates from the datastore 
$specialtemplates = array( 
     'birthdaycache',
     'eventcache',
); 

// pre-cache templates used by all actions 
$globaltemplates = array( 
    'navigation', 
    'forumhome_event',
    'forumhome_birthdaybit'
); 

// pre-cache templates used by specific actions 
$actiontemplates = array( 

);



// ######################### REQUIRE BACK-END ############################ 
require_once('./global.php'); 

// ####################################################################### 
// ######################## START MAIN SCRIPT ############################ 
// ####################################################################### 

$navbits = array(); 
$navbits[$parent] = 'Club Listings'; 

$navbits = construct_navbits($navbits); 
eval('$navbar = "' . fetch_template('navbar') . '";'); 

$today = vbdate('Y-m-d', TIMENOW, false, false);

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

        default:
            $birthdaysarray = array();
    }
    // 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 ($birthdays, true, false);
}
else
{
    $show['birthdays'] = false;
}

// ### 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;
    $holiday_calendarid = 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(0, 0, 0, $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['holidayid'] AND $vbulletin->options

['showholidays'])
            {
                if (!$holiday_calendarid)
                {
                    $holiday_calendarid = -1; 
                    if (is_array($eventinfo

['holiday_calendarids']))
                    {
                        foreach ($eventinfo

['holiday_calendarids'] AS $potential_holiday_calendarid)
                        {
                            if ($vbulletin->userinfo

['calendarpermissions']["$potential_holiday_calendarid"] & $vbulletin->bf_ugp_calendarpermissions

['canviewcalendar'])
                            {
                                $holiday_calendarid = 

$potential_holiday_calendarid;
                                break;
                            }
                        }
                    }
                }

                if ($holiday_calendarid < 0)
                {
                    continue;
                }

                $eventstore["$eventid"]['calendarid'] = $holiday_calendarid;
                $eventinfo['calendarid'] = $holiday_calendarid;
            }

            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($events, SORT_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 : 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 : 1;
                    }
                }
            }
            uasort($events, 'groupbyevent');

            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']))
                {    
                    $fromdate = vbdate($vbulletin->options

['dateformat'], $eventinfo['dateline_from_user'], false, true, false, true);
                    $todate = vbdate($vbulletin->options

['dateformat'], $eventinfo['dateline_to_user'], false, true, false, true);
                    if ($fromdate != $todate)
                    {
                        $eventdates = construct_phrase

($vbphrase['event_x_to_y'], $fromdate, $todate);
                    }
                    else
                    {
                        $eventdates = vbdate($vbulletin->options['dateformat'], $eventinfo

['dateline_from_user'], false, true, false, true);
                    }
                    $day = vbdate('Y-n-j', $eventinfo

['dateline_from_user'], false, false);
                }
                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'], $eventdates, vbdate($vbulletin->options

['dateformat'], $pastevent, false, true, false));
                            }
                            $pastcount = 0;
                            $pastevent = $dateline;
                        }
                        if (!$day)
                        {
                            $day = vbdate('Y-n-j', 

$dateline, false, false, false);
                        }
                        $eventdates .= $comma . vbdate

($vbulletin->options['dateformat'], $dateline, false, true, false);
                        $comma = ', ';
                    }
                    if ($pastcount)
                    {
                        $eventdates = construct_phrase

($vbphrase['event_x_to_y'], $eventdates, vbdate($vbulletin->options['dateformat'], 

$pastevent, false, true, false));
                    }
                }

                if ($eventinfo['holidayid'])
                {
                    $callink = '<a href="calendar.php?' . 

$vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day&amp;c=$eventinfo

[calendarid]\">" . $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'], $index, false, true, false);

                $day = vbdate('Y-n-j', $index, false, false, false);
                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&amp;c=$eventinfo[calendarid]\">" . $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 ($upcomingevents, true, false);
    $show['todaysevents'] = iif ($vbulletin->options['showevents'] == 1, true, false);
}
else
{
    $show['upcomingevents'] = false;
}

//var_dump($upcomingevents);
$show['latestalbums'] = true;
eval('print_output("' . fetch_template('navigation') . '");'); 
?>
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:53 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.10792 seconds
  • Memory Usage 3,058KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (15)bbcode_code
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (17)post_thanks_box
  • (17)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (17)post_thanks_postbit_info
  • (17)postbit
  • (17)postbit_onlinestatus
  • (17)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete