Ics.php: Difference between revisions
From HacDC Wiki
(Created page with 'This code still needs to be cleaned up some. <?php include('Drupal.login.php'); $ics_contents = "BEGIN:VCALENDAR\n"; $ics_contents .= "VERSION:2.0\n"; $ics_contents .= "PRODI…') |
No edit summary |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Obsolete}} | |||
This code still needs to be cleaned up some. | This code still needs to be cleaned up some. | ||
*Note, this script requires: [[Drupal.login.php]] | |||
echo $ics_contents; | <?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> | |||
<nowiki>#</nowiki> 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> | |||
<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> | |||
$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 = "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> | |||
<nowiki>#</nowiki> Remove '-' in $start_date and $end_date<br> | |||
$estart_date = str_replace("-", "", $start_date);<br> | |||
$eend_date = str_replace("-", "", $end_date);<br> | |||
<br> | |||
<nowiki>#</nowiki> Remove ':' in $start_time and $end_time<br> | |||
$estart_time = str_replace(":", "", $start_time);<br> | |||
$eend_time = str_replace(":", "", $end_time);<br> | |||
<br> | |||
<nowiki>#</nowiki> 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> | |||
<nowiki>#</nowiki> 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> | |||
$ics_contents .= "END:VCALENDAR\r\n";<br> | |||
<br> | |||
echo $ics_contents;<br> |
Latest revision as of 21:14, 3 April 2012
Information on this page is Obsolete; it is preserved for historical interest |
This code still needs to be cleaned up some.
- Note, this script requires: Drupal.login.php
<?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;
$desc1 = mysql_query("SELECT * from node_revisions
WHERE
nid = '".$schedule_details['nid']."' and
vid = '".$schedule_details['node_vid']."'");
$desc1 = mysql_fetch_assoc($desc1);
$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 = "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;