aboutsummaryrefslogtreecommitdiff
path: root/model
diff options
context:
space:
mode:
authorMaZderMind2018-05-12 11:26:14 +0200
committerMaZderMind2018-05-12 11:26:14 +0200
commit59f7c88ac3c8454eb0812dcb044e2854d9241001 (patch)
tree8688ac2112062252ed77961ed9289065c929041d /model
parent2cf00ac475500f007bce90cf81d8d582208650c9 (diff)
parent622b1f030c5c931704b7e997918dad2dcfd48551 (diff)
Merge branch 'feature/talkinfo-in-json'
Diffstat (limited to 'model')
-rw-r--r--model/Room.php20
-rw-r--r--model/Schedule.php9
2 files changed, 29 insertions, 0 deletions
diff --git a/model/Room.php b/model/Room.php
index 7089532..3552f60 100644
--- a/model/Room.php
+++ b/model/Room.php
@@ -4,6 +4,7 @@ class Room
{
private $slug;
private $conference;
+ private $talks;
public function __construct(Conference $conference, $slug)
{
@@ -16,8 +17,27 @@ class Room
throw new NotFoundException('Room '.$slug);
$this->slug = $slug;
+
+ $schedule = $conference->getSchedule();
+ $talksPerRoom = $schedule->getSchedule();
+ $scheduleName = $this->getScheduleName();
+
+ $this->talks = isset($talksPerRoom[$scheduleName]) ? $talksPerRoom[$scheduleName] : [];
}
+ public function getCurrentTalk($now)
+ {
+ return array_filter_last($this->talks, function($talk) use ($now) {
+ return $talk['start'] < $now && $talk['end'] > $now;
+ });
+ }
+
+ public function getNextTalk($now)
+ {
+ return array_filter_first($this->talks, function($talk) use ($now) {
+ return !isset($talk['special']) && $talk['start'] > $now;
+ });
+ }
public function getConference() {
return $this->conference;
diff --git a/model/Schedule.php b/model/Schedule.php
index ec4ddc7..4b5d25e 100644
--- a/model/Schedule.php
+++ b/model/Schedule.php
@@ -44,6 +44,15 @@ class Schedule
return $this->getConference()->getRoomIfExists( @$mapping[$scheduleRoom] );
}
+ public function getScheduleDisplayTime($basetime = null)
+ {
+ if(is_null($basetime)) {
+ $basetime = time();
+ }
+
+ return $basetime + $this->getSimulationOffset();
+ }
+
private function fetchSchedule()
{
$schedule = @file_get_contents($this->getScheduleCache());