diff --git a/includes/pages/user_myshifts.php b/includes/pages/user_myshifts.php index 60c5bba0..78fdf8a1 100644 --- a/includes/pages/user_myshifts.php +++ b/includes/pages/user_myshifts.php @@ -44,7 +44,7 @@ function user_myshifts() { header("Location: " . page_link_to('user_myshifts')); } $shifts = sql_select("SELECT * FROM `ShiftEntry` JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`) JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `UID`=" . sql_escape($user['UID']) . " ORDER BY `start`"); - + $html = ""; foreach ($shifts as $shift) { if (time() > $shift['end']) @@ -66,10 +66,17 @@ function user_myshifts() { if ($html == "") $html = 'Keine...Gehe zum Schichtplan um Dich für Schichten einzutragen.'; + if ($user['ical_key'] == "") { + $user['ical_key'] = md5($user['Nick'] . time() . rand()); + sql_query("UPDATE `User` SET `ical_key`='" . sql_escape($user['ical_key']) . "' WHERE `UID`='" . sql_escape($user['UID']) . "' LIMIT 1"); + } + return template_render('../templates/user_myshifts.html', array ( 'h' => $LETZTES_AUSTRAGEN, 'shifts' => $html, - 'msg' => $msg + 'msg' => $msg, + 'ical_link' => page_link_to_absolute('ical') . '&key=' . $user['ical_key'], + 'reset_link' => page_link_to('user_myshifts') . '&reset' )); } ?> \ No newline at end of file diff --git a/includes/sys_menu.php b/includes/sys_menu.php index 448323e1..00bf4801 100644 --- a/includes/sys_menu.php +++ b/includes/sys_menu.php @@ -3,6 +3,10 @@ function page_link_to($page) { return '?p=' . $page; } +function page_link_to_absolute($page) { + return (isset ($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . preg_replace("/\?.*$/", '', $_SERVER['REQUEST_URI']) . page_link_to($page); +} + function make_navigation() { global $p; global $privileges; diff --git a/templates/user_myshifts.html b/templates/user_myshifts.html index 9aee533d..97f66601 100644 --- a/templates/user_myshifts.html +++ b/templates/user_myshifts.html @@ -1,9 +1,10 @@

Hier sind Deine Schichten.
- Versuche bitte 15 Minuten vor Schichtbeginn anwesend zu sein! + Versuche bitte 15 Minuten + vor Schichtbeginn anwesend zu sein!
- Du kannst Dich %h% Stunden vor Schichtbeginn noch aus Schichten wieder austragen. + Du kannst Dich %h% Stunden vor Schichtbeginn noch aus Schichten wieder austragen.

%msg% @@ -33,3 +34,10 @@ %shifts%
+
+

iCal Export

+

+ Zum abonnieren in Deiner Kalender-Software benutze folgenden öffentlichen Link (daher bitte geheimhalten, im Notfall Deinen Key zurücksetzen): +
+ %ical_link% +