setTitle(_c("room-reservation:Schedule of room bookings")); $page->show(); /** 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 = "

Füllen Sie das Formular aus und klicken Sie dann auf die Schaltfläche „Raum buchen“.

"; // Klasse nur anzeigen, wenn angeschaltet if($cfgRooms["ShowClassEdit"]) $form .= "\n \n"; $form .= "\n \n\n"; $form .= " \n\n"; $form .= " \n\n"; $form .= " \n\n"; $form .= " \n
Ihr Name:{$user[name]}
".q(stripslashes($cfgRooms["ClassEditText"])).":
Raum:
Datum:
Zeit:vonbis
Grund für die Belegung:
  
"; 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 "
Sie sind nicht berechtigt, diese Buchung zu löschen!
\n"; else { if($_POST["surely_delete"] == "Löschen" && $_POST["surely_delete_fixed"] == "true") { $bookings->Delete($id); echo "
Ihre Buchung wurde gelöscht.
\n"; } else { echo "

Eine Buchung löschen

\n"; if($bookings->objBookings[$n]->rawData->fixed and $_POST["surely_delete_fixed"] == "false") echo "

Sie müssen bestätigen, dass Sie die Warnung über das Löschen von festen Buchungen zur Kenntnis genommen haben.

\n"; // Formular zur Bestätigung anzeigen echo "

Wollen Sie diese Buchung löschen?

\n"; $bookings->PrintBooking($id); echo "
\n"; echo "

\n"; if($bookings->objBookings[$n]->rawData->fixed) // Bestätigungsfeld für feste Buchungen echo "

".icona("dlg-warn", 16)."Achtung: Diese Buchung ist eine feste Buchung. Wenn sie gelöscht wird, wird der Zeitraum nicht in dieser Woche, sondern in allen Wochen wieder freigegeben.

\n

<$smlchk name='surely_delete_fixed' value='true' />

\n"; else echo "\n"; echo "<$stdbtn name='surely_delete' value='Löschen' />
\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 "

".icona("dlg-info", 16, "bl")."Ihre Buchung wurde eingetragen.

\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 "
Raum:

"; // Navigation für die Wochen ausgeben echo "

Vorherige Woche | Aktuelle Woche | "; // Fünf Wochen zur direkten Anwahl anbieten for($i = 1; $i <= 5; $i++) { $nCurWeek = Monday(strtotime("$i week", $start)); echo "Woche ".date("W", $nCurWeek)." | "; } echo "Letzte Buchung | Nächste Woche

"; echo "

\n"; $bookings->PrintTimeTable($start, $room); echo "
"; } _PageBlue(); */ ?>