From 759184ba0519acfa7d695e44c2af6c2d2a27794e Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Wed, 1 Apr 2015 21:03:21 +0200 Subject: Allow Filtering Rooms from the Schedule --- config.php | 7 +++++++ model/Schedule.php | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/config.php b/config.php index 7acfe4d..f35f25e 100644 --- a/config.php +++ b/config.php @@ -454,6 +454,13 @@ $GLOBALS['CONFIG']['SCHEDULE'] = array( */ 'URL' => 'http://events.ccc.de/congress/2014/Fahrplan/schedule.xml', + /** + * Nur die angegebenen Räume aus dem Fahrplan beachten + * + * Wird diese Zeile auskommentiert, werden alle Räume angezeigt + */ + 'ROOMFILTER' => array('SAAL', 'Tagungsraum 1'), + /** * APCU-Cache-Zeit in Sekunden * Wird diese Zeile auskommentiert, werden die apc_*-Methoden nicht verwendet und diff --git a/model/Schedule.php b/model/Schedule.php index 5c7858a..db93c4d 100644 --- a/model/Schedule.php +++ b/model/Schedule.php @@ -6,6 +6,15 @@ class Schedule extends ModelBase return $this->has('SCHEDULE'); } + private function isRoomFiltered($room) + { + if(!$this->has('SCHEDULE.ROOMFILTER')) + return false; + + $rooms = $this->get('SCHEDULE.ROOMFILTER'); + return !in_array($room, $rooms); + } + public function getSimulationOffset() { return $this->get('SCHEDULE.SIMULATE_OFFSET', 0); } @@ -53,6 +62,10 @@ class Schedule extends ModelBase foreach($day->room as $room) { + $name = (string)$room['name']; + if($this->isRoomFiltered($name)) + continue; + foreach($room->event as $event) { $start = strtotime((string)$event->date); @@ -82,6 +95,9 @@ class Schedule extends ModelBase $lastend = false; $name = (string)$room['name']; + if($this->isRoomFiltered($name)) + continue; + if(isset($mapping[$name])) $name = $mapping[$name]; -- cgit v1.2.3