Actions

Ics.php

From HacDC Wiki

Revision as of 03:40, 20 February 2010 by ITechGeek (talk | contribs)

This code still needs to be cleaned up some.

This page needs to be cleaned up since web browsers treat some of the symbols on here as special characters, to see the code correctly for now, click edit this page and read between the and codes.

<p><?php<br> <br> include('Drupal.login.php');<br> <br> $ics_contents = "BEGIN:VCALENDAR\n";<br> $ics_contents .= "VERSION:2.0\n";<br> $ics_contents .= "PRODID:PHP\n";<br> $ics_contents .= "METHOD:PUBLISH\n";<br> $ics_contents .= "X-WR-CALNAME:HacDC Schedule\n";<br> <br> # Change the timezone as well daylight settings if need be<br> $ics_contents .= "X-WR-TIMEZONE:America/New_York\n";<br> $ics_contents .= "BEGIN:VTIMEZONE\n";<br> $ics_contents .= "TZID:America/New_York\n";<br> $ics_contents .= "BEGIN:DAYLIGHT\n";<br> $ics_contents .= "TZOFFSETFROM:-0500\n";<br> $ics_contents .= "TZOFFSETTO:-0400\n";<br> $ics_contents .= "DTSTART:20070311T020000\n";<br> $ics_contents .= "RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\n";<br> $ics_contents .= "TZNAME:EDT\n";<br> $ics_contents .= "END:DAYLIGHT\n";<br> $ics_contents .= "BEGIN:STANDARD\n";<br> $ics_contents .= "TZOFFSETFROM:-0400\n";<br> $ics_contents .= "TZOFFSETTO:-0500\n";<br> $ics_contents .= "DTSTART:20071104T020000\n";<br> $ics_contents .= "RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\n";<br> $ics_contents .= "TZNAME:EST\n";<br> $ics_contents .= "END:STANDARD\n";<br> $ics_contents .= "END:VTIMEZONE\n";<br> <br> $events = mysql_query("SELECT <br> node.nid AS nid,<br> node.title AS title,<br> node.changed as node_changed,<br> node.type AS node_type,<br> node.vid AS node_vid,<br> content_field_date.field_date_value as Start, <br> content_field_date.field_date_value2 as End<br> FROM (node<br> left join content_field_date on node.vid = content_field_date.vid)<br> WHERE type = 'event'<br> ORDER BY Start<br> ");<br> <br> function clean_url($desc) {<br> $desc = html_entity_decode($desc);<br> $desc = strip_tags($desc);<br> $desc = ereg_replace("[^A-Za-z0-9 -|=`~!@#$%^&*()_+,./?><:;'{}]", "", $desc );<br> return $desc;<br> } <br> <br> while ($schedule_details = mysql_fetch_assoc($events)) {<br> <br> if (date('T', strtotime($schedule_details['Start'])) == "EDT") {<br> $Offset = 4*60*60;<br> } else {<br> $Offset = 5*60*60;<br> }<br> $Start = strtotime($schedule_details['Start'])-$Offset;<br> $End = strtotime($schedule_details['End'])-$Offset;<br> <br> #if ($Start >= time()) {<br> <br> $desc1 = mysql_query("SELECT * from node_revisions<br> WHERE <br> nid = '".$schedule_details['nid']."' and <br> vid = '".$schedule_details['node_vid']."'");<br> <br> $desc1 = mysql_fetch_assoc($desc1);<br> <br> #echo html_entity_decode($desc1['title'])."<br>";<br> #echo html_entity_decode($desc1['teaser'])."<br>";<br> #echo html_entity_decode($desc1['body'])."<br><br>";<br> <br> $Yr = date(Y,$Start);<br> $Mo = date(m,$Start);<br> $Day = date(d,$Start);<br> $Hr = date(H,$Start);<br> $Min = date(i,$Start);<br> $Yr1 = date(Y,$End);<br> $Mo1 = date(m,$End);<br> $Day1 = date(d,$End);<br> $Hr1 = date(H,$End);<br> $Min1 = date(i,$End);<br> <br> $id = $schedule_details['nid'];<br> $start_date = $Yr."-".$Mo."-".$Day;<br> $start_time = $Hr.":".$Min.":00";<br> $end_date = $Yr1."-".$Mo1."-".$Day1;<br> $end_time = $Hr1.":".$Min1.":00"; <br> <br> # $category = $schedule_details['Category'];<br> $category = "HacDC";<br> $name = $schedule_details['title'];<br> $location = "1525 Newton St NW, Washington DC 20010 (Near corner of 16th and Newton NW)";<br> $description = clean_url(strip_tags($desc1['body']));<br> <br> # Remove '-' in $start_date and $end_date<br> $estart_date = str_replace("-", "", $start_date);<br> $eend_date = str_replace("-", "", $end_date);<br> <br> # Remove ':' in $start_time and $end_time<br> $estart_time = str_replace(":", "", $start_time);<br> $eend_time = str_replace(":", "", $end_time);<br> <br> # Replace some HTML tags<br> $name = str_replace("<br>", "\\r\\n", $name);<br> $name = str_replace("&amp;", "&", $name);<br> $name = str_replace("&rarr;", "-->", $name);<br> $name = str_replace("&larr;", "<--", $name);<br> $name = str_replace(",", "\\,", $name);<br> $name = str_replace(";", "\\;", $name);<br> <br> $location = str_replace("<br>", "\\r\\n", $location);<br> $location = str_replace("&amp;", "&", $location);<br> $location = str_replace("&rarr;", "-->", $location);<br> $location = str_replace("&larr;", "<--", $location);<br> $location = str_replace(",", "\\,", $location);<br> $location = str_replace(";", "\\;", $location);<br> <br> $description = str_replace("<br>", "\\r\\n", $description);<br> $description = str_replace("&amp;", "&", $description);<br> $description = str_replace("&rarr;", "-->", $description);<br> $description = str_replace("&larr;", "<--", $description);<br> $description = str_replace("<em>", "", $description);<br> $description = str_replace("</em>", "", $description);<br> <br> # Change TZID if need be<br> $ics_contents .= "BEGIN:VEVENT\r\n";<br> $ics_contents .= "DTSTART;TZID=America/New_York:" . $estart_date . "T". $estart_time . "\r\n";<br> $ics_contents .= "DTEND;TZID=America/New_York:" . $eend_date . "T". $eend_time . "\r\n";<br> $ics_contents .= "DTSTAMP:" . date('Ymd') . "T". date('His') . "Z\r\n";<br> $ics_contents .= "SUMMARY:" . $name . "\r\n";<br> $ics_contents .= "LOCATION:" . $location . "\r\n";<br> $ics_contents .= "DESCRIPTION:" . $description . "\r\n";<br> $ics_contents .= "UID:" . $id .rand(0,9999). "\r\n";<br> $ics_contents .= "SEQUENCE:0\r\n";<br> $ics_contents .= "END:VEVENT\r\n";<br> }<br> #}<br> $ics_contents .= "END:VCALENDAR\r\n";<br> <br> echo $ics_contents;<br>  </p> <?php include('Drupal.login.php'); $ics_contents = "BEGIN:VCALENDAR\n"; $ics_contents .= "VERSION:2.0\n"; $ics_contents .= "PRODID:PHP\n"; $ics_contents .= "METHOD:PUBLISH\n"; $ics_contents .= "X-WR-CALNAME:HacDC Schedule\n"; # Change the timezone as well daylight settings if need be $ics_contents .= "X-WR-TIMEZONE:America/New_York\n"; $ics_contents .= "BEGIN:VTIMEZONE\n"; $ics_contents .= "TZID:America/New_York\n"; $ics_contents .= "BEGIN:DAYLIGHT\n"; $ics_contents .= "TZOFFSETFROM:-0500\n"; $ics_contents .= "TZOFFSETTO:-0400\n"; $ics_contents .= "DTSTART:20070311T020000\n"; $ics_contents .= "RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\n"; $ics_contents .= "TZNAME:EDT\n"; $ics_contents .= "END:DAYLIGHT\n"; $ics_contents .= "BEGIN:STANDARD\n"; $ics_contents .= "TZOFFSETFROM:-0400\n"; $ics_contents .= "TZOFFSETTO:-0500\n"; $ics_contents .= "DTSTART:20071104T020000\n"; $ics_contents .= "RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\n"; $ics_contents .= "TZNAME:EST\n"; $ics_contents .= "END:STANDARD\n"; $ics_contents .= "END:VTIMEZONE\n"; $events = mysql_query("SELECT node.nid AS nid, node.title AS title, node.changed as node_changed, node.type AS node_type, node.vid AS node_vid, content_field_date.field_date_value as Start, content_field_date.field_date_value2 as End FROM (node left join content_field_date on node.vid = content_field_date.vid) WHERE type = 'event' ORDER BY Start "); function clean_url($desc) { $desc = html_entity_decode($desc); $desc = strip_tags($desc); $desc = ereg_replace("[^A-Za-z0-9 -|=`~!@#$%^&*()_+,./?><:;'{}]", "", $desc ); return $desc; } while ($schedule_details = mysql_fetch_assoc($events)) { if (date('T', strtotime($schedule_details['Start'])) == "EDT") { $Offset = 4*60*60; } else { $Offset = 5*60*60; } $Start = strtotime($schedule_details['Start'])-$Offset; $End = strtotime($schedule_details['End'])-$Offset; #if ($Start >= time()) { $desc1 = mysql_query("SELECT * from node_revisions WHERE nid = '".$schedule_details['nid']."' and vid = '".$schedule_details['node_vid']."'"); $desc1 = mysql_fetch_assoc($desc1); #echo html_entity_decode($desc1['title'])."<br>"; #echo html_entity_decode($desc1['teaser'])."<br>"; #echo html_entity_decode($desc1['body'])."<br><br>"; $Yr = date(Y,$Start); $Mo = date(m,$Start); $Day = date(d,$Start); $Hr = date(H,$Start); $Min = date(i,$Start); $Yr1 = date(Y,$End); $Mo1 = date(m,$End); $Day1 = date(d,$End); $Hr1 = date(H,$End); $Min1 = date(i,$End); $id = $schedule_details['nid']; $start_date = $Yr."-".$Mo."-".$Day; $start_time = $Hr.":".$Min.":00"; $end_date = $Yr1."-".$Mo1."-".$Day1; $end_time = $Hr1.":".$Min1.":00"; # $category = $schedule_details['Category']; $category = "HacDC"; $name = $schedule_details['title']; $location = "1525 Newton St NW, Washington DC 20010 (Near corner of 16th and Newton NW)"; $description = clean_url(strip_tags($desc1['body'])); # Remove '-' in $start_date and $end_date $estart_date = str_replace("-", "", $start_date); $eend_date = str_replace("-", "", $end_date); # Remove ':' in $start_time and $end_time $estart_time = str_replace(":", "", $start_time); $eend_time = str_replace(":", "", $end_time); # Replace some HTML tags $name = str_replace("<br>", "\\r\\n", $name); $name = str_replace("&", "&", $name); $name = str_replace("→", "-->", $name); $name = str_replace("←", "<--", $name); $name = str_replace(",", "\\,", $name); $name = str_replace(";", "\\;", $name); $location = str_replace("<br>", "\\r\\n", $location); $location = str_replace("&", "&", $location); $location = str_replace("→", "-->", $location); $location = str_replace("←", "<--", $location); $location = str_replace(",", "\\,", $location); $location = str_replace(";", "\\;", $location); $description = str_replace("<br>", "\\r\\n", $description); $description = str_replace("&", "&", $description); $description = str_replace("→", "-->", $description); $description = str_replace("←", "<--", $description); $description = str_replace("<em>", "", $description); $description = str_replace("</em>", "", $description); # Change TZID if need be $ics_contents .= "BEGIN:VEVENT\r\n"; $ics_contents .= "DTSTART;TZID=America/New_York:" . $estart_date . "T". $estart_time . "\r\n"; $ics_contents .= "DTEND;TZID=America/New_York:" . $eend_date . "T". $eend_time . "\r\n"; $ics_contents .= "DTSTAMP:" . date('Ymd') . "T". date('His') . "Z\r\n"; $ics_contents .= "SUMMARY:" . $name . "\r\n"; $ics_contents .= "LOCATION:" . $location . "\r\n"; $ics_contents .= "DESCRIPTION:" . $description . "\r\n"; $ics_contents .= "UID:" . $id .rand(0,9999). "\r\n"; $ics_contents .= "SEQUENCE:0\r\n"; $ics_contents .= "END:VEVENT\r\n"; } #} $ics_contents .= "END:VCALENDAR\r\n"; echo $ics_contents;