2018-04-13 21:35:16 +02:00
|
|
|
<?php
|
|
|
|
try {
|
2019-02-16 00:22:58 +01:00
|
|
|
include 'config.php';
|
|
|
|
$conn = new PDO("mysql:dbname=$MYSQL_DBNAME;host=$MYSQL_HOST", $MYSQL_USERNAME, $MYSQL_PASSWORD);
|
2018-04-13 21:35:16 +02:00
|
|
|
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
|
|
$conn-> exec("SET CHARACTER SET utf8");
|
2019-02-16 00:22:58 +01:00
|
|
|
|
|
|
|
header('Content-type: text/calendar; charset=utf-8');
|
|
|
|
|
2018-04-13 21:35:16 +02:00
|
|
|
} catch(PDOException $e) {
|
|
|
|
echo "Webseite wird momentan überarbeitet";
|
2019-02-16 00:22:58 +01:00
|
|
|
return;
|
2018-04-13 21:35:16 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$stmt = $conn->prepare('select * from places');
|
|
|
|
if(isset($_GET["places_id"])){
|
|
|
|
$stmt = $conn->prepare('select * from places where id = :id');
|
|
|
|
$stmt->bindParam(':id', $_GET["places_id"]);
|
|
|
|
}else{
|
|
|
|
|
|
|
|
$filename = "all.ics";
|
|
|
|
}
|
|
|
|
$stmt->execute();
|
|
|
|
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if(isset($_GET["places_id"])){
|
|
|
|
$filename = $result['name'].'.ics';
|
|
|
|
}else{
|
|
|
|
$filename = "all.ics";
|
|
|
|
}
|
|
|
|
header('Content-Disposition: inline; filename=' . $filename);
|
|
|
|
|
|
|
|
function dateToCal($timestamp) {
|
|
|
|
return date('Ymd\THis\Z', strtotime($timestamp));
|
|
|
|
}
|
|
|
|
// Escapes a string of characters
|
|
|
|
function escapeString($string) {
|
|
|
|
return preg_replace('/([\,;])/','\\\$1', str_replace("\n","\r\n ", str_replace("\r\n","\n",$string)));
|
|
|
|
}
|
|
|
|
|
|
|
|
$stmt = $conn->prepare('select events.*,places.address from events join places on events.places_id=places.id');
|
|
|
|
if(isset($_GET["places_id"])){
|
|
|
|
$stmt = $conn->prepare('select events.*,places.address from events join places on events.places_id=places.id where places_id = :id');
|
|
|
|
$stmt->bindParam(':id', $_GET["places_id"]);
|
|
|
|
}
|
|
|
|
$stmt->execute();
|
|
|
|
|
|
|
|
?>
|
|
|
|
BEGIN:VCALENDAR
|
|
|
|
VERSION:2.0
|
|
|
|
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
|
|
|
|
CALSCALE:GREGORIAN
|
|
|
|
<?php
|
|
|
|
foreach($stmt->fetchAll() as $row) {
|
|
|
|
?>
|
|
|
|
BEGIN:VEVENT
|
|
|
|
UID:<?= uniqid() ?>
|
|
|
|
|
|
|
|
DTSTAMP:<?= date('Ymd\THis\Z',time()) ?>
|
|
|
|
|
|
|
|
LOCATION:<?= escapeString($row['address']) ?>
|
|
|
|
|
|
|
|
DESCRIPTION:<?= escapeString($row['description']) ?>
|
|
|
|
|
|
|
|
URL;VALUE=URI:<?= escapeString("http://kartontage.de/") ?>
|
|
|
|
|
|
|
|
SUMMARY:<?= escapeString($row['title']) ?>
|
|
|
|
|
|
|
|
CATEGORIES:<?= escapeString($row['category']) ?>
|
|
|
|
|
|
|
|
DTSTART:<?= dateToCal($row['time']) ?>
|
|
|
|
|
|
|
|
END:VEVENT
|
|
|
|
<?php } ?>
|
|
|
|
END:VCALENDAR
|