", $cleanedDescription); // \n in
umwandeln
} else {
$cleanedDescription = '';
}
// ATTACH erfassen (richtige Datei-URL extrahieren)
preg_match('/ATTACH;.*?:([^\n]+)/', $event, $attach);
$attachmentUrl = isset($attach[1]) ? trim($attach[1]) : '';
$data['DTSTART'] = $start[1] ?? '';
$data['DTEND'] = $end[1] ?? '';
$data['SUMMARY'] = $summary[1] ?? '';
$data['LOCATION'] = $location[1] ?? '';
$data['DESCRIPTION'] = $cleanedDescription;
$data['ATTACH'] = $attachmentUrl;
$events[] = $data;
}
return $events;
}
// Datenbankverbindung
include "includes/conn.php";
$conn = new mysqli($servername, $username, $password, $dbname);
// Verbindung prüfen
if ($conn->connect_error) {
die("Verbindung fehlgeschlagen: " . $conn->connect_error);
}
$sql = "SELECT calendardata FROM `oc_calendarobjects` where calendardata LIKE '%$search%' and calendarid LIKE '90'";
$result = $conn->query($sql);
$icsData = "";
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$icsData .= $row["calendardata"] . "\n";
}
}
$conn->close();
$parsedEvents = parseICS($icsData);
// Events nach Startdatum sortieren
usort($parsedEvents, function ($a, $b) {
return strcmp($a['DTSTART'], $b['DTSTART']);
});
?>
Start:
End: format("d.m.Y - H:i"); echo $formattedDate; } else { $dateUnformatted = $endDate; $dateUnformatted = substr($dateUnformatted, 0, -1); $date = DateTime::createFromFormat("Ymd", $dateUnformatted); $formattedDate = $date->format("d.m.Y"); echo $formattedDate; } ?>
Place:
Info: ", htmlspecialchars($event['DESCRIPTION'])); ?>
Attach: