diff options
| -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);  | 
