Files
praxis-creutzburg-web/ical/urlaub_generator.php
T
2026-03-20 17:13:38 +01:00

52 lines
1.8 KiB
PHP

<?php
require_once("./zapcallib.php");
include './../inc/config.inc.php';
$startdate= date('Y-m-d',(strtotime ( '-180 days' ) ));
// SQL-Abfrage, um Urlaubstermine abzurufen
$sql = 'SELECT DATE_ADD(start, INTERVAL 1 DAY) AS stadate , DATE_ADD(ende, INTERVAL 1 DAY) AS enddate FROM urlaub WHERE start >= "' . $startdate . '"';
$sql = 'SELECT start AS stadate , DATE_ADD(ende, INTERVAL 1 DAY) AS enddate FROM urlaub WHERE start >= "' . $startdate . '"';
#echo $sql;
$result = mysqli_query($con, $sql);
// create the ical object
$icalobj = new ZCiCal();
$title = "Urlaub";
// Iteriere durch die Ergebnisse und füge Events zur iCal-Datei hinzu
while ($row = mysqli_fetch_assoc($result)) {
// create the event within the ical object
$eventobj = new ZCiCalNode("VEVENT", $icalobj->curnode);
// add title
$eventobj->addNode(new ZCiCalDataNode("SUMMARY:" . $title));
// add start date
$eventobj->addNode(new ZCiCalDataNode("DTSTART:" . ZCiCal::fromSqlDateTime($row["stadate"])));
// add end date
$eventobj->addNode(new ZCiCalDataNode("DTEND:" . ZCiCal::fromSqlDateTime($row["enddate"])));
}
// iCal-Datei ausgeben
file_put_contents("kalender.ics", $icalobj->export());
file_put_contents("kalender.ical", $icalobj->export());
echo "Aktualisierung angestossen. Bitte Kalender pruefen.<br>Wenn in dieser Liste der Eintrag steht, dann sind Anfragen und Telefonanlage vorbereitet!<br><br>";
#echo file_get_contents('./kalender.ical', true);
$handle = fopen("./kalender.ical", "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
// process the line read.
echo $line . "<br>";
}
fclose($handle);
}
echo"<br>Der letzte oder vorherige Eintrag bei DTSTART und DTEND sollte das gewuenschte Urlaubsdatum plus einen Tag haben.<br>
20240330 steht fuer den 30.03.2024.<br>
";
?>