moved db_user calls from includes to actual script, buggy when included from navigation
[iserv-mod-room-reservation.git] / src / index.php
index 8b48d53..6ad479d 100644 (file)
-<?php\r
-/**\r
+<?php
+/**
  * @file index.php
- * Main page\r
- * @author Roland Hieber (roland.hieber@wilhelm-gym.net)\r
- * @date 25.02.2008\r
- * \r
- * Copyright © 2007 Roland Hieber\r
- * \r
- * Permission is hereby granted, free of charge, to any person obtaining\r
- * copy of this software and associated documentation files (the "Software"),\r
- * to deal in the Software without restriction, including without limitation\r
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
- * and/or sell copies of the Software, and to permit persons to whom the\r
- * Software is furnished to do so, subject to the following conditions:\r
- * \r
- * The above copyright notice and this permission notice shall be included in\r
- * all copies or substantial portions of the Software.\r
- * \r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
- * THE SOFTWARE.\r
- */\r
-
-require_once("mod_room-reservation/globals.inc");\r
+ * Main page
+ * @author Roland Hieber (roland.hieber@wilhelm-gym.net)
+ * @date 25.02.2008
+ * 
+ * Copyright © 2007 Roland Hieber
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+require_once("mod_room-reservation/globals.inc");
 require_once("mod_room-reservation/mod_roomReservationBookingPage.inc");
+
+db_user("roomreservation");
+
 $page = new mod_roomReservationBookingPage($g_rrCfg, $g_rrRm, $g_rrBm);
 $page->setTitle(_c("room-reservation:Schedule of room bookings"));
 $page->show();
 
