aboutsummaryrefslogtreecommitdiffstats
path: root/day_parser.php
blob: a6edc5a8e10172905ea2f4865fa2e99f4d4dc691 (plain) (blame)
1
<?

if(phpversion() >= "4.2.0") 

	{
		extract($HTTP_POST_VARS);
		extract($HTTP_GET_VARS);	
	}
	
$time_shown = array (
	"0700" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"0730" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"0800" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"0830" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"0900" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"0930" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1000" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1030" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1100" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1130" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1200" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1230" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1300" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1330" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1400" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1430" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1500" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1530" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1600" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1630" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1700" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1730" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1800" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1830" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1900" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"1930" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"2000" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"2030" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"2100" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"2130" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"2200" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"2230" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"2300" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => ""),
	"2330" => array("event_start" => "", "event_end" => "", "event_length" => 0, "event_text" => "")
);
	
	
// $getdate = "20020823";
// what day are we parsing out of the iCal file
if (!$getdate) $getdate = date("Ymd");
ereg ("([0-9]{4})([0-9]{2})([0-9]{2})", $getdate, $day_array);
$this_day = $day_array[3];
$this_month = $day_array[2];
$this_year = $day_array[1];

// what iCal file are we using
$fullpath = "webcal://chadsdomain.com/ical/Home.ics";
$filename = "calendars/Home.ics";


// open the iCal file, read it into an array
$contents = file($filename);

$start_time = "";
$end_time = "";
$summary = "";
$allday_start = "";
$allday_end = "";
$i = 0;

foreach($contents as $line) {
	if(strstr($line, "BEGIN:VEVENT")) {
		$start_time = "";
		$end_time = "";
		$summary = "";
		$allday_start = "";
		$allday_end = "";
		$start = "";
		$end = "";
	} else if (strstr($line, "END:VEVENT")) {
		
		if($start_time != "")
		{
			//echo "<b>Start</b> $start_time <b>End</B> $end_time <b>Summary</b> $summary<br>\n";
			ereg ("([0-9]{2})([0-9]{2})", $start_time, $time);
			$hour = $time[1];
			$minute = $time[2];
						
			if($minute < 15)
				$minute = "00";
			else if($minute >=15 && $minute < 45)
				$minute = "30";
			else if($minute >= 45)
			{
				$hour = sprintf("%.02d", ($hour + 1));
				$minute = "00";
			}
			$time_shown[($hour.$minute)]["event_start"] = $start_time;
			$time_shown[($hour.$minute)]["event_text"] = $summary;
		}
		
		// Let's handle the all day fields
		if($end_time != "")
		{
			$time_shown[($hour.$minute)]["event_end"] = $end_time;
			
			ereg ("([0-9]{2})([0-9]{2})", $end_time, $time2);
			$length = round((($time2[1]*60+$time2[2]) - ($time[1]*60+$time[2]))/30);
			
			$time_shown[($hour.$minute)]["event_length"] = $length;
		} elseif ($start_time && !$end_time) {
			$time_shown[($hour.$minute)]["event_length"] = 2;
		}
		
		if ($allday_start != "") {
			$start = strtotime("$allday_start");
			$end = strtotime("$allday_end");
			do {
				if (date("Ymd", $start) == $getdate) {
					$all_day[$i] = "$summary";
					$i++;
				}
				$start = ($start + (24*3600));
			} while ($start != $end);
		}
		
	} else {
		
		$field = "";
		$data = "";
		
		sscanf($line, "%[^:]:%[^\n]", &$field, &$data);
		//echo $line . "<br>";
		//echo $field . "<br>";
		//echo $data . "<br>";
		
		if(strstr($field, "DTSTART;TZID")) {
			//echo $data;
			$data = ereg_replace("T", "", $data);
			ereg ("([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{0,2})([0-9]{0,2})", $data, $regs);
			$year = $regs[1];
			$month = $regs[2];
			$day = $regs[3];
			$hour = $regs[4];
			$minute = $regs[5];
			if($year == $this_year && $month == $this_month && $day == $this_day)
			{
				$start_time = $hour . $minute;
				
				//$start_time = $month . "/" . $day . "/" . $year . " " . $time;
			}
			$regs[1] = "";
			$regs[2] = "";
			$regs[3] = "";
			$regs[4] = "";
			$regs[5] = "";
		} elseif (strstr($field, "DTEND;TZID")) {
			//echo $data;
			$data = ereg_replace("T", "", $data);
			ereg ("([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{0,2})([0-9]{0,2})", $data, $regs);
			$year = $regs[1];
			$month = $regs[2];
			$day = $regs[3];
			$hour = $regs[4];
			$minute = $regs[5];
		
			if($year == $this_year && $month == $this_month && $day == $this_day)
			{
				$end_time = $hour . $minute;
				//$end_time = $month . "/" . $day . "/" . $year . " " . $time;
			}
			$regs[1] = "";
			$regs[2] = "";
			$regs[3] = "";
			$regs[4] = "";
			$regs[5] = "";
		} elseif (strstr($field, "SUMMARY")) {
			$summary = $data;
		} elseif (strstr($field, "X-WR-CALNAME")) {
			$calendar_name = $data;
		} elseif (strstr($field, "DTSTART;VALUE=DATE")) {
			$allday_start = $data;
		} elseif (strstr($field, "DTEND;VALUE=DATE")) {
			$allday_end = $data;
		}
	
	}
} 

// print_r($time_shown);

					
					
	
					
?>

© 2014-2024 Faster IT GmbH | imprint | privacy policy