diff options
author | MaZderMind | 2015-11-08 20:36:34 +0100 |
---|---|---|
committer | MaZderMind | 2015-11-08 20:36:34 +0100 |
commit | 61c9cf52b0c015951351b47148cdecb47c680bfa (patch) | |
tree | 29caf16cbbbd2b7fb408ddecd7e787fc711e77c5 | |
parent | 25ebd325dbde526d97c25abb2f905b3bb5920e19 (diff) |
global streams api
-rw-r--r-- | index.php | 15 | ||||
-rw-r--r-- | model/Conferences.php | 2 | ||||
-rw-r--r-- | view/streams-json-v1.php | 164 |
3 files changed, 100 insertions, 81 deletions
@@ -29,13 +29,21 @@ try { $route = @$_GET['route']; $route = rtrim($route, '/'); - // GLOBAL CSS (for conferences overview) + // GLOBAL ROUTES if($route == 'gen/main.css') { + // global css (for conferences overview) handle_lesscss_request('assets/css/main.less', '../assets/css/'); exit; } + else if($route == 'streams/v1.json') + { + require('view/streams-json-v1.php'); + exit; + } + + // generic template $tpl = new PhpTemplate('template/page.phtml'); $tpl->set(array( @@ -136,11 +144,6 @@ try { require('view/schedule-json.php'); } - else if($route == 'streams/v1.json') - { - require('view/streams-json-v1.php'); - } - else if($route == 'gen/main.css') { if(Conferences::hasCustomStyles($mandator)) diff --git a/model/Conferences.php b/model/Conferences.php index 885c2c8..9396a48 100644 --- a/model/Conferences.php +++ b/model/Conferences.php @@ -49,6 +49,8 @@ class Conferences extends ModelBase 'active' => !$conf->isClosed(), 'title' => $conf->getTitle(), 'description' => $conf->getDescription(), + + 'CONFIG' => $GLOBALS['CONFIG'], ]; unset($GLOBALS['CONFIG']); diff --git a/view/streams-json-v1.php b/view/streams-json-v1.php index c705bd7..af0909b 100644 --- a/view/streams-json-v1.php +++ b/view/streams-json-v1.php @@ -2,97 +2,111 @@ header('Content-Type: application/json'); -if($conference->isClosed()) -{ - echo '[]'; - return; -} - -$overview = new Overview(); +$conferences = Conferences::getActiveConferences(); $struct = array(); -foreach($overview->getGroups() as $group => $rooms) +if(isset($GLOBALS['CONFIG'])) + $saved_config = $GLOBALS['CONFIG']; + +foreach ($conferences as $conference) { - $roomstruct = array(); - foreach($rooms as $room) + /* + ok. das ist so hacky. EIGENTLICH müsste man aus ModelBase + das $GLOBALS tilgen und von der api ne v2 releasen, welche + conferences als eigenes Objekt betrachtet + */ + $GLOBALS['CONFIG'] = $conference['CONFIG']; + $GLOBALS['MANDATOR'] = $conference['slug']; + + $overview = new Overview(); + + foreach($overview->getGroups() as $group => $rooms) { - $streams = array(); - foreach($room->getStreams() as $stream) + $roomstruct = array(); + foreach($rooms as $room) { - $key = $stream->getSelection().'-'.$stream->getLanguage(); - - $urls = array(); - switch($stream->getPlayerType()) + $streams = array(); + foreach($room->getStreams() as $stream) { - case 'video': - foreach ($stream->getVideoProtos() as $proto => $display) - { - $urls[$proto] = array( - 'display' => $display, - 'tech' => $stream->getVideoTech($proto), - 'url' => $stream->getVideoUrl($proto), - ); - } - break; + $key = $stream->getSelection().'-'.$stream->getLanguage(); + + $urls = array(); + switch($stream->getPlayerType()) + { + case 'video': + foreach ($stream->getVideoProtos() as $proto => $display) + { + $urls[$proto] = array( + 'display' => $display, + 'tech' => $stream->getVideoTech($proto), + 'url' => $stream->getVideoUrl($proto), + ); + } + break; + + case 'slides': + foreach ($stream->getSlidesProtos() as $proto => $display) + { + $urls[$proto] = array( + 'display' => $display, + 'tech' => $stream->getSlidesTech($proto), + 'url' => $stream->getSlidesUrl($proto), + ); + } + break; - case 'slides': - foreach ($stream->getSlidesProtos() as $proto => $display) - { - $urls[$proto] = array( - 'display' => $display, - 'tech' => $stream->getSlidesTech($proto), - 'url' => $stream->getSlidesUrl($proto), - ); - } - break; + case 'audio': + foreach ($stream->getAudioProtos() as $proto => $display) + { + $urls[$proto] = array( + 'display' => $display, + 'tech' => $stream->getAudioTech($proto), + 'url' => $stream->getAudioUrl($proto), + ); + } + break; - case 'audio': - foreach ($stream->getAudioProtos() as $proto => $display) - { - $urls[$proto] = array( - 'display' => $display, - 'tech' => $stream->getAudioTech($proto), - 'url' => $stream->getAudioUrl($proto), - ); - } - break; + case 'music': + foreach ($stream->getMusicProtos() as $proto => $display) + { + $urls[$proto] = array( + 'display' => $display, + 'tech' => $stream->getMusicTech($proto), + 'url' => $stream->getMusicUrl($proto), + ); + } + break; + } - case 'music': - foreach ($stream->getMusicProtos() as $proto => $display) - { - $urls[$proto] = array( - 'display' => $display, - 'tech' => $stream->getMusicTech($proto), - 'url' => $stream->getMusicUrl($proto), - ); - } - break; + $streams[] = array( + 'slug' => $key, + 'display' => $stream->getDisplay(), + 'type' => $stream->getPlayerType(), + 'isTranslated' => $stream->isTranslated(), + 'videoSize' => $stream->getVideoSize(), + 'urls' => $urls, + ); } - $streams[] = array( - 'slug' => $key, - 'display' => $stream->getDisplay(), - 'type' => $stream->getPlayerType(), - 'isTranslated' => $stream->isTranslated(), - 'videoSize' => $stream->getVideoSize(), - 'urls' => $urls, + $roomstruct[] = array( + 'slug' => $room->getSlug(), + 'schedulename' => $room->getScheduleName(), + 'thumb' => forceslash(baseurl()).$room->getThumb(), + 'link' => forceslash(baseurl()).$room->getLink(), + 'display' => $room->getDisplay(), + 'streams' => $streams, ); } - $roomstruct[] = array( - 'slug' => $room->getSlug(), - 'schedulename' => $room->getScheduleName(), - 'thumb' => forceslash(baseurl()).$room->getThumb(), - 'link' => forceslash(baseurl()).$room->getLink(), - 'display' => $room->getDisplay(), - 'streams' => $streams, + $struct[] = array( + 'conference' => $conference['title'], + 'group' => $group, + 'rooms' => $roomstruct, ); } - - $struct[] = array( - 'group' => $group, - 'rooms' => $roomstruct, - ); } +if(isset($saved_config)) + $GLOBALS['CONFIG'] = $saved_config; + echo json_encode($struct, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); |