Revision: 31023
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 27, 2010 12:06 by stav
Initial Code
<table id="cal">
<?php
# you need the iCalReader found here:
# http://www.phps.com/scripts/iCalReader.php
// These define() lines go at the top of the script
define('DTSTART', 'DTSTART;TZID=Europe/Oslo');
# set the number of events you want to show
define('MAX_EVENTS', 100);
// Use the DTSTART constant in the compare_date() function
require_once 'iCalReader.php';
$ical = new iCalReader('konserter.ics');
$meta = $ical->getMeta();
$events = $ical->getEvents();
#compare dates function
function compare_date($a, $b)
{
return strnatcmp($a['DTSTART;TZID=Europe/Oslo'], $b['DTSTART;TZID=Europe/Oslo']);
}
# sort arrays after the dates
usort($events, 'compare_date');
// Get and sort the events here
// This needs to be calculated only once, so put it outside the loop
$today = date('Ymd');
// Save the count to a variable to avoid unnecessary calculations
$count = count($events);
// Loop through all events until either there are no more events or
// the maximum number of recent events has been found
for ($row = 0, $hits = 0; $row < $count && $hits < MAX_EVENTS; $row++) {
// It's possible that some events will not have the appropriate key,
// so skip those events
if (! array_key_exists(DTSTART, $events[$row])) {
continue;
}
$date = substr($events[$row][DTSTART], 0, 8);
if ($date >= $today) {
// Increment the number of events found
$hits++;
// Move these operations inside this block to avoid unnecessary calculations
$year = substr($events[$row][DTSTART], 0, 4);
$month = substr($events[$row][DTSTART], 4, 2);
$day = substr($events[$row][DTSTART], 6, 2);
//$time = substr($events[$row][DTSTART], 9, 4); // Unused?
// This looks cleaner (in my opinion), but the format does not matter
echo '<tr>'
. '<td class="summary">' . $events[$row]['SUMMARY'] . '</td>'
. '<td class="date">'
. '<span class="day">' . $day . '/</span>'
. '<span class="month">' . $month . '/</span>'
. '<span class="year">' . $year . '</span>'
. '</td>'
. '</tr>' . "\n";
}
} ?>
</table>
Initial URL
Initial Description
You can find the ical reader here: http://www.phps.com/scripts/iCalReader.php
Initial Title
iCalReader add-on for Concerts and events
Initial Tags
Initial Language
PHP