-/**\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 „Raum buchen“.</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' /> <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&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&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&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&room=".qu(stripslashes($room))."' title='Zur vorherigen Woche blättern'>Vorherige Woche</a> | <a href='?start=$nFirstWeek&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&room=".qu(stripslashes($room))."' title='Zu Woche ".date("W", $nCurWeek)." blättern'>Woche ".date("W", $nCurWeek)."</a> | ";\r
- }\r
- echo "<a href='?start=$nLastWeek&room=".qu(stripslashes($room))."' title='Zur Woche mit der letzen Buchung blättern'>Letzte Buchung</a> | <a href='?start=$nNextWeek&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 „Ab hier buchen“ klicken, wo die Buchung beginnen soll.</li>\r
- <li><b>Neu:</b> Eigene Buchungen (außer den wiederkehrenden Buchungen in dunkelblau) können gelöscht werden, indem auf den Link „Buchung löschen“ 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 „Raum buchen“.</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' /> <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&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&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&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&room=".qu(stripslashes($room))."' title='Zur vorherigen Woche blättern'>Vorherige Woche</a> | <a href='?start=$nFirstWeek&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&room=".qu(stripslashes($room))."' title='Zu Woche ".date("W", $nCurWeek)." blättern'>Woche ".date("W", $nCurWeek)."</a> | ";
+ }
+ echo "<a href='?start=$nLastWeek&room=".qu(stripslashes($room))."' title='Zur Woche mit der letzen Buchung blättern'>Letzte Buchung</a> | <a href='?start=$nNextWeek&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 „Ab hier buchen“ klicken, wo die Buchung beginnen soll.</li>
+ <li><b>Neu:</b> Eigene Buchungen (außer den wiederkehrenden Buchungen in dunkelblau) können gelöscht werden, indem auf den Link „Buchung löschen“ 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();
+*/
+?>