-/**\r
-require_once("sec/secure.inc");\r
-require_once("mod_rooms.inc");\r
-TestConfig();\r
-\r
-// Ist der User berechtigt?\r
-$bAllowAccess = false;\r
-foreach($user[groups] as $group)\r
-{\r
-    foreach($cfgRooms["AllowedGroups"] as $allowed)\r
-    {\r
-        $bAllowAccess |= (($group == $allowed) == true);\r
-    }\r
-}\r
-if(!$bAllowAccess and $cfgRooms["RestrictAccess"] == true)\r
-    die_nice("Fehler: Sie sind nicht berechtigt, diese Seite zu benutzen. Wenden Sie sich an einen Administrator.");\r
-\r
-$bookings = new AllBookings(false);\r
-\r
-// Zeitstunden in Schulstunden umrechnen\r
-$lessons_begin = array_flip($cfgRooms["TimeslicesBegin"]);\r
-$lessons_end = array_flip($cfgRooms["TimeslicesEnd"]);\r
-\r
-$action = $_GET["action"];\r
-$room = isset($_GET["room"]) ? $_GET["room"] : $cfgRooms["Rooms"][0];\r
-$start = isset($_GET["start"]) ? $_GET["start"] : Monday();\r
-$act = $user[act];\r
-$id = isset($_POST["id"]) ? $_POST["id"] : $_GET["id"];\r
-$class = isset($_POST["class"]) ? $_POST["class"] : $_GET["class"];\r
-$room_form = isset($_POST["room_form"]) ? $_POST["room_form"] : $_GET["room"];\r
-$date = isset($_POST["date"]) ? $_POST["date"] : $_GET["date"];\r
-$timebegin = isset($_POST["timebegin"]) ? $_POST["timebegin"] : $_GET["timebegin"];\r
-$timeend = isset($_POST["timeend"]) ? $_POST["timeend"] : (isset($_GET["timeend"]) ? $_GET["timeend"] : $cfgRooms["TimeslicesEnd"][$lessons_begin[$timebegin]]);    // Standardmäßig auf einen Zeitraum später als Anfangszeit\r
-$reason = isset($_POST["reason"]) ? $_POST["reason"] : $_GET["reason"];\r
-$submit = $_POST["submit"];\r
-$cancel = $_POST["cancel"];\r
-\r
-PageBlue("Raumbelegungsplan", "rooms_index");\r
-\r
-// Formular anzeigen\r
-function ShowForm()\r
-{\r
-    global $cfgRooms;\r
-    global $act, $class, $room_form, $date, $timebegin, $timeend, $reason, $user;\r
-\r
-    Title("Einen Raum buchen");\r
-    $form = "<p>Füllen Sie das Formular aus und klicken Sie dann auf die Schaltfläche &bdquo;Raum buchen&ldquo;.</p>\r
-<form action='?action=insert' method='post'>\r
-<input type='hidden' name='id' value='$id' />\r
-<table><tr>\r
- <td>Ihr Name:</td><td colspan='4'>{$user[name]}</td>\r
-</tr>";\r
-\r
-    // Klasse nur anzeigen, wenn angeschaltet\r
-    if($cfgRooms["ShowClassEdit"])\r
-        $form .= "<tr>\n <td>".q(stripslashes($cfgRooms["ClassEditText"])).":</td><td colspan='4'><input type='edit' style='width:100%' name='class' value='".q(stripslashes($class))."' /></td>\n</tr>";\r
-\r
-    $form .= "<tr>\n <td>Raum:</td><td colspan='4'><select style='width:100%' name='room_form'>";\r
-    foreach($cfgRooms["Rooms"] as $rm)\r
-    {\r
-        if($rm == $room_form)\r
-            $form .= "<option selected='selected'>".q(stripslashes($rm))."</option>";\r
-        else\r
-            $form .= "<option>".q(stripslashes($rm))."</option>";\r
-    }\r
-    $form .= "</select></td>\n</tr><tr>\n";\r
-    $form .= " <td>Datum:</td><td colspan='4'><input type='text' style='width:100%' name='date' value='".q(stripslashes($date))."' /></td>\n</tr><tr>\n";\r
-    $form .= " <td>Zeit:</td><td>von</td><td><select style='width:60pt' name='timebegin'>";\r
-    foreach($cfgRooms["TimeslicesBegin"] as $time)\r
-    {\r
-        if($time == $timebegin)\r
-            $form .= "<option selected='selected'>".q(stripslashes($time))."</option>";\r
-        else\r
-            $form .= "<option>".q(stripslashes($time))."</option>";\r
-    }\r
-    $form .= "</select></td><td>bis</td><td><select style='width:60pt' name='timeend'>";\r
-    foreach($cfgRooms["TimeslicesEnd"] as $time)\r
-    {\r
-        if($time == $timeend)\r
-            $form .= "<option selected='selected'>".q(stripslashes($time))."</option>";\r
-        else\r
-            $form .= "<option>".q(stripslashes($time))."</option>";\r
-    }\r
-    $form .= "</select></td>\n</tr><tr>\n";\r
-    $form .= " <td>Grund für die Belegung:</td><td colspan='4'><input type='text' style='width:100%' name='reason' value='".q(stripslashes($reason))."' /></td>\n</tr><tr>\n";\r
-    $form .= " <td><input type='submit' class='stdbtn submit' name='submit' value='Raum buchen' />&nbsp;&nbsp;<input type='submit' class='stdbtn submit' name='cancel' value='Abbrechen' /></td>\n</tr></table></form>";\r
-\r
-    echo $form;\r
-}\r
-\r
-\r
-if($action == "book")\r
-{\r
-    ShowForm();\r
-}\r
-// ...oder Buchung löschen?\r
-else if($action == "delete")\r
-{\r
-    // Rausfinden, wo unsere gewünschte ID im Array steht\r
-    for($n = 0; isset($bookings->objBookings[$n]->sqlData->id) and ($id != $bookings->objBookings[$n]->sqlData->id); $n++);\r
-\r
-    // Auf Besitz oder Admin prüfen\r
-    $bAdminMode = FALSE;\r
-    $bAdminMode |= ($bookings->objBookings[$n]->UserIsOwner() and !$bookings->objBookings[$n]->rawData->fixed); // Benutzer dürfen keine festen Buchungen löschen\r
-    $bAdminMode |= $bookings->UserIsAdmin();\r
-    \r
-    if(!$bAdminMode)\r
-        echo "<div class='err'>Sie sind nicht berechtigt, diese Buchung zu löschen!</div>\n";\r
-    else\r
-    {\r
-        if($_POST["surely_delete"] == "Löschen" && $_POST["surely_delete_fixed"] == "true")\r
-        {\r
-            $bookings->Delete($id);\r
-            echo "<div class='err'>Ihre Buchung wurde gelöscht.</div>\n";\r
-        }\r
-        else\r
-        {\r
-            echo "<h1>Eine Buchung löschen</h1>\n";\r
-            if($bookings->objBookings[$n]->rawData->fixed and $_POST["surely_delete_fixed"] == "false")\r
-                echo "<p class='err'>Sie müssen bestätigen, dass Sie die Warnung über das Löschen von festen Buchungen zur Kenntnis genommen haben.</p>\n";\r
-            // Formular zur Bestätigung anzeigen\r
-            echo "<p>Wollen Sie diese Buchung löschen?<p>\n";\r
-            $bookings->PrintBooking($id);\r
-            echo "<br />\n";\r
-            echo "<form action='?action=delete&amp;id=$id' method='post'>\n";\r
-            if($bookings->objBookings[$n]->rawData->fixed)\r
-                // Bestätigungsfeld für feste Buchungen\r
-                echo "<p>".icona("dlg-warn", 16)."<b>Achtung:</b> Diese Buchung ist eine feste Buchung. Wenn sie gelöscht wird, wird der Zeitraum nicht in dieser Woche, sondern in <b>allen Wochen</b> wieder freigegeben.</p>\n<p><input type='hidden' name='surely_delete_fixed' value='false' /><$smlchk name='surely_delete_fixed' value='true' /><label for='surely_delete_fixed'>Ich habe diese Warnung zur Kenntnis genommen.</label></p>\n";\r
-            else\r
-                echo "<input type='hidden' name='surely_delete_fixed' value='true' />\n";\r
-            echo "<$stdbtn name='surely_delete' value='Löschen' /></form>\n";\r
-        }\r
-    }\r
-\r
-    // Zurück-Link anzeigen\r
-    Option(_("Back"), "", "href='?room=$room&amp;start=$start'", "back");\r
-}\r
-\r
-// ... oder alle Buchungen anzeigen / Buchung eintragen?\r
-else\r
-{\r
-    if($action == "insert" and $submit == "Raum buchen")\r
-    {\r
-        $err = $bookings->Insert(null, $room_form, $date, $timebegin, $timeend, $act, $class, $reason, false);\r
-        if(!$err)\r
-        {\r
-            switch($bookings->lastError)\r
-            {\r
-                case ALLBOOKINGS_SQL_ERROR:\r
-                    ReportError("\$booking->Insert", $booking->lastError, __FILE__, __LINE__);\r
-                default:\r
-            }\r
-            ShowForm();\r
-            die_nice();\r
-        }\r
-        else\r
-        {\r
-            // Log-Eintrag, wenn erwünscht\r
-            if($cfgRooms["LogOnInsert"])\r
-                InsertLog("Raum $room_form am $date von $timebegin bis $timeend gebucht. Begründung: $reason");\r
-\r
-            // Passenderweise gleich die Woche mit der eingetragenen Buchung anzeigen\r
-            $tmp = explode(".", $date);\r
-            $start = Monday(strtotime($tmp[2]."-".$tmp[1]."-".$tmp[0]));\r
-            $room = $room_form;\r
-            Title("Raumbelegungen für den Raum $room in Woche ".date("W", $start));\r
-            echo "<p class='err'>".icona("dlg-info", 16, "bl")."Ihre Buchung wurde eingetragen.</p>\n";\r
-        }\r
-    }\r
-    else\r
-    {\r
-        Title("Raumbelegungen für den Raum $room in Woche ".date("W", $start));\r
-    }\r
-\r
-    $nPrevWeek = strtotime("last monday", Monday($start));  // der Montag vor dem Montag in der Startwoche\r
-    $nFirstWeek = Monday();                                 // der Montag in der aktuellen Woche\r
-    $nLastWeek = strtotime("last monday", Monday($bookings->GetLastBookingDate()));\r
-    $nNextWeek = strtotime("next monday", Monday($start));       // der Montag nach dem Montag der Startwoche\r
-\r
-    echo "<form action=''>\r
-Raum: <select onchange='window.location.href=\"{$_SERVER["PHP_SELF"]}?start=$start&amp;room=\" + this.options[this.options.selectedIndex].text;' width='250'>\n";\r
-    foreach($cfgRooms["Rooms"] as $opt)\r
-    {\r
-        echo " <option";\r
-        if($opt == $room)\r
-            echo " selected='selected'";\r
-        echo ">".q(stripslashes($opt))."</option>\n";\r
-    }\r
-    echo "</select></form></p>";\r
-\r
-    // Navigation für die Wochen ausgeben\r
-    echo "<p><a href='?start=$nPrevWeek&amp;room=".qu(stripslashes($room))."' title='Zur vorherigen Woche blättern'>Vorherige Woche</a> | <a href='?start=$nFirstWeek&amp;room=".qu(stripslashes($room))."' title='Zur aktuellen Woche blättern'>Aktuelle Woche</a> | ";\r
-    // Fünf Wochen zur direkten Anwahl anbieten\r
-    for($i = 1; $i <= 5; $i++)\r
-    {\r
-        $nCurWeek = Monday(strtotime("$i week", $start));\r
-        echo "<a href='?start=$nCurWeek&amp;room=".qu(stripslashes($room))."' title='Zu Woche ".date("W", $nCurWeek)." blättern'>Woche ".date("W", $nCurWeek)."</a> | ";\r
-    }\r
-    echo "<a href='?start=$nLastWeek&amp;room=".qu(stripslashes($room))."' title='Zur Woche mit der letzen Buchung blättern'>Letzte Buchung</a> | <a href='?start=$nNextWeek&amp;room=".qu(stripslashes($room))."' title='Zur nächsten Woche blättern'>Nächste Woche</a></p>";\r
-    echo "<p><ul>\r
- <li>Um eine Buchung vorzunehmen dort auf &bdquo;Ab hier buchen&ldquo; klicken, wo die Buchung beginnen soll.</li>\r
- <li><b>Neu:</b> Eigene Buchungen (au&szlig;er den wiederkehrenden Buchungen in dunkelblau) können gelöscht werden, indem auf den Link &bdquo;Buchung löschen&ldquo; geklickt wird.</li>\r
- <li>Mit Klick auf den Benutzernamen kann eine E-Mail an den Benutzer geschrieben werden.</li>\r
-</ul></p>\n";\r
-\r
-    $bookings->PrintTimeTable($start, $room);\r
-\r
-    echo "<br />";\r
-}\r
-\r
-_PageBlue();\r
-*/\r
-?>\r
+/**
+require_once("sec/secure.inc");
+require_once("mod_rooms.inc");
+TestConfig();
+
+// Ist der User berechtigt?
+$bAllowAccess = false;
+foreach($user[groups] as $group)
+{
+    foreach($cfgRooms["AllowedGroups"] as $allowed)
+    {
+        $bAllowAccess |= (($group == $allowed) == true);
+    }
+}
+if(!$bAllowAccess and $cfgRooms["RestrictAccess"] == true)
+    die_nice("Fehler: Sie sind nicht berechtigt, diese Seite zu benutzen. Wenden Sie sich an einen Administrator.");
+
+$bookings = new AllBookings(false);
+
+// Zeitstunden in Schulstunden umrechnen
+$lessons_begin = array_flip($cfgRooms["TimeslicesBegin"]);
+$lessons_end = array_flip($cfgRooms["TimeslicesEnd"]);
+
+$action = $_GET["action"];
+$room = isset($_GET["room"]) ? $_GET["room"] : $cfgRooms["Rooms"][0];
+$start = isset($_GET["start"]) ? $_GET["start"] : Monday();
+$act = $user[act];
+$id = isset($_POST["id"]) ? $_POST["id"] : $_GET["id"];
+$class = isset($_POST["class"]) ? $_POST["class"] : $_GET["class"];
+$room_form = isset($_POST["room_form"]) ? $_POST["room_form"] : $_GET["room"];
+$date = isset($_POST["date"]) ? $_POST["date"] : $_GET["date"];
+$timebegin = isset($_POST["timebegin"]) ? $_POST["timebegin"] : $_GET["timebegin"];
+$timeend = isset($_POST["timeend"]) ? $_POST["timeend"] : (isset($_GET["timeend"]) ? $_GET["timeend"] : $cfgRooms["TimeslicesEnd"][$lessons_begin[$timebegin]]);    // Standardmäßig auf einen Zeitraum später als Anfangszeit
+$reason = isset($_POST["reason"]) ? $_POST["reason"] : $_GET["reason"];
+$submit = $_POST["submit"];
+$cancel = $_POST["cancel"];
+
+PageBlue("Raumbelegungsplan", "rooms_index");
+
+// Formular anzeigen
+function ShowForm()
+{
+    global $cfgRooms;
+    global $act, $class, $room_form, $date, $timebegin, $timeend, $reason, $user;
+
+    Title("Einen Raum buchen");
+    $form = "<p>Füllen Sie das Formular aus und klicken Sie dann auf die Schaltfläche &bdquo;Raum buchen&ldquo;.</p>
+<form action='?action=insert' method='post'>
+<input type='hidden' name='id' value='$id' />
+<table><tr>
+ <td>Ihr Name:</td><td colspan='4'>{$user[name]}</td>
+</tr>";
+
+    // Klasse nur anzeigen, wenn angeschaltet
+    if($cfgRooms["ShowClassEdit"])
+        $form .= "<tr>\n <td>".q(stripslashes($cfgRooms["ClassEditText"])).":</td><td colspan='4'><input type='edit' style='width:100%' name='class' value='".q(stripslashes($class))."' /></td>\n</tr>";
+
+    $form .= "<tr>\n <td>Raum:</td><td colspan='4'><select style='width:100%' name='room_form'>";
+    foreach($cfgRooms["Rooms"] as $rm)
+    {
+        if($rm == $room_form)
+            $form .= "<option selected='selected'>".q(stripslashes($rm))."</option>";
+        else
+            $form .= "<option>".q(stripslashes($rm))."</option>";
+    }
+    $form .= "</select></td>\n</tr><tr>\n";
+    $form .= " <td>Datum:</td><td colspan='4'><input type='text' style='width:100%' name='date' value='".q(stripslashes($date))."' /></td>\n</tr><tr>\n";
+    $form .= " <td>Zeit:</td><td>von</td><td><select style='width:60pt' name='timebegin'>";
+    foreach($cfgRooms["TimeslicesBegin"] as $time)
+    {
+        if($time == $timebegin)
+            $form .= "<option selected='selected'>".q(stripslashes($time))."</option>";
+        else
+            $form .= "<option>".q(stripslashes($time))."</option>";
+    }
+    $form .= "</select></td><td>bis</td><td><select style='width:60pt' name='timeend'>";
+    foreach($cfgRooms["TimeslicesEnd"] as $time)
+    {
+        if($time == $timeend)
+            $form .= "<option selected='selected'>".q(stripslashes($time))."</option>";
+        else
+            $form .= "<option>".q(stripslashes($time))."</option>";
+    }
+    $form .= "</select></td>\n</tr><tr>\n";
+    $form .= " <td>Grund für die Belegung:</td><td colspan='4'><input type='text' style='width:100%' name='reason' value='".q(stripslashes($reason))."' /></td>\n</tr><tr>\n";
+    $form .= " <td><input type='submit' class='stdbtn submit' name='submit' value='Raum buchen' />&nbsp;&nbsp;<input type='submit' class='stdbtn submit' name='cancel' value='Abbrechen' /></td>\n</tr></table></form>";
+
+    echo $form;
+}
+
+
+if($action == "book")
+{
+    ShowForm();
+}
+// ...oder Buchung löschen?
+else if($action == "delete")
+{
+    // Rausfinden, wo unsere gewünschte ID im Array steht
+    for($n = 0; isset($bookings->objBookings[$n]->sqlData->id) and ($id != $bookings->objBookings[$n]->sqlData->id); $n++);
+
+    // Auf Besitz oder Admin prüfen
+    $bAdminMode = FALSE;
+    $bAdminMode |= ($bookings->objBookings[$n]->UserIsOwner() and !$bookings->objBookings[$n]->rawData->fixed); // Benutzer dürfen keine festen Buchungen löschen
+    $bAdminMode |= $bookings->UserIsAdmin();
+    
+    if(!$bAdminMode)
+        echo "<div class='err'>Sie sind nicht berechtigt, diese Buchung zu löschen!</div>\n";
+    else
+    {
+        if($_POST["surely_delete"] == "Löschen" && $_POST["surely_delete_fixed"] == "true")
+        {
+            $bookings->Delete($id);
+            echo "<div class='err'>Ihre Buchung wurde gelöscht.</div>\n";
+        }
+        else
+        {
+            echo "<h1>Eine Buchung löschen</h1>\n";
+            if($bookings->objBookings[$n]->rawData->fixed and $_POST["surely_delete_fixed"] == "false")
+                echo "<p class='err'>Sie müssen bestätigen, dass Sie die Warnung über das Löschen von festen Buchungen zur Kenntnis genommen haben.</p>\n";
+            // Formular zur Bestätigung anzeigen
+            echo "<p>Wollen Sie diese Buchung löschen?<p>\n";
+            $bookings->PrintBooking($id);
+            echo "<br />\n";
+            echo "<form action='?action=delete&amp;id=$id' method='post'>\n";
+            if($bookings->objBookings[$n]->rawData->fixed)
+                // Bestätigungsfeld für feste Buchungen
+                echo "<p>".icona("dlg-warn", 16)."<b>Achtung:</b> Diese Buchung ist eine feste Buchung. Wenn sie gelöscht wird, wird der Zeitraum nicht in dieser Woche, sondern in <b>allen Wochen</b> wieder freigegeben.</p>\n<p><input type='hidden' name='surely_delete_fixed' value='false' /><$smlchk name='surely_delete_fixed' value='true' /><label for='surely_delete_fixed'>Ich habe diese Warnung zur Kenntnis genommen.</label></p>\n";
+            else
+                echo "<input type='hidden' name='surely_delete_fixed' value='true' />\n";
+            echo "<$stdbtn name='surely_delete' value='Löschen' /></form>\n";
+        }
+    }
+
+    // Zurück-Link anzeigen
+    Option(_("Back"), "", "href='?room=$room&amp;start=$start'", "back");
+}
+
+// ... oder alle Buchungen anzeigen / Buchung eintragen?
+else
+{
+    if($action == "insert" and $submit == "Raum buchen")
+    {
+        $err = $bookings->Insert(null, $room_form, $date, $timebegin, $timeend, $act, $class, $reason, false);
+        if(!$err)
+        {
+            switch($bookings->lastError)
+            {
+                case ALLBOOKINGS_SQL_ERROR:
+                    ReportError("\$booking->Insert", $booking->lastError, __FILE__, __LINE__);
+                default:
+            }
+            ShowForm();
+            die_nice();
+        }
+        else
+        {
+            // Log-Eintrag, wenn erwünscht
+            if($cfgRooms["LogOnInsert"])
+                InsertLog("Raum $room_form am $date von $timebegin bis $timeend gebucht. Begründung: $reason");
+
+            // Passenderweise gleich die Woche mit der eingetragenen Buchung anzeigen
+            $tmp = explode(".", $date);
+            $start = Monday(strtotime($tmp[2]."-".$tmp[1]."-".$tmp[0]));
+            $room = $room_form;
+            Title("Raumbelegungen für den Raum $room in Woche ".date("W", $start));
+            echo "<p class='err'>".icona("dlg-info", 16, "bl")."Ihre Buchung wurde eingetragen.</p>\n";
+        }
+    }
+    else
+    {
+        Title("Raumbelegungen für den Raum $room in Woche ".date("W", $start));
+    }
+
+    $nPrevWeek = strtotime("last monday", Monday($start));  // der Montag vor dem Montag in der Startwoche
+    $nFirstWeek = Monday();                                 // der Montag in der aktuellen Woche
+    $nLastWeek = strtotime("last monday", Monday($bookings->GetLastBookingDate()));
+    $nNextWeek = strtotime("next monday", Monday($start));       // der Montag nach dem Montag der Startwoche
+
+    echo "<form action=''>
+Raum: <select onchange='window.location.href=\"{$_SERVER["PHP_SELF"]}?start=$start&amp;room=\" + this.options[this.options.selectedIndex].text;' width='250'>\n";
+    foreach($cfgRooms["Rooms"] as $opt)
+    {
+        echo " <option";
+        if($opt == $room)
+            echo " selected='selected'";
+        echo ">".q(stripslashes($opt))."</option>\n";
+    }
+    echo "</select></form></p>";
+
+    // Navigation für die Wochen ausgeben
+    echo "<p><a href='?start=$nPrevWeek&amp;room=".qu(stripslashes($room))."' title='Zur vorherigen Woche blättern'>Vorherige Woche</a> | <a href='?start=$nFirstWeek&amp;room=".qu(stripslashes($room))."' title='Zur aktuellen Woche blättern'>Aktuelle Woche</a> | ";
+    // Fünf Wochen zur direkten Anwahl anbieten
+    for($i = 1; $i <= 5; $i++)
+    {
+        $nCurWeek = Monday(strtotime("$i week", $start));
+        echo "<a href='?start=$nCurWeek&amp;room=".qu(stripslashes($room))."' title='Zu Woche ".date("W", $nCurWeek)." blättern'>Woche ".date("W", $nCurWeek)."</a> | ";
+    }
+    echo "<a href='?start=$nLastWeek&amp;room=".qu(stripslashes($room))."' title='Zur Woche mit der letzen Buchung blättern'>Letzte Buchung</a> | <a href='?start=$nNextWeek&amp;room=".qu(stripslashes($room))."' title='Zur nächsten Woche blättern'>Nächste Woche</a></p>";
+    echo "<p><ul>
+ <li>Um eine Buchung vorzunehmen dort auf &bdquo;Ab hier buchen&ldquo; klicken, wo die Buchung beginnen soll.</li>
+ <li><b>Neu:</b> Eigene Buchungen (au&szlig;er den wiederkehrenden Buchungen in dunkelblau) können gelöscht werden, indem auf den Link &bdquo;Buchung löschen&ldquo; geklickt wird.</li>
+ <li>Mit Klick auf den Benutzernamen kann eine E-Mail an den Benutzer geschrieben werden.</li>
+</ul></p>\n";
+
+    $bookings->PrintTimeTable($start, $room);
+
+    echo "<br />";
+}
+
+_PageBlue();
+*/
+?>
This page took 0.045254 seconds and 4 git commands to generate.