aboutsummaryrefslogtreecommitdiff
path: root/model/Room.php
diff options
context:
space:
mode:
authorMaZderMind2015-03-08 13:42:58 +0100
committerMaZderMind2015-03-14 13:46:47 +0100
commitcb48ba9b7068302414b18435505a041d22bd9e4b (patch)
tree9521126f748b090a65ca9832cb218f71b5213b1b /model/Room.php
parent844a7d53f2d78bafba479c0d931277246ade61de (diff)
Introduce Models abstracting the Config away from Views & Templates
Diffstat (limited to 'model/Room.php')
-rw-r--r--model/Room.php49
1 files changed, 49 insertions, 0 deletions
diff --git a/model/Room.php b/model/Room.php
new file mode 100644
index 0000000..7394870
--- /dev/null
+++ b/model/Room.php
@@ -0,0 +1,49 @@
+<?php
+
+class Room {
+ private $slug;
+
+ public static function get($slug)
+ {
+ return new Room($slug);
+ }
+
+ private function __construct($slug)
+ {
+ if(! has('ROOMS.'.$slug))
+ throw new NotFoundException('Room '.$slug);
+
+ $this->slug = $slug;
+ }
+
+
+ public function getSlug() {
+ return $this->slug;
+ }
+
+ public function getThumb() {
+ return 'thumbs/'.$this->getStream().'.png';
+ }
+
+ public function getLink() {
+ return rawurlencode($this->getSlug()).'/';
+ }
+
+ public function getStream() {
+ return get('ROOMS.'.$this->getSlug().'.STREAM', $this->getSlug());
+ }
+
+ public function getDisplay() {
+ return get('ROOMS.'.$this->getSlug().'.DISPLAY', $this->getSlug());
+ }
+
+
+
+ public function hasPreview() {
+ return get('ROOMS.'.$this->getSlug().'.PREVIEW');
+ }
+
+ public function hasSchedule() {
+ return get('ROOMS.'.$this->getSlug().'.SCHEDULE') && has('SCHEDULE');
+ }
+}