sintonia/airtime_mvc/application/controllers/EmbedController.php

112 lines
4.6 KiB
PHP

<?php
class EmbedController extends Zend_Controller_Action
{
public function init() {
// translate widgets to station default language
$locale = Application_Model_Preference::GetDefaultLocale();
if ($locale) {
Application_Model_Locale::configureLocalization($locale);
}
}
/**
* This is the action that is called to insert the player onto a web page.
* It passes all the js and css files to the view, as well as all the
* stream customization information.
*
* The view for this action contains all the inline javascript needed to
* create the player.
*/
public function playerAction()
{
$this->view->layout()->disableLayout();
$CC_CONFIG = Config::getConfig();
$request = $this->getRequest();
$this->view->playerhtml5_js = "/js/airtime/player/playerhtml5.js?".$CC_CONFIG['airtime_version'];
$this->view->jquery = "/js/libs/jquery-1.10.2.js";
$this->view->metadata_api_url = "/api/live-info";
$this->view->player_title = json_encode($this->view->escape($request->getParam('title')));
$this->view->jquery_i18n = "/js/i18n/jquery.i18n.js?";
$styleParam = $request->getParam('style');
$player_style = isset($styleParam) ? $styleParam : "basic";
if ($player_style == "premium") {
$this->view->css = "/css/radio-page/premium_player.css?".$CC_CONFIG['airtime_version'];
} else {
$this->view->css = "/css/player.css?".$CC_CONFIG['airtime_version'];
}
$this->view->player_style = $player_style;
$stream = $request->getParam('stream');
$streamData = Application_Model_StreamSetting::getEnabledStreamData();
$availableMobileStreams = array();
$availableDesktopStreams = array();
if ($stream == "auto") {
$this->view->playerMode = "auto";
$this->view->streamURL = json_encode("");
foreach ($streamData as $s) {
if ($s["mobile"]) {
array_push($availableMobileStreams, $s);
} else if (!$s["mobile"]) {
array_push($availableDesktopStreams, $s);
}
}
} else if ($stream == "file") {
$this->view->playerMode = "file";
$this->view->streamURL = json_encode($request->getParam("file_url"));
$this->view->codec = $request->getParam("file_codec");
} elseif (!empty($stream)) {
$this->view->playerMode = "manual";
$selectedStreamData = $streamData[$stream];
$this->view->streamURL = json_encode($selectedStreamData["url"]);
$this->view->codec = $selectedStreamData["codec"];
}
$this->view->availableMobileStreams = json_encode($availableMobileStreams);
$this->view->availableDesktopStreams = json_encode($availableDesktopStreams);
}
public function currentDayProgramAction()
{
$this->view->layout()->disableLayout();
$CC_CONFIG = Config::getConfig();
$this->view->css = "/widgets/css/airtime-widgets.css?".$CC_CONFIG['airtime_version'];
$this->view->jquery = "/widgets/js/jquery-1.6.1.min.js?".$CC_CONFIG['airtime_version'];
$this->view->jquery_custom = "/widgets/js/jquery-ui-1.8.10.custom.min.js?".$CC_CONFIG['airtime_version'];
$this->view->widget_js = "/widgets/js/jquery.showinfo.js?".$CC_CONFIG['airtime_version'];
}
public function weeklyProgramAction()
{
$this->view->layout()->disableLayout();
$CC_CONFIG = Config::getConfig();
$request = $this->getRequest();
$this->view->angular = Application_Common_HTTPHelper::getStationUrl() . 'js/libs/angular.min.js?'.$CC_CONFIG['airtime_version'];
$widgetStyle = $request->getParam('style');
if ($widgetStyle == "premium") {
$this->view->widgetStyle = "premium";
$this->view->css = "/css/embed/weekly-schedule-widget.css?" . $CC_CONFIG['airtime_version'];
} else {
$this->view->widgetStyle = "basic";
$this->view->css = "/css/embed/weekly-schedule-widget-basic.css?" . $CC_CONFIG['airtime_version'];
}
$this->view->jquery = "/widgets/js/jquery-1.6.1.min.js?".$CC_CONFIG['airtime_version'];
$weeklyScheduleData = WidgetHelper::getWeekInfoV2();
$this->view->schedule_data = json_encode($weeklyScheduleData);
$currentDay = new DateTime("now", new DateTimeZone(Application_Model_Preference::GetTimezone()));
//day of the month without leading zeros (1 to 31)
$this->view->currentDayOfMonth = $currentDay->format("j");
}
}