function getTimetableHTML($RUNNING_IDS, $ADMIN = FALSE) { global $sql; // Kinowochen der Running IDS ermitteln if (!is_array($RUNNING_IDS)) { $RUNNING_IDS = array($RUNNING_IDS); // Bei nur einer einzigen Running ID muss nicht extra ein Array übergeben werden } $kino_weeks = $sql->getData("running_weeks", "*", "WHERE `running_weeks_id` IN(" . implode(",", $RUNNING_IDS) . ") ORDER BY `running_week`"); $kino_weeks = $kino_weeks == FALSE ? array() : $kino_weeks; // Fehler abfangen, wenn keine running week gefunden wird // Template laden $theTemplate = new Template("movie.tpl"); // Für jede Woche durchgehen $all_show_weeks = ""; foreach ($kino_weeks as $kino_week) { // Wochendaten laden $week_data = getWeekData($kino_week['running_week']); // Spielzeiten laden $showtimes = $sql->getData("running_table", "*", "WHERE `running_weeks_id` = '" . $kino_week['running_weeks_id'] . "' ORDER BY `running_day`, `running_time`"); $showtimes = $showtimes == FALSE ? array() : $showtimes; // Alle Auführungen der Woche durchgehen $times = array(0 => array(), 1 => array(), 2 => array(), 3 => array(), 4 => array(), 5 => array(), 6 => array()); // Times Array initialisieren foreach ($showtimes as $show) { // Timestamp der Auffühung $showtimestamp = strtotime(date("Y-m-d", $week_data[0][$show['running_day']]) . $show['running_time']); // Unterscheidung zw. normaler und Admin ausgabe if ($ADMIN) { $theTemplate->load("SHOW"); $theTemplate->clearTags(); $theTemplate->tag("url", "?go=admin&id=" . $show['show_id']); } else { // Showtime Template laden und Tags umsetzen if ($showtimestamp >= time() + 60 * 45) { $theTemplate->load("SHOW"); $theTemplate->clearTags(); $theTemplate->tag("url", "?go=booking&id=" . $show['show_id']); } else { $theTemplate->load("SHOW_OLD"); $theTemplate->clearTags(); } } $theTemplate->tag("time", date("H:i", $showtimestamp)); $times[$show['running_day']][] = (string) $theTemplate; } // Showtime Separator laden $theTemplate->load("SHOW_SEPARATOR"); $theTemplate->clearTags(); $theSeparator = (string) $theTemplate; // Timetable Template laden und Tags umsetzen $theTemplate->load("SHOW_WEEK"); $theTemplate->clearTags(); $theTemplate->tag("start", $week_data[1][4]); $theTemplate->tag("end", $week_data[1][3]); $theTemplate->tag("so_times", implode($theSeparator, $times[0])); $theTemplate->tag("mo_times", implode($theSeparator, $times[1])); $theTemplate->tag("di_times", implode($theSeparator, $times[2])); $theTemplate->tag("mi_times", implode($theSeparator, $times[3])); $theTemplate->tag("do_times", implode($theSeparator, $times[4])); $theTemplate->tag("fr_times", implode($theSeparator, $times[5])); $theTemplate->tag("sa_times", implode($theSeparator, $times[6])); $theTemplate->tag("so_date", $week_data[1][0]); $theTemplate->tag("mo_date", $week_data[1][1]); $theTemplate->tag("di_date", $week_data[1][2]); $theTemplate->tag("mi_date", $week_data[1][3]); $theTemplate->tag("do_date", $week_data[1][4]); $theTemplate->tag("fr_date", $week_data[1][5]); $theTemplate->tag("sa_date", $week_data[1][6]); // Show Week hinten dran hängen $all_show_weeks .= (string) $theTemplate; } // Timetable Template laden $theTemplate->load("TIMETABLE"); $theTemplate->clearTags(); $theTemplate->tag("show_weeks", $all_show_weeks); // HTML zurückgeben return (string) $theTemplate; }
} else { $user_hash = $user_data['user_hash']; $user_id = $user_data['user_id']; } // In jedem Fall Cookie setzen setcookie("kino_user", $user_hash . $user_id, time() + 60 * 60 * 24 * 30); // MD5-Hash + eindeutige DB ID, Ablauf in 30 Tagen } // Show, Film und Kino Daten laden $show_data = mysql_fetch_assoc($sql->query("SELECT * FROM {..pref..}running_weeks W, {..pref..}running_table T WHERE T.`show_id` = '" . $_GET['id'] . "' AND T.`running_weeks_id` = W.`running_weeks_id`")); $screen_data = $sql->getData("screens", "*", "WHERE `screen_id` = '" . $show_data['screen_id'] . "'", 1); // Template laden $theTemplate = new Template("booking.tpl"); // Booking Info erstellen $theTemplate->load("BOOKING_INFO"); $theTemplate->clearTags(); $booking_info = (string) $theTemplate; // Persönliche Begrüßung erstellen $theTemplate->load("PERSONAL"); $theTemplate->clearTags(); $theTemplate->tag("email", $_POST['email']); $theTemplate->tag("prename", $_POST['prename']); $theTemplate->tag("lastname", $_POST['lastname']); $theTemplate->tag("delete_url", "?go=booking&id=" . $_GET['id'] . "&delete"); $personal = (string) $theTemplate; // Saal laden $screen = new ScreenRoom($screen_data['screen_seats']); $screen->setStates($_GET['id'], $user_id); // Legende laden $theTemplate->load("LEGEND"); $theTemplate->clearTags();
public function __toString() { // Template laden $theTemplate = new Template("screen.tpl"); // leeren String initialisieren $string_screen_room = ""; // Die Zeilen und Zeichen/Elemente durchgehen foreach ($this->screen_data as $aLine) { // Zeilen-Template laden $theTemplate->load("SCREEN_LINE_CONTAINER"); $theTemplate->clearTags(); $string_line = ""; // Die Zeichen/Elemente durchgehen foreach ($aLine as $aSeat) { $string_line .= (string) $aSeat; // jeweils einfach die String-Darstellung des Elements laden } $theTemplate->tag("seats", $string_line); // ins Zeilen Template einfügen $string_screen_room .= (string) $theTemplate; } // Container-Template für einen Vorführaum laden $theTemplate->load("SCREEN_CONTAINER"); $theTemplate->clearTags(); $theTemplate->tag("screen_room", $string_screen_room); // Die tatsächlichen Raum-Elemente einfügen // alles ausgeben return (string) $theTemplate; }