Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!


Click here to return to the 'PHP iCalendar code sample' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
PHP iCalendar code sample
Authored by: urpaign on Oct 30, '05 07:41:51PM

I've had several people ask me about this plain text schedule via PHP iCalendar, so posting it here seemed appropriate. This is probably full of hacks and security holes since I'm no PHP expert, but it works for me. Use at your own risk (or clean it up and repost if you are a PHP expert...).


<?php

define('BASE', './');
include(BASE.'functions/ical_parser.php');

$event_count = 0;
$unix_time = strtotime("$getdate");

$print_title = localizeDate ($dateFormat_month, strtotime($getdate));
$this_day = date("d", strtotime("+0 day", $unix_time)); // or maybe "e" instead of "d"
$this_month = date("Ym", strtotime("+0 month", $unix_time));
$next_month = date("Ym", strtotime("+1 month", $unix_time));

$zero_events = $no_events_month_lang;

//echo "$print_titlen";

// Iterate the entire master array
foreach($master_array as $key => $val) {
	
	// Pull out only this months
	ereg ("([0-9]{6})([0-9]{2})", $key, $regs);
	
	// Print *future* events from this month and next
	if ((($regs[1] == $this_month) && ($regs[2] >= $this_day)) || ($regs[1] == $next_month)) {
		$event_count++;
		$dayofmonth = strtotime ($key);
		$dayofmonth = localizeDate ($dateFormat_day, $dayofmonth);
		echo "$dayofmonthn";
		
		// Pull out each day
		foreach ($val as $new_val) {
			
			// Pull out each time
			foreach ($new_val as $new_key2 => $new_val2) {
			if ($new_val2["event_text"]) {	
				$event_text 	= stripslashes(urldecode($new_val2["event_text"]));
				$description 	= stripslashes(urldecode($new_val2["description"]));
				$event_start 	= $new_val2["event_start"];
				$event_end 		= $new_val2["event_end"];
				$event_start 	= date ($timeFormat, strtotime ("$event_start"));
				$event_end 		= date ($timeFormat, strtotime ("$event_end"));
				$event_start 	= "$event_start - $event_end";
				if (!$new_val2["event_start"]) { 
					$event_start = "$all_day_lang";
					$event_start2 = '';
					$event_end = '';
				}
				echo "* $event_start: $event_text";
					if ($new_val2["description"]) {
					echo " ($description)";
				}
				echo "n";
				}
			}
		}
		echo "n";
	}
}

if ($event_count < 1) {
	echo "$zero_eventsn";
}

?>

Good luck!



[ Reply to This | # ]