aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--index.php15
-rw-r--r--model/Conferences.php2
-rw-r--r--view/streams-json-v1.php164
3 files changed, 100 insertions, 81 deletions
diff --git a/index.php b/index.php
index b7fe5da..c3199ee 100644
--- a/index.php
+++ b/index.php
@@ -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);