Quote:
Originally Posted by tomsch
i am working on correcting this item.
|
My version of the event widget (widget Turnierticker).
http://www.united-battlezone.de
(not based on your work, based on the idea here:
https://vborg.vbsupport.ru/showthrea...pcoming+events )
But heavily heavily modified. Maybe 5 lines of code are left.
Anyway - since our users rely on weekly recurring events i rewrote the code to account for that and set them in the right order. I thought it might help you with your work.
vB saves the recurring events in two seperate columns:
recurring and recuroption
I know for most of them what they mean (brute force testing

). But the only one i have implemented so far is weekly.
Code:
elseif($event['recurring'] == 3) {
$teile = explode("|", $event['recuroption']);
//Datum neu setzen fuer die weeklies -- (offset damit der heutige noch erscheint!)
while($event['dateline_from'] + $wez_offset < $time_offset)
{
$event['dateline_from'] += $teile[0] * 7 * 86400;
}
What it does.
The recurroption for weekly events is saved like that:
1|5
-> event takes place every week on tuesdays and sundays.
3|32
-> event takes place every 3 weeks on fridays.
So we need that first part of the string, which i write into $teile[0] - then i'm using a loop to change the startdate to the actual week we are in (+ some offset to show events which are today).
I do that for all events which i take out of the database (usually 5ish more than i will show in the end - to account for database missorting based on the wrong dates).
Then i resort the array via
Code:
//getting database results
foreach($DatabaseStatement as $event)
{
//calculate new dates (see code above)
//add them into a big array
$events[] = $event;
}
//sort the $events array via array_multisort and startdate
foreach($events as $c => $key)
{
$sort_date[] = $key['dateline_from'];
}
array_multisort($sort_date, SORT_ASC, $events);
//generate output
I hope that helps.