hacdc-wiki/Old Wiki/Ics.php.md
2024-06-13 15:21:56 -04:00

4.8 KiB
Executable File

This code still needs to be cleaned up some.

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(" ", "\\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(" ", "\\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(" ", "\\r\\n", \$description); \$description = str_replace("&", "&", \$description); \$description = str_replace("→", "--\>", \$description); \$description = str_replace("←", "\<--", \$description); \$description = str_replace("", "", \$description); \$description = str_replace("", "", \$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;