sintonia/airtime_mvc/application/controllers/IndexController.php
Lucas Bickel c2deb94c16 Make radio page translatable
This makes the radio page use the station default language if one is set. Previously the pages where not really getting translated.
2017-03-24 17:23:21 +01:00

105 lines
4.8 KiB
PHP

<?php
class IndexController extends Zend_Controller_Action
{
public function init()
{
}
public function indexAction()
{
$CC_CONFIG = Config::getConfig();
$baseUrl = Application_Common_OsPath::getBaseDir();
$this->view->headTitle(Application_Model_Preference::GetHeadTitle());
$this->view->headScript()->appendFile($baseUrl . 'js/libs/jquery-1.8.3.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl . 'js/i18n/jquery.i18n.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl . 'locale/general-translation-table?' . $CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendScript("$.i18n.setDictionary(general_dict)");
$this->view->headScript()->appendScript("var baseUrl='$baseUrl'");
//jplayer
$this->view->headScript()->appendFile($baseUrl.'js/jplayer/jquery.jplayer.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/jplayer/jplayer.playlist.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headLink()->setStylesheet($baseUrl.'css/radio-page/radio-page.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/embed/weekly-schedule-widget.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/radio-page/station-podcast.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/bootstrap.css?'.$CC_CONFIG['airtime_version']);
//jplayer control buttons
$this->view->headLink()->appendStylesheet($baseUrl.'css/redmond/jquery-ui-1.8.8.custom.css?'.$CC_CONFIG['airtime_version']);
$this->_helper->layout->setLayout('radio-page');
// translate page to station default language
$locale = Application_Model_Preference::GetDefaultLocale();
if ($locale) {
Application_Model_Locale::configureLocalization($locale);
}
$this->view->stationLogo = Application_Model_Preference::GetStationLogo();
$stationName = Application_Model_Preference::GetStationName();
$this->view->stationName = $stationName;
$stationDescription = Application_Model_Preference::GetStationDescription();
$this->view->stationDescription = $stationDescription;
$this->view->stationUrl = Application_Common_HTTPHelper::getStationUrl();
$displayRadioPageLoginButtonValue = Application_Model_Preference::getRadioPageDisplayLoginButton();
if ($displayRadioPageLoginButtonValue == "") {
$displayRadioPageLoginButtonValue = true;
}
$this->view->displayLoginButton = $displayRadioPageLoginButtonValue;
//station feed episodes
$stationPodcastId = Application_Model_Preference::getStationPodcastId();
$podcastEpisodesService = new Application_Service_PodcastEpisodeService();
$episodes = $podcastEpisodesService->getPodcastEpisodes($stationPodcastId, 0, 0, PodcastEpisodesPeer::PUBLICATION_DATE, "DESC");
foreach ($episodes as $e => $v) {
$episodes[$e]["CcFiles"]["track_title"] = htmlspecialchars($v["CcFiles"]["track_title"], ENT_QUOTES);
$episodes[$e]["CcFiles"]["artist_name"] = htmlspecialchars($v["CcFiles"]["artist_name"], ENT_QUOTES);
$pubDate = explode(" ", $v["publication_date"]);
$episodes[$e]["publication_date"] = $pubDate[0];
$length = explode(".", $v["CcFiles"]["length"]);
$episodes[$e]["CcFiles"]["length"] = $length[0];
$episodes[$e]["mime"] = FileDataHelper::getAudioMimeTypeArray()[$v["CcFiles"]["mime"]];
if (is_null($v["CcFiles"]["description"])) {
$episodes[$e]["CcFiles"]["description"] = "";
}
}
$episodePages = array_chunk($episodes, 10);
$this->view->episodes = json_encode($episodePages, JSON_FORCE_OBJECT);
$this->view->displayRssTab = (!Application_Model_Preference::getStationPodcastPrivacy());
$stationPodcast = PodcastQuery::create()->findOneByDbId($stationPodcastId);
$url = $stationPodcast->getDbUrl();
$this->view->stationPodcastRssUrl = $url;
$stationName = Application_Model_Preference::GetStationName();
$this->view->podcastTitle = sprintf(_("%s Podcast"), !empty($stationName) ? $stationName : $CC_CONFIG["stationId"]);
$this->view->emptyPodcastMessage = _("No tracks have been published yet.");
}
public function mainAction()
{
$this->_helper->layout->setLayout('layout');
}
public function maintenanceAction()
{
$this->getResponse()->setHttpResponseCode(503);
}
}