-
Notifications
You must be signed in to change notification settings - Fork 0
/
exportcal.php
117 lines (97 loc) · 4.85 KB
/
exportcal.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
$include = explode(",", htmlspecialchars($_GET["include"]));
// require_once($_SERVER['DOCUMENT_ROOT'] . "/includes/calendar/zapcallib.php");
include("db.php");
header('Content-type:text/calendar');
echo "BEGIN:VCALENDAR
VERSION:2.0
PRODID://TITANDISTANCE//20
TZID:America/Chicago\n";
// $icalobj = new ZCiCal();
if (in_array('practices', $include)) {
$result = mysqli_query($con, "SELECT date,practicetime,practicename FROM workouts WHERE practicename IS NOT NULL");
while ($row = mysqli_fetch_array($result)) {
$timestamp = strtotime($row['date'] . $row['practicetime']);
$title = $row['practicename'];
$description = "View the workout at https://titandistance.com/workouts";
generateEvent($title, $timestamp, $timestamp, $timestamp, $description, null);
}
}
if (in_array('schedule', $include)) {
$result = mysqli_query($con, "SELECT Date,Time,Name,id,Location,Day2Time,Day2Levels,Levels,Series,last_updated FROM meets WHERE NOT(`Status` <=> 'C')");
while ($row = mysqli_fetch_array($result)) {
if (empty($row['Day2Time'])) {
$title = $row['Name'];
} else {
$title = $row['Name'] . " (" . $row['Levels'] . ")";
}
if (empty($row['Series'])) {
$url = "https://titandistance.com/meet/" . $row['id'];
} else {
$url = "https://titandistance.com/meet/" . $row['Series'] . "/" . $d = date("Y", strtotime($row['Date']));
}
$timestamp = strtotime($row['Date'] . $row['Time']);
$description = "For Meet Information, please visit: " . $url;
$location = $row['Location'];
$endtime = $timestamp + strtotime("+3 hours");
$update = date($row['last_updated']);
if (!str_contains($title, "Unknown")) {
generateEvent($title, $timestamp, $timestamp, $row['last_updated']."-".$row['id'], $description, $location);
}
// if (!empty($row['Day2Time'])) {
// $start = $row['Day2Time'];
// $finish = date('Y-m-d H:i:s', strtotime('+4 hour', strtotime($start)));
// $title = $row['Name'] . " (" . $row['Day2Levels'] . ")";
// ZCTimeZoneHelper::getTZNode(substr($start, 0, 4), substr($finish, 0, 4), $tzid, $icalobj->curnode);
// $eventobj = new ZCiCalNode("VEVENT", $icalobj->curnode);
// $eventobj->addNode(new ZCiCalDataNode("SUMMARY:" . $title));
// $eventobj->addNode(new ZCiCalDataNode("DTSTART:" . ZCiCal::fromSqlDateTime($start)));
// $eventobj->addNode(new ZCiCalDataNode("DTEND:" . ZCiCal::fromSqlDateTime($finish)));
// $uid = $row['id'] . "[email protected]";
// $eventobj->addNode(new ZCiCalDataNode("UID:" . $uid));
// $eventobj->addNode(new ZCiCalDataNode("DTSTAMP:" . ZCiCal::fromSqlDateTime()));
// $eventobj->addNode(new ZCiCalDataNode("LOCATION:" . ZCiCal::formatContent($location)));
// $eventobj->addNode(new ZCiCalDataNode("Description:" . ZCiCal::formatContent("For Meet Information, please visit: " . $url)));
// }
}
}
if (in_array('events', $include)) {
$result = mysqli_query($con, "SELECT * FROM events WHERE title IS NOT NULL");
while ($row = mysqli_fetch_array($result)) {
if ($row['allday'] == 1) {
$timestamp = strtotime($row['start']);
$finish = $timestamp;
} else {
$timestamp = strtotime($row['start']);
if (!empty($row['end'])) {
$finish = strtotime($row['end']);
} else {
$finish = strtotime('+2 hour', strtotime($row['start']));
}
}
$title = $row['title'];
if (empty($row['description'])) {
$description = "Learn more about this event on https://titandistance.com/";
} else {
$description = $row['description'];
}
generateEvent($title, $timestamp, $finish, $row['id'] . "event", $description, null);
}
}
echo "END:VCALENDAR";
function generateEvent($title, $start, $end, $uid, $description, $location)
{
echo "BEGIN:VEVENT\n";
echo "SUMMARY:" . $title . "\n";
echo "DTSTAMP:" . gmdate("Ymd\THis", $start) . "\n";
echo "DTSTART:" . gmdate("Ymd\THis", $start) . "\n";
echo "DTEND:" . gmdate("Ymd\THis", $end) . "\n";
if (!empty($description)) {
echo "DESCRIPTION:" . $description . "\n";
}
if (!empty($location)) {
echo "LOCATION:" . $location . "\n";
}
echo "UID:" . $uid . "@schedule.cal.titandistance.com\n";
echo "END:VEVENT\n";
}