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

Reply
 
Thread Tools Display Modes
  #1  
Old 06-19-2007, 04:34 AM
ragtek ragtek is offline
 
Join Date: Mar 2006
Location: austria, croatia
Posts: 1,630
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default eventcache problem

hi
i'm trying this code: (it's the same code as in the index.php)
PHP Code:
    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(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['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'); 
            // 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); 
                } 
            } 
        } 

        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'], 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\">" . $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, true, 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\">" . $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); 
    } 
in an extrafile
but there are no events in it(on index there are)
can somebody help pls?
Reply With Quote
  #2  
Old 06-19-2007, 05:59 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You need to include global.php. I'm also taking the guess that it wouldn't be as easy as copying and pasting.
Reply With Quote
  #3  
Old 06-19-2007, 06:01 AM
ragtek ragtek is offline
 
Join Date: Mar 2006
Location: austria, croatia
Posts: 1,630
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i inluclude global.php
and the eventcache is also "included" in $specialtemplates
Reply With Quote
  #4  
Old 06-19-2007, 06:41 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You still need to display the variable that all the data is contained in ($upcomingevents).
Reply With Quote
  #5  
Old 06-19-2007, 06:45 AM
ragtek ragtek is offline
 
Join Date: Mar 2006
Location: austria, croatia
Posts: 1,630
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

and this is emty
Reply With Quote
  #6  
Old 06-21-2007, 02:23 PM
ragtek ragtek is offline
 
Join Date: Mar 2006
Location: austria, croatia
Posts: 1,630
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

the userrights were the problem
Reply With Quote
Reply


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 02:43 PM.


Powered by vBulletin® Version 3.9.0
Copyright ©2000 - 2017, vBulletin Solutions Inc.