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%
+