diff options
author | MaZderMind | 2015-03-08 13:42:58 +0100 |
---|---|---|
committer | MaZderMind | 2015-03-14 13:46:47 +0100 |
commit | cb48ba9b7068302414b18435505a041d22bd9e4b (patch) | |
tree | 9521126f748b090a65ca9832cb218f71b5213b1b /model/Room.php | |
parent | 844a7d53f2d78bafba479c0d931277246ade61de (diff) |
Introduce Models abstracting the Config away from Views & Templates
Diffstat (limited to 'model/Room.php')
-rw-r--r-- | model/Room.php | 49 |
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'); + } +} |