Rename airtime_mvc/ to legacy/
This commit is contained in:
parent
f0879322c2
commit
3e18d42c8b
1316 changed files with 0 additions and 0 deletions
94
legacy/application/configs/ACL.php
Normal file
94
legacy/application/configs/ACL.php
Normal file
|
@ -0,0 +1,94 @@
|
|||
<?php
|
||||
|
||||
|
||||
$ccAcl = new Zend_Acl();
|
||||
|
||||
$ccAcl->addRole(new Zend_Acl_Role('G'))
|
||||
->addRole(new Zend_Acl_Role('H'), 'G')
|
||||
->addRole(new Zend_Acl_Role('P'), 'H')
|
||||
->addRole(new Zend_Acl_Role('A'), 'P')
|
||||
->addRole(new Zend_Acl_Role('S'), 'A');
|
||||
|
||||
$ccAcl->add(new Zend_Acl_Resource('library'))
|
||||
->add(new Zend_Acl_Resource('index'))
|
||||
->add(new Zend_Acl_Resource('user'))
|
||||
->add(new Zend_Acl_Resource('tracktype'))
|
||||
->add(new Zend_Acl_Resource('error'))
|
||||
->add(new Zend_Acl_Resource('login'))
|
||||
->add(new Zend_Acl_Resource('playlist'))
|
||||
->add(new Zend_Acl_Resource('plupload'))
|
||||
->add(new Zend_Acl_Resource('schedule'))
|
||||
->add(new Zend_Acl_Resource('api'))
|
||||
->add(new Zend_Acl_Resource('systemstatus'))
|
||||
->add(new Zend_Acl_Resource('dashboard'))
|
||||
->add(new Zend_Acl_Resource('preference'))
|
||||
->add(new Zend_Acl_Resource('showbuilder'))
|
||||
->add(new Zend_Acl_Resource('playouthistory'))
|
||||
->add(new Zend_Acl_Resource('playouthistorytemplate'))
|
||||
->add(new Zend_Acl_Resource('listenerstat'))
|
||||
->add(new Zend_Acl_Resource('showlistenerstat'))
|
||||
->add(new Zend_Acl_Resource('usersettings'))
|
||||
->add(new Zend_Acl_Resource('audiopreview'))
|
||||
->add(new Zend_Acl_Resource('webstream'))
|
||||
->add(new Zend_Acl_Resource('locale'))
|
||||
->add(new Zend_Acl_Resource('upgrade'))
|
||||
->add(new Zend_Acl_Resource('downgrade'))
|
||||
->add(new Zend_Acl_Resource('rest:media'))
|
||||
->add(new Zend_Acl_Resource('rest:show-image'))
|
||||
->add(new Zend_Acl_Resource('rest:podcast'))
|
||||
->add(new Zend_Acl_Resource('rest:podcast-episodes'))
|
||||
->add(new Zend_Acl_Resource('podcast'))
|
||||
->add(new Zend_Acl_Resource('player'))
|
||||
->add(new Zend_Acl_Resource('render'))
|
||||
->add(new Zend_Acl_Resource('embeddablewidgets'))
|
||||
->add(new Zend_Acl_Resource('setup'))
|
||||
->add(new Zend_Acl_Resource('feeds'));
|
||||
|
||||
/** Creating permissions */
|
||||
$ccAcl->allow('G', 'index')
|
||||
->allow('G', 'login')
|
||||
->allow('G', 'error')
|
||||
->allow('G', 'user', 'edit-user')
|
||||
->allow('G', 'showbuilder')
|
||||
->allow('G', 'render')
|
||||
->allow('G', 'api')
|
||||
->allow('G', 'schedule')
|
||||
->allow('G', 'dashboard')
|
||||
->allow('G', 'audiopreview')
|
||||
->allow('G', 'webstream')
|
||||
->allow('G', 'locale')
|
||||
->allow('G', 'upgrade')
|
||||
->allow('G', 'downgrade')
|
||||
->allow('G', 'rest:show-image', 'get')
|
||||
->allow('G', 'rest:media', 'get')
|
||||
->allow('G', 'rest:podcast', 'get')
|
||||
->allow('G', 'rest:podcast-episodes', 'get')
|
||||
->allow('G', 'setup')
|
||||
->allow('G', 'embeddablewidgets')
|
||||
->allow('G', 'feeds')
|
||||
->allow('H', 'rest:show-image')
|
||||
->allow('H', 'rest:media')
|
||||
->allow('H', 'rest:podcast')
|
||||
->allow('H', 'rest:podcast-episodes')
|
||||
->allow('H', 'podcast')
|
||||
->allow('H', 'preference', 'is-import-in-progress')
|
||||
->allow('H', 'usersettings')
|
||||
->allow('H', 'plupload')
|
||||
->allow('H', 'library')
|
||||
->allow('H', 'playlist')
|
||||
->allow('H', 'playouthistory')
|
||||
->allow('H', 'listenerstat')
|
||||
->allow('H', 'showlistenerstat')
|
||||
->allow('A', 'playouthistorytemplate')
|
||||
->allow('A', 'user')
|
||||
->allow('A', 'tracktype')
|
||||
->allow('A', 'systemstatus')
|
||||
->allow('A', 'preference');
|
||||
|
||||
|
||||
$aclPlugin = new Zend_Controller_Plugin_Acl($ccAcl);
|
||||
|
||||
Zend_View_Helper_Navigation_HelperAbstract::setDefaultAcl($ccAcl);
|
||||
|
||||
$front = Zend_Controller_Front::getInstance();
|
||||
$front->registerPlugin($aclPlugin);
|
34
legacy/application/configs/airtime-conf-production.php
Normal file
34
legacy/application/configs/airtime-conf-production.php
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
// This file generated by Propel 1.5.2 convert-conf target
|
||||
// from XML runtime conf file /home/james/src/airtime/airtime_mvc/build/runtime-conf.xml
|
||||
|
||||
/* The original name of this file is airtime-conf.php but since we need to make custom changes
|
||||
* to it I've renamed it so that our changes aren't removed everytime we regenerate a database schema.
|
||||
* our custom changes requires the database parameters to be loaded from /etc/airtime/airtime.conf so
|
||||
* that the user can customize these.
|
||||
*/
|
||||
|
||||
$CC_CONFIG = Config::getConfig();
|
||||
|
||||
$dbhost = $CC_CONFIG['dsn']['hostspec'];
|
||||
$dbname = $CC_CONFIG['dsn']['database'];
|
||||
$dbuser = $CC_CONFIG['dsn']['username'];
|
||||
$dbpass = $CC_CONFIG['dsn']['password'];
|
||||
|
||||
$conf = array (
|
||||
'datasources' =>
|
||||
array (
|
||||
'airtime' =>
|
||||
array (
|
||||
'adapter' => 'pgsql',
|
||||
'connection' =>
|
||||
array (
|
||||
'dsn' => "pgsql:host=$dbhost;port=5432;dbname=$dbname;user=$dbuser;password=$dbpass",
|
||||
),
|
||||
),
|
||||
'default' => 'airtime',
|
||||
),
|
||||
'generator_version' => '1.7.0',
|
||||
);
|
||||
$conf['classmap'] = include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classmap-airtime-conf.php');
|
||||
return $conf;
|
28
legacy/application/configs/airtime-conf.php
Normal file
28
legacy/application/configs/airtime-conf.php
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
// This file generated by Propel 1.7.0 convert-conf target
|
||||
// from XML runtime conf file /vagrant/airtime_mvc/build/runtime-conf.xml
|
||||
$conf = array (
|
||||
'datasources' =>
|
||||
array (
|
||||
'airtime' =>
|
||||
array (
|
||||
'adapter' => 'pgsql',
|
||||
'connection' =>
|
||||
array (
|
||||
'dsn' => 'pgsql:host=localhost;port=5432;dbname=airtime;user=airtime;password=airtime',
|
||||
),
|
||||
),
|
||||
'airtime_test' =>
|
||||
array (
|
||||
'adapter' => 'pgsql',
|
||||
'connection' =>
|
||||
array (
|
||||
'dsn' => 'pgsql:host=localhost;port=5432;dbname=airtime_test;user=airtime;password=airtime',
|
||||
),
|
||||
),
|
||||
'default' => 'airtime',
|
||||
),
|
||||
'generator_version' => '1.7.0',
|
||||
);
|
||||
$conf['classmap'] = include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classmap-airtime-conf.php');
|
||||
return $conf;
|
33
legacy/application/configs/application.ini
Normal file
33
legacy/application/configs/application.ini
Normal file
|
@ -0,0 +1,33 @@
|
|||
[production]
|
||||
phpSettings.display_startup_errors = 0
|
||||
phpSettings.display_errors = 0
|
||||
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
|
||||
bootstrap.class = "Bootstrap"
|
||||
appnamespace = "Application"
|
||||
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
|
||||
resources.frontController.params.displayExceptions = 0
|
||||
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
|
||||
resources.frontController.plugins.putHandler = "Zend_Controller_Plugin_PutHandler"
|
||||
resources.modules[] = ""
|
||||
;load everything in the modules directory including models
|
||||
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
|
||||
resources.modules[] = ""
|
||||
resources.view[] =
|
||||
; These are no longer needed. They are specified in /etc/airtime/airtime.conf:
|
||||
;resources.db.adapter = "Pdo_Pgsql"
|
||||
;resources.db.params.charset = "utf8"
|
||||
;resources.db.params.host = "localhost"
|
||||
;resources.db.params.username = "airtime"
|
||||
;resources.db.params.password = "airtime"
|
||||
;resources.db.params.dbname = "airtime"
|
||||
|
||||
[staging : production]
|
||||
|
||||
[testing : production]
|
||||
phpSettings.display_startup_errors = 1
|
||||
phpSettings.display_errors = 1
|
||||
|
||||
[development : production]
|
||||
phpSettings.display_startup_errors = 1
|
||||
phpSettings.display_errors = 1
|
||||
resources.frontController.params.displayExceptions = 1
|
284
legacy/application/configs/classmap-airtime-conf.php
Normal file
284
legacy/application/configs/classmap-airtime-conf.php
Normal file
|
@ -0,0 +1,284 @@
|
|||
<?php
|
||||
// This file generated by Propel 1.7.0 convert-conf target
|
||||
return array (
|
||||
'BaseCcBlock' => 'airtime/om/BaseCcBlock.php',
|
||||
'BaseCcBlockPeer' => 'airtime/om/BaseCcBlockPeer.php',
|
||||
'BaseCcBlockQuery' => 'airtime/om/BaseCcBlockQuery.php',
|
||||
'BaseCcBlockcontents' => 'airtime/om/BaseCcBlockcontents.php',
|
||||
'BaseCcBlockcontentsPeer' => 'airtime/om/BaseCcBlockcontentsPeer.php',
|
||||
'BaseCcBlockcontentsQuery' => 'airtime/om/BaseCcBlockcontentsQuery.php',
|
||||
'BaseCcBlockcriteria' => 'airtime/om/BaseCcBlockcriteria.php',
|
||||
'BaseCcBlockcriteriaPeer' => 'airtime/om/BaseCcBlockcriteriaPeer.php',
|
||||
'BaseCcBlockcriteriaQuery' => 'airtime/om/BaseCcBlockcriteriaQuery.php',
|
||||
'BaseCcCountry' => 'airtime/om/BaseCcCountry.php',
|
||||
'BaseCcCountryPeer' => 'airtime/om/BaseCcCountryPeer.php',
|
||||
'BaseCcCountryQuery' => 'airtime/om/BaseCcCountryQuery.php',
|
||||
'BaseCcFiles' => 'airtime/om/BaseCcFiles.php',
|
||||
'BaseCcFilesPeer' => 'airtime/om/BaseCcFilesPeer.php',
|
||||
'BaseCcFilesQuery' => 'airtime/om/BaseCcFilesQuery.php',
|
||||
'BaseCcListenerCount' => 'airtime/om/BaseCcListenerCount.php',
|
||||
'BaseCcListenerCountPeer' => 'airtime/om/BaseCcListenerCountPeer.php',
|
||||
'BaseCcListenerCountQuery' => 'airtime/om/BaseCcListenerCountQuery.php',
|
||||
'BaseCcLiveLog' => 'airtime/om/BaseCcLiveLog.php',
|
||||
'BaseCcLiveLogPeer' => 'airtime/om/BaseCcLiveLogPeer.php',
|
||||
'BaseCcLiveLogQuery' => 'airtime/om/BaseCcLiveLogQuery.php',
|
||||
'BaseCcLoginAttempts' => 'airtime/om/BaseCcLoginAttempts.php',
|
||||
'BaseCcLoginAttemptsPeer' => 'airtime/om/BaseCcLoginAttemptsPeer.php',
|
||||
'BaseCcLoginAttemptsQuery' => 'airtime/om/BaseCcLoginAttemptsQuery.php',
|
||||
'BaseCcMountName' => 'airtime/om/BaseCcMountName.php',
|
||||
'BaseCcMountNamePeer' => 'airtime/om/BaseCcMountNamePeer.php',
|
||||
'BaseCcMountNameQuery' => 'airtime/om/BaseCcMountNameQuery.php',
|
||||
'BaseCcMusicDirs' => 'airtime/om/BaseCcMusicDirs.php',
|
||||
'BaseCcMusicDirsPeer' => 'airtime/om/BaseCcMusicDirsPeer.php',
|
||||
'BaseCcMusicDirsQuery' => 'airtime/om/BaseCcMusicDirsQuery.php',
|
||||
'BaseCcPerms' => 'airtime/om/BaseCcPerms.php',
|
||||
'BaseCcPermsPeer' => 'airtime/om/BaseCcPermsPeer.php',
|
||||
'BaseCcPermsQuery' => 'airtime/om/BaseCcPermsQuery.php',
|
||||
'BaseCcPlaylist' => 'airtime/om/BaseCcPlaylist.php',
|
||||
'BaseCcPlaylistPeer' => 'airtime/om/BaseCcPlaylistPeer.php',
|
||||
'BaseCcPlaylistQuery' => 'airtime/om/BaseCcPlaylistQuery.php',
|
||||
'BaseCcPlaylistcontents' => 'airtime/om/BaseCcPlaylistcontents.php',
|
||||
'BaseCcPlaylistcontentsPeer' => 'airtime/om/BaseCcPlaylistcontentsPeer.php',
|
||||
'BaseCcPlaylistcontentsQuery' => 'airtime/om/BaseCcPlaylistcontentsQuery.php',
|
||||
'BaseCcPlayoutHistory' => 'airtime/om/BaseCcPlayoutHistory.php',
|
||||
'BaseCcPlayoutHistoryMetaData' => 'airtime/om/BaseCcPlayoutHistoryMetaData.php',
|
||||
'BaseCcPlayoutHistoryMetaDataPeer' => 'airtime/om/BaseCcPlayoutHistoryMetaDataPeer.php',
|
||||
'BaseCcPlayoutHistoryMetaDataQuery' => 'airtime/om/BaseCcPlayoutHistoryMetaDataQuery.php',
|
||||
'BaseCcPlayoutHistoryPeer' => 'airtime/om/BaseCcPlayoutHistoryPeer.php',
|
||||
'BaseCcPlayoutHistoryQuery' => 'airtime/om/BaseCcPlayoutHistoryQuery.php',
|
||||
'BaseCcPlayoutHistoryTemplate' => 'airtime/om/BaseCcPlayoutHistoryTemplate.php',
|
||||
'BaseCcPlayoutHistoryTemplateField' => 'airtime/om/BaseCcPlayoutHistoryTemplateField.php',
|
||||
'BaseCcPlayoutHistoryTemplateFieldPeer' => 'airtime/om/BaseCcPlayoutHistoryTemplateFieldPeer.php',
|
||||
'BaseCcPlayoutHistoryTemplateFieldQuery' => 'airtime/om/BaseCcPlayoutHistoryTemplateFieldQuery.php',
|
||||
'BaseCcPlayoutHistoryTemplatePeer' => 'airtime/om/BaseCcPlayoutHistoryTemplatePeer.php',
|
||||
'BaseCcPlayoutHistoryTemplateQuery' => 'airtime/om/BaseCcPlayoutHistoryTemplateQuery.php',
|
||||
'BaseCcPref' => 'airtime/om/BaseCcPref.php',
|
||||
'BaseCcPrefPeer' => 'airtime/om/BaseCcPrefPeer.php',
|
||||
'BaseCcPrefQuery' => 'airtime/om/BaseCcPrefQuery.php',
|
||||
'BaseCcSchedule' => 'airtime/om/BaseCcSchedule.php',
|
||||
'BaseCcSchedulePeer' => 'airtime/om/BaseCcSchedulePeer.php',
|
||||
'BaseCcScheduleQuery' => 'airtime/om/BaseCcScheduleQuery.php',
|
||||
'BaseCcServiceRegister' => 'airtime/om/BaseCcServiceRegister.php',
|
||||
'BaseCcServiceRegisterPeer' => 'airtime/om/BaseCcServiceRegisterPeer.php',
|
||||
'BaseCcServiceRegisterQuery' => 'airtime/om/BaseCcServiceRegisterQuery.php',
|
||||
'BaseCcSess' => 'airtime/om/BaseCcSess.php',
|
||||
'BaseCcSessPeer' => 'airtime/om/BaseCcSessPeer.php',
|
||||
'BaseCcSessQuery' => 'airtime/om/BaseCcSessQuery.php',
|
||||
'BaseCcShow' => 'airtime/om/BaseCcShow.php',
|
||||
'BaseCcShowDays' => 'airtime/om/BaseCcShowDays.php',
|
||||
'BaseCcShowDaysPeer' => 'airtime/om/BaseCcShowDaysPeer.php',
|
||||
'BaseCcShowDaysQuery' => 'airtime/om/BaseCcShowDaysQuery.php',
|
||||
'BaseCcShowHosts' => 'airtime/om/BaseCcShowHosts.php',
|
||||
'BaseCcShowHostsPeer' => 'airtime/om/BaseCcShowHostsPeer.php',
|
||||
'BaseCcShowHostsQuery' => 'airtime/om/BaseCcShowHostsQuery.php',
|
||||
'BaseCcShowInstances' => 'airtime/om/BaseCcShowInstances.php',
|
||||
'BaseCcShowInstancesPeer' => 'airtime/om/BaseCcShowInstancesPeer.php',
|
||||
'BaseCcShowInstancesQuery' => 'airtime/om/BaseCcShowInstancesQuery.php',
|
||||
'BaseCcShowPeer' => 'airtime/om/BaseCcShowPeer.php',
|
||||
'BaseCcShowQuery' => 'airtime/om/BaseCcShowQuery.php',
|
||||
'BaseCcShowRebroadcast' => 'airtime/om/BaseCcShowRebroadcast.php',
|
||||
'BaseCcShowRebroadcastPeer' => 'airtime/om/BaseCcShowRebroadcastPeer.php',
|
||||
'BaseCcShowRebroadcastQuery' => 'airtime/om/BaseCcShowRebroadcastQuery.php',
|
||||
'BaseCcStreamSetting' => 'airtime/om/BaseCcStreamSetting.php',
|
||||
'BaseCcStreamSettingPeer' => 'airtime/om/BaseCcStreamSettingPeer.php',
|
||||
'BaseCcStreamSettingQuery' => 'airtime/om/BaseCcStreamSettingQuery.php',
|
||||
'BaseCcTracktypes' => 'airtime/om/BaseCcTracktypes.php',
|
||||
'BaseCcTracktypesPeer' => 'airtime/om/BaseCcTracktypesPeer.php',
|
||||
'BaseCcTracktypesQuery' => 'airtime/om/BaseCcTracktypesQuery.php',
|
||||
'BaseCcSubjs' => 'airtime/om/BaseCcSubjs.php',
|
||||
'BaseCcSubjsPeer' => 'airtime/om/BaseCcSubjsPeer.php',
|
||||
'BaseCcSubjsQuery' => 'airtime/om/BaseCcSubjsQuery.php',
|
||||
'BaseCcSubjsToken' => 'airtime/om/BaseCcSubjsToken.php',
|
||||
'BaseCcSubjsTokenPeer' => 'airtime/om/BaseCcSubjsTokenPeer.php',
|
||||
'BaseCcSubjsTokenQuery' => 'airtime/om/BaseCcSubjsTokenQuery.php',
|
||||
'BaseCcTimestamp' => 'airtime/om/BaseCcTimestamp.php',
|
||||
'BaseCcTimestampPeer' => 'airtime/om/BaseCcTimestampPeer.php',
|
||||
'BaseCcTimestampQuery' => 'airtime/om/BaseCcTimestampQuery.php',
|
||||
'BaseCcWebstream' => 'airtime/om/BaseCcWebstream.php',
|
||||
'BaseCcWebstreamMetadata' => 'airtime/om/BaseCcWebstreamMetadata.php',
|
||||
'BaseCcWebstreamMetadataPeer' => 'airtime/om/BaseCcWebstreamMetadataPeer.php',
|
||||
'BaseCcWebstreamMetadataQuery' => 'airtime/om/BaseCcWebstreamMetadataQuery.php',
|
||||
'BaseCcWebstreamPeer' => 'airtime/om/BaseCcWebstreamPeer.php',
|
||||
'BaseCcWebstreamQuery' => 'airtime/om/BaseCcWebstreamQuery.php',
|
||||
'BaseCeleryTasks' => 'airtime/om/BaseCeleryTasks.php',
|
||||
'BaseCeleryTasksPeer' => 'airtime/om/BaseCeleryTasksPeer.php',
|
||||
'BaseCeleryTasksQuery' => 'airtime/om/BaseCeleryTasksQuery.php',
|
||||
'BaseCloudFile' => 'airtime/om/BaseCloudFile.php',
|
||||
'BaseCloudFilePeer' => 'airtime/om/BaseCloudFilePeer.php',
|
||||
'BaseCloudFileQuery' => 'airtime/om/BaseCloudFileQuery.php',
|
||||
'BaseImportedPodcast' => 'airtime/om/BaseImportedPodcast.php',
|
||||
'BaseImportedPodcastPeer' => 'airtime/om/BaseImportedPodcastPeer.php',
|
||||
'BaseImportedPodcastQuery' => 'airtime/om/BaseImportedPodcastQuery.php',
|
||||
'BasePodcast' => 'airtime/om/BasePodcast.php',
|
||||
'BasePodcastEpisodes' => 'airtime/om/BasePodcastEpisodes.php',
|
||||
'BasePodcastEpisodesPeer' => 'airtime/om/BasePodcastEpisodesPeer.php',
|
||||
'BasePodcastEpisodesQuery' => 'airtime/om/BasePodcastEpisodesQuery.php',
|
||||
'BasePodcastPeer' => 'airtime/om/BasePodcastPeer.php',
|
||||
'BasePodcastQuery' => 'airtime/om/BasePodcastQuery.php',
|
||||
'BaseStationPodcast' => 'airtime/om/BaseStationPodcast.php',
|
||||
'BaseStationPodcastPeer' => 'airtime/om/BaseStationPodcastPeer.php',
|
||||
'BaseStationPodcastQuery' => 'airtime/om/BaseStationPodcastQuery.php',
|
||||
'BaseThirdPartyTrackReferences' => 'airtime/om/BaseThirdPartyTrackReferences.php',
|
||||
'BaseThirdPartyTrackReferencesPeer' => 'airtime/om/BaseThirdPartyTrackReferencesPeer.php',
|
||||
'BaseThirdPartyTrackReferencesQuery' => 'airtime/om/BaseThirdPartyTrackReferencesQuery.php',
|
||||
'CcBlock' => 'airtime/CcBlock.php',
|
||||
'CcBlockPeer' => 'airtime/CcBlockPeer.php',
|
||||
'CcBlockQuery' => 'airtime/CcBlockQuery.php',
|
||||
'CcBlockTableMap' => 'airtime/map/CcBlockTableMap.php',
|
||||
'CcBlockcontents' => 'airtime/CcBlockcontents.php',
|
||||
'CcBlockcontentsPeer' => 'airtime/CcBlockcontentsPeer.php',
|
||||
'CcBlockcontentsQuery' => 'airtime/CcBlockcontentsQuery.php',
|
||||
'CcBlockcontentsTableMap' => 'airtime/map/CcBlockcontentsTableMap.php',
|
||||
'CcBlockcriteria' => 'airtime/CcBlockcriteria.php',
|
||||
'CcBlockcriteriaPeer' => 'airtime/CcBlockcriteriaPeer.php',
|
||||
'CcBlockcriteriaQuery' => 'airtime/CcBlockcriteriaQuery.php',
|
||||
'CcBlockcriteriaTableMap' => 'airtime/map/CcBlockcriteriaTableMap.php',
|
||||
'CcCountry' => 'airtime/CcCountry.php',
|
||||
'CcCountryPeer' => 'airtime/CcCountryPeer.php',
|
||||
'CcCountryQuery' => 'airtime/CcCountryQuery.php',
|
||||
'CcCountryTableMap' => 'airtime/map/CcCountryTableMap.php',
|
||||
'CcFiles' => 'airtime/CcFiles.php',
|
||||
'CcFilesPeer' => 'airtime/CcFilesPeer.php',
|
||||
'CcFilesQuery' => 'airtime/CcFilesQuery.php',
|
||||
'CcFilesTableMap' => 'airtime/map/CcFilesTableMap.php',
|
||||
'CcListenerCount' => 'airtime/CcListenerCount.php',
|
||||
'CcListenerCountPeer' => 'airtime/CcListenerCountPeer.php',
|
||||
'CcListenerCountQuery' => 'airtime/CcListenerCountQuery.php',
|
||||
'CcListenerCountTableMap' => 'airtime/map/CcListenerCountTableMap.php',
|
||||
'CcLiveLog' => 'airtime/CcLiveLog.php',
|
||||
'CcLiveLogPeer' => 'airtime/CcLiveLogPeer.php',
|
||||
'CcLiveLogQuery' => 'airtime/CcLiveLogQuery.php',
|
||||
'CcLiveLogTableMap' => 'airtime/map/CcLiveLogTableMap.php',
|
||||
'CcLoginAttempts' => 'airtime/CcLoginAttempts.php',
|
||||
'CcLoginAttemptsPeer' => 'airtime/CcLoginAttemptsPeer.php',
|
||||
'CcLoginAttemptsQuery' => 'airtime/CcLoginAttemptsQuery.php',
|
||||
'CcLoginAttemptsTableMap' => 'airtime/map/CcLoginAttemptsTableMap.php',
|
||||
'CcMountName' => 'airtime/CcMountName.php',
|
||||
'CcMountNamePeer' => 'airtime/CcMountNamePeer.php',
|
||||
'CcMountNameQuery' => 'airtime/CcMountNameQuery.php',
|
||||
'CcMountNameTableMap' => 'airtime/map/CcMountNameTableMap.php',
|
||||
'CcMusicDirs' => 'airtime/CcMusicDirs.php',
|
||||
'CcMusicDirsPeer' => 'airtime/CcMusicDirsPeer.php',
|
||||
'CcMusicDirsQuery' => 'airtime/CcMusicDirsQuery.php',
|
||||
'CcMusicDirsTableMap' => 'airtime/map/CcMusicDirsTableMap.php',
|
||||
'CcPerms' => 'airtime/CcPerms.php',
|
||||
'CcPermsPeer' => 'airtime/CcPermsPeer.php',
|
||||
'CcPermsQuery' => 'airtime/CcPermsQuery.php',
|
||||
'CcPermsTableMap' => 'airtime/map/CcPermsTableMap.php',
|
||||
'CcPlaylist' => 'airtime/CcPlaylist.php',
|
||||
'CcPlaylistPeer' => 'airtime/CcPlaylistPeer.php',
|
||||
'CcPlaylistQuery' => 'airtime/CcPlaylistQuery.php',
|
||||
'CcPlaylistTableMap' => 'airtime/map/CcPlaylistTableMap.php',
|
||||
'CcPlaylistcontents' => 'airtime/CcPlaylistcontents.php',
|
||||
'CcPlaylistcontentsPeer' => 'airtime/CcPlaylistcontentsPeer.php',
|
||||
'CcPlaylistcontentsQuery' => 'airtime/CcPlaylistcontentsQuery.php',
|
||||
'CcPlaylistcontentsTableMap' => 'airtime/map/CcPlaylistcontentsTableMap.php',
|
||||
'CcPlayoutHistory' => 'airtime/CcPlayoutHistory.php',
|
||||
'CcPlayoutHistoryMetaData' => 'airtime/CcPlayoutHistoryMetaData.php',
|
||||
'CcPlayoutHistoryMetaDataPeer' => 'airtime/CcPlayoutHistoryMetaDataPeer.php',
|
||||
'CcPlayoutHistoryMetaDataQuery' => 'airtime/CcPlayoutHistoryMetaDataQuery.php',
|
||||
'CcPlayoutHistoryMetaDataTableMap' => 'airtime/map/CcPlayoutHistoryMetaDataTableMap.php',
|
||||
'CcPlayoutHistoryPeer' => 'airtime/CcPlayoutHistoryPeer.php',
|
||||
'CcPlayoutHistoryQuery' => 'airtime/CcPlayoutHistoryQuery.php',
|
||||
'CcPlayoutHistoryTableMap' => 'airtime/map/CcPlayoutHistoryTableMap.php',
|
||||
'CcPlayoutHistoryTemplate' => 'airtime/CcPlayoutHistoryTemplate.php',
|
||||
'CcPlayoutHistoryTemplateField' => 'airtime/CcPlayoutHistoryTemplateField.php',
|
||||
'CcPlayoutHistoryTemplateFieldPeer' => 'airtime/CcPlayoutHistoryTemplateFieldPeer.php',
|
||||
'CcPlayoutHistoryTemplateFieldQuery' => 'airtime/CcPlayoutHistoryTemplateFieldQuery.php',
|
||||
'CcPlayoutHistoryTemplateFieldTableMap' => 'airtime/map/CcPlayoutHistoryTemplateFieldTableMap.php',
|
||||
'CcPlayoutHistoryTemplatePeer' => 'airtime/CcPlayoutHistoryTemplatePeer.php',
|
||||
'CcPlayoutHistoryTemplateQuery' => 'airtime/CcPlayoutHistoryTemplateQuery.php',
|
||||
'CcPlayoutHistoryTemplateTableMap' => 'airtime/map/CcPlayoutHistoryTemplateTableMap.php',
|
||||
'CcPref' => 'airtime/CcPref.php',
|
||||
'CcPrefPeer' => 'airtime/CcPrefPeer.php',
|
||||
'CcPrefQuery' => 'airtime/CcPrefQuery.php',
|
||||
'CcPrefTableMap' => 'airtime/map/CcPrefTableMap.php',
|
||||
'CcSchedule' => 'airtime/CcSchedule.php',
|
||||
'CcSchedulePeer' => 'airtime/CcSchedulePeer.php',
|
||||
'CcScheduleQuery' => 'airtime/CcScheduleQuery.php',
|
||||
'CcScheduleTableMap' => 'airtime/map/CcScheduleTableMap.php',
|
||||
'CcServiceRegister' => 'airtime/CcServiceRegister.php',
|
||||
'CcServiceRegisterPeer' => 'airtime/CcServiceRegisterPeer.php',
|
||||
'CcServiceRegisterQuery' => 'airtime/CcServiceRegisterQuery.php',
|
||||
'CcServiceRegisterTableMap' => 'airtime/map/CcServiceRegisterTableMap.php',
|
||||
'CcSess' => 'airtime/CcSess.php',
|
||||
'CcSessPeer' => 'airtime/CcSessPeer.php',
|
||||
'CcSessQuery' => 'airtime/CcSessQuery.php',
|
||||
'CcSessTableMap' => 'airtime/map/CcSessTableMap.php',
|
||||
'CcShow' => 'airtime/CcShow.php',
|
||||
'CcShowDays' => 'airtime/CcShowDays.php',
|
||||
'CcShowDaysPeer' => 'airtime/CcShowDaysPeer.php',
|
||||
'CcShowDaysQuery' => 'airtime/CcShowDaysQuery.php',
|
||||
'CcShowDaysTableMap' => 'airtime/map/CcShowDaysTableMap.php',
|
||||
'CcShowHosts' => 'airtime/CcShowHosts.php',
|
||||
'CcShowHostsPeer' => 'airtime/CcShowHostsPeer.php',
|
||||
'CcShowHostsQuery' => 'airtime/CcShowHostsQuery.php',
|
||||
'CcShowHostsTableMap' => 'airtime/map/CcShowHostsTableMap.php',
|
||||
'CcShowInstances' => 'airtime/CcShowInstances.php',
|
||||
'CcShowInstancesPeer' => 'airtime/CcShowInstancesPeer.php',
|
||||
'CcShowInstancesQuery' => 'airtime/CcShowInstancesQuery.php',
|
||||
'CcShowInstancesTableMap' => 'airtime/map/CcShowInstancesTableMap.php',
|
||||
'CcShowPeer' => 'airtime/CcShowPeer.php',
|
||||
'CcShowQuery' => 'airtime/CcShowQuery.php',
|
||||
'CcShowRebroadcast' => 'airtime/CcShowRebroadcast.php',
|
||||
'CcShowRebroadcastPeer' => 'airtime/CcShowRebroadcastPeer.php',
|
||||
'CcShowRebroadcastQuery' => 'airtime/CcShowRebroadcastQuery.php',
|
||||
'CcShowRebroadcastTableMap' => 'airtime/map/CcShowRebroadcastTableMap.php',
|
||||
'CcShowTableMap' => 'airtime/map/CcShowTableMap.php',
|
||||
'CcStreamSetting' => 'airtime/CcStreamSetting.php',
|
||||
'CcStreamSettingPeer' => 'airtime/CcStreamSettingPeer.php',
|
||||
'CcStreamSettingQuery' => 'airtime/CcStreamSettingQuery.php',
|
||||
'CcStreamSettingTableMap' => 'airtime/map/CcStreamSettingTableMap.php',
|
||||
'CcTracktypes' => 'airtime/CcTracktypes.php',
|
||||
'CcTracktypesPeer' => 'airtime/CcTracktypesPeer.php',
|
||||
'CcTracktypesQuery' => 'airtime/CcTracktypesQuery.php',
|
||||
'CcTracktypesTableMap' => 'airtime/map/CcTracktypesTableMap.php',
|
||||
'CcSubjs' => 'airtime/CcSubjs.php',
|
||||
'CcSubjsPeer' => 'airtime/CcSubjsPeer.php',
|
||||
'CcSubjsQuery' => 'airtime/CcSubjsQuery.php',
|
||||
'CcSubjsTableMap' => 'airtime/map/CcSubjsTableMap.php',
|
||||
'CcSubjsToken' => 'airtime/CcSubjsToken.php',
|
||||
'CcSubjsTokenPeer' => 'airtime/CcSubjsTokenPeer.php',
|
||||
'CcSubjsTokenQuery' => 'airtime/CcSubjsTokenQuery.php',
|
||||
'CcSubjsTokenTableMap' => 'airtime/map/CcSubjsTokenTableMap.php',
|
||||
'CcTimestamp' => 'airtime/CcTimestamp.php',
|
||||
'CcTimestampPeer' => 'airtime/CcTimestampPeer.php',
|
||||
'CcTimestampQuery' => 'airtime/CcTimestampQuery.php',
|
||||
'CcTimestampTableMap' => 'airtime/map/CcTimestampTableMap.php',
|
||||
'CcWebstream' => 'airtime/CcWebstream.php',
|
||||
'CcWebstreamMetadata' => 'airtime/CcWebstreamMetadata.php',
|
||||
'CcWebstreamMetadataPeer' => 'airtime/CcWebstreamMetadataPeer.php',
|
||||
'CcWebstreamMetadataQuery' => 'airtime/CcWebstreamMetadataQuery.php',
|
||||
'CcWebstreamMetadataTableMap' => 'airtime/map/CcWebstreamMetadataTableMap.php',
|
||||
'CcWebstreamPeer' => 'airtime/CcWebstreamPeer.php',
|
||||
'CcWebstreamQuery' => 'airtime/CcWebstreamQuery.php',
|
||||
'CcWebstreamTableMap' => 'airtime/map/CcWebstreamTableMap.php',
|
||||
'CeleryTasks' => 'airtime/CeleryTasks.php',
|
||||
'CeleryTasksPeer' => 'airtime/CeleryTasksPeer.php',
|
||||
'CeleryTasksQuery' => 'airtime/CeleryTasksQuery.php',
|
||||
'CeleryTasksTableMap' => 'airtime/map/CeleryTasksTableMap.php',
|
||||
'CloudFile' => 'airtime/CloudFile.php',
|
||||
'CloudFilePeer' => 'airtime/CloudFilePeer.php',
|
||||
'CloudFileQuery' => 'airtime/CloudFileQuery.php',
|
||||
'CloudFileTableMap' => 'airtime/map/CloudFileTableMap.php',
|
||||
'ImportedPodcast' => 'airtime/ImportedPodcast.php',
|
||||
'ImportedPodcastPeer' => 'airtime/ImportedPodcastPeer.php',
|
||||
'ImportedPodcastQuery' => 'airtime/ImportedPodcastQuery.php',
|
||||
'ImportedPodcastTableMap' => 'airtime/map/ImportedPodcastTableMap.php',
|
||||
'Podcast' => 'airtime/Podcast.php',
|
||||
'PodcastEpisodes' => 'airtime/PodcastEpisodes.php',
|
||||
'PodcastEpisodesPeer' => 'airtime/PodcastEpisodesPeer.php',
|
||||
'PodcastEpisodesQuery' => 'airtime/PodcastEpisodesQuery.php',
|
||||
'PodcastEpisodesTableMap' => 'airtime/map/PodcastEpisodesTableMap.php',
|
||||
'PodcastPeer' => 'airtime/PodcastPeer.php',
|
||||
'PodcastQuery' => 'airtime/PodcastQuery.php',
|
||||
'PodcastTableMap' => 'airtime/map/PodcastTableMap.php',
|
||||
'StationPodcast' => 'airtime/StationPodcast.php',
|
||||
'StationPodcastPeer' => 'airtime/StationPodcastPeer.php',
|
||||
'StationPodcastQuery' => 'airtime/StationPodcastQuery.php',
|
||||
'StationPodcastTableMap' => 'airtime/map/StationPodcastTableMap.php',
|
||||
'ThirdPartyTrackReferences' => 'airtime/ThirdPartyTrackReferences.php',
|
||||
'ThirdPartyTrackReferencesPeer' => 'airtime/ThirdPartyTrackReferencesPeer.php',
|
||||
'ThirdPartyTrackReferencesQuery' => 'airtime/ThirdPartyTrackReferencesQuery.php',
|
||||
'ThirdPartyTrackReferencesTableMap' => 'airtime/map/ThirdPartyTrackReferencesTableMap.php',
|
||||
);
|
122
legacy/application/configs/conf.php
Normal file
122
legacy/application/configs/conf.php
Normal file
|
@ -0,0 +1,122 @@
|
|||
<?php
|
||||
/* THIS FILE IS NOT MEANT FOR CUSTOMIZING.
|
||||
* PLEASE EDIT THE FOLLOWING TO CHANGE YOUR CONFIG:
|
||||
* LIBRETIME_CONF_DIR/airtime.conf
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/constants.php';
|
||||
|
||||
class Config {
|
||||
private static $CC_CONFIG = null;
|
||||
private static $rootDir;
|
||||
public static function loadConfig() {
|
||||
|
||||
self::$rootDir = __DIR__."/../..";
|
||||
$CC_CONFIG = array(
|
||||
/* ================================================ storage configuration */
|
||||
"rootDir" => self::$rootDir
|
||||
);
|
||||
|
||||
//In the unit testing environment, LIBRETIME_CONF_DIR will our local airtime.conf in airtime_mvc/application/test/conf:
|
||||
$filename = isset($_SERVER['AIRTIME_CONF']) ? $_SERVER['AIRTIME_CONF'] : LIBRETIME_CONF_DIR . "/airtime.conf";
|
||||
|
||||
$values = parse_ini_file($filename, true);
|
||||
|
||||
// Name of the web server user
|
||||
$CC_CONFIG['webServerUser'] = $values['general']['web_server_user'];
|
||||
$CC_CONFIG['rabbitmq'] = $values['rabbitmq'];
|
||||
|
||||
$CC_CONFIG['baseDir'] = $values['general']['base_dir'];
|
||||
$CC_CONFIG['baseUrl'] = $values['general']['base_url'];
|
||||
$CC_CONFIG['basePort'] = $values['general']['base_port'];
|
||||
$CC_CONFIG['stationId'] = $values['general']['station_id'];
|
||||
$CC_CONFIG['phpDir'] = $values['general']['airtime_dir'];
|
||||
$CC_CONFIG['forceSSL'] = isset($values['general']['force_ssl']) ? Config::isYesValue($values['general']['force_ssl']) : FALSE;
|
||||
$CC_CONFIG['protocol'] = isset($values['general']['protocol']) ? $values['general']['protocol'] : '';
|
||||
if (isset($values['general']['dev_env'])) {
|
||||
$CC_CONFIG['dev_env'] = $values['general']['dev_env'];
|
||||
} else {
|
||||
$CC_CONFIG['dev_env'] = 'production';
|
||||
}
|
||||
|
||||
$CC_CONFIG['auth'] = 'local';
|
||||
if (isset($values['general']['auth'])) {
|
||||
$CC_CONFIG['auth'] = $values['general']['auth'];
|
||||
}
|
||||
|
||||
//Backported static_base_dir default value into saas for now.
|
||||
if (array_key_exists('static_base_dir', $values['general'])) {
|
||||
$CC_CONFIG['staticBaseDir'] = $values['general']['static_base_dir'];
|
||||
} else {
|
||||
$CC_CONFIG['staticBaseDir'] = '/';
|
||||
}
|
||||
|
||||
// Tells us where file uploads will be uploaded to.
|
||||
// It will either be set to a cloud storage backend or local file storage.
|
||||
$CC_CONFIG["current_backend"] = $values["current_backend"]["storage_backend"];
|
||||
|
||||
$CC_CONFIG['cache_ahead_hours'] = $values['general']['cache_ahead_hours'];
|
||||
|
||||
// Database config
|
||||
$CC_CONFIG['dsn']['username'] = $values['database']['dbuser'];
|
||||
$CC_CONFIG['dsn']['password'] = $values['database']['dbpass'];
|
||||
$CC_CONFIG['dsn']['hostspec'] = $values['database']['host'];
|
||||
$CC_CONFIG['dsn']['phptype'] = 'pgsql';
|
||||
$CC_CONFIG['dsn']['database'] = $values['database']['dbname'];
|
||||
|
||||
$CC_CONFIG['apiKey'] = array($values['general']['api_key']);
|
||||
|
||||
if (isset($values['facebook']['facebook_app_id'])) {
|
||||
$CC_CONFIG['facebook-app-id'] = $values['facebook']['facebook_app_id'];
|
||||
$CC_CONFIG['facebook-app-url'] = $values['facebook']['facebook_app_url'];
|
||||
$CC_CONFIG['facebook-app-api-key'] = $values['facebook']['facebook_app_api_key'];
|
||||
}
|
||||
|
||||
// ldap config
|
||||
if (array_key_exists('ldap', $values)) {
|
||||
$CC_CONFIG['ldap_hostname'] = $values['ldap']['hostname'];
|
||||
$CC_CONFIG['ldap_binddn'] = $values['ldap']['binddn'];
|
||||
$CC_CONFIG['ldap_password'] = $values['ldap']['password'];
|
||||
$CC_CONFIG['ldap_account_domain'] = $values['ldap']['account_domain'];
|
||||
$CC_CONFIG['ldap_basedn'] = $values['ldap']['basedn'];
|
||||
$CC_CONFIG['ldap_groupmap_guest'] = $values['ldap']['groupmap_guest'];
|
||||
$CC_CONFIG['ldap_groupmap_host'] = $values['ldap']['groupmap_host'];
|
||||
$CC_CONFIG['ldap_groupmap_program_manager'] = $values['ldap']['groupmap_program_manager'];
|
||||
$CC_CONFIG['ldap_groupmap_admin'] = $values['ldap']['groupmap_admin'];
|
||||
$CC_CONFIG['ldap_groupmap_superadmin'] = $values['ldap']['groupmap_superadmin'];
|
||||
$CC_CONFIG['ldap_filter_field'] = $values['ldap']['filter_field'];
|
||||
}
|
||||
|
||||
if(isset($values['demo']['demo'])){
|
||||
$CC_CONFIG['demo'] = $values['demo']['demo'];
|
||||
}
|
||||
self::$CC_CONFIG = $CC_CONFIG;
|
||||
}
|
||||
|
||||
public static function setAirtimeVersion() {
|
||||
$version = @file_get_contents(self::$rootDir."/../VERSION");
|
||||
if (!$version) {
|
||||
// fallback to constant from constants.php if no other info is available
|
||||
$version = LIBRETIME_MAJOR_VERSION;
|
||||
}
|
||||
self::$CC_CONFIG['airtime_version'] = trim($version);
|
||||
}
|
||||
|
||||
public static function getConfig() {
|
||||
if (is_null(self::$CC_CONFIG)) {
|
||||
self::loadConfig();
|
||||
}
|
||||
return self::$CC_CONFIG;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the string is one of 'yes' or 'true' (case insensitive).
|
||||
*/
|
||||
public static function isYesValue($value)
|
||||
{
|
||||
if (is_bool($value)) return $value;
|
||||
if (!is_string($value)) return false;
|
||||
|
||||
return in_array(strtolower($value), ['yes', 'true']);
|
||||
}
|
||||
}
|
288
legacy/application/configs/config-check.php
Normal file
288
legacy/application/configs/config-check.php
Normal file
|
@ -0,0 +1,288 @@
|
|||
<?php
|
||||
/*
|
||||
* We only get here after setup, or if there's an error in the configuration.
|
||||
*
|
||||
* Display a table to the user showing the necessary dependencies
|
||||
* (both PHP and binary) and the status of any application services,
|
||||
* along with steps to fix them if they're not found or misconfigured.
|
||||
*/
|
||||
|
||||
$phpDependencies = checkPhpDependencies();
|
||||
$externalServices = checkExternalServices();
|
||||
$postgres = $phpDependencies["postgres"];
|
||||
|
||||
$database = $externalServices["database"];
|
||||
$rabbitmq = $externalServices["rabbitmq"];
|
||||
|
||||
$pypo = $externalServices["pypo"];
|
||||
$liquidsoap = $externalServices["liquidsoap"];
|
||||
$analyzer = $externalServices["analyzer"];
|
||||
$celery = $externalServices['celery'];
|
||||
$api = $externalServices['api'];
|
||||
|
||||
$r1 = array_reduce($phpDependencies, "booleanReduce", true);
|
||||
$r2 = array_reduce($externalServices, "booleanReduce", true);
|
||||
$result = $r1 && $r2;
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="css/bootstrap-3.3.1.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/setup/config-check.css">
|
||||
</head>
|
||||
<style>
|
||||
/*
|
||||
This is here because we're using the config-check css for
|
||||
both this page and the system status page
|
||||
*/
|
||||
html {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 2em;
|
||||
min-width: 600px;
|
||||
text-align: center;
|
||||
margin: 3em ;
|
||||
border: 1px solid lightgray;
|
||||
border-radius: 5px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<h2>
|
||||
<img class="logo" src="css/images/airtime_logo_jp.png" /><br/>
|
||||
<strong>Configuration Checklist</strong>
|
||||
</h2>
|
||||
|
||||
<?php
|
||||
if (!$result) {
|
||||
?>
|
||||
<br/>
|
||||
<h3 class="error">Looks like something went wrong!</h3>
|
||||
<p>
|
||||
Take a look at the checklist below for possible solutions. If you're tried the suggestions and are
|
||||
still experiencing issues, read the
|
||||
<a href="https://github.com/LibreTime/libretime/releases">release notes</a>,
|
||||
come <a href="https://discourse.libretime.org/">visit our discourse</a>
|
||||
or, check <a href="http://www.libretime.org/">the website and main docs</a>.
|
||||
</p>
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
<p>
|
||||
Your Airtime station is up and running! Get started by logging in with the default username and password: admin/admin
|
||||
</p>
|
||||
<button onclick="location = location.pathname;">Log in to Airtime!</button>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="component">
|
||||
Component
|
||||
</th>
|
||||
<th class="description">
|
||||
<strong>Description</strong>
|
||||
</th>
|
||||
<th class="solution">
|
||||
<strong>Status or Solution</strong>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
<div class="checklist">
|
||||
<table class="table table-striped">
|
||||
<caption class="caption">
|
||||
PHP Dependencies
|
||||
</caption>
|
||||
<tbody>
|
||||
<tr class="<?=$postgres ? 'success' : 'danger';?>">
|
||||
<td class="component">
|
||||
Postgres
|
||||
</td>
|
||||
<td class="description">
|
||||
PDO and PostgreSQL libraries
|
||||
</td>
|
||||
<td class="solution <?php if ($postgres) {echo 'check';?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
Try running <code>sudo apt-get install php5-pgsql</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="table table-striped">
|
||||
<caption class="caption">
|
||||
External Services
|
||||
</caption>
|
||||
<tbody>
|
||||
<tr class="<?=$database ? 'success' : 'danger';?>">
|
||||
<td class="component">
|
||||
Database
|
||||
</td>
|
||||
<td class="description">
|
||||
Database configuration for Airtime
|
||||
</td>
|
||||
<td class="solution <?php if ($database) {echo 'check';?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
Make sure you aren't missing any of the Postgres dependencies in the table above.
|
||||
If your dependencies check out, make sure your database configuration settings in
|
||||
<code>/etc/airtime.conf</code> are correct and the Airtime database was installed correctly.
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="<?=$rabbitmq ? 'success' : 'danger';?>">
|
||||
<td class="component">
|
||||
RabbitMQ
|
||||
</td>
|
||||
<td class="description">
|
||||
RabbitMQ configuration for Airtime
|
||||
</td>
|
||||
<td class="solution <?php if ($rabbitmq) {echo 'check';?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
Make sure RabbitMQ is installed correctly, and that your settings in /etc/airtime/airtime.conf
|
||||
are correct. Try using <code>sudo rabbitmqctl list_users</code> and <code>sudo rabbitmqctl list_vhosts</code>
|
||||
to see if the airtime user (or your custom RabbitMQ user) exists, then checking that
|
||||
<code>sudo rabbitmqctl list_exchanges</code> contains entries for airtime-pypo and airtime-uploads.
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="<?=$analyzer ? 'success' : 'danger';?>">
|
||||
<td class="component">
|
||||
Media Analyzer
|
||||
</td>
|
||||
<td class="description">
|
||||
<?php echo _("LibreTime media analyzer service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($analyzer) {echo 'check';?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-analyzer service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-analyzer</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-analyzer</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="<?=$pypo ? 'success' : 'danger';?>">
|
||||
<td class="component">
|
||||
Pypo
|
||||
</td>
|
||||
<td class="description">
|
||||
<?php echo _("LibreTime playout service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($pypo) {echo 'check';?>">
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-playout service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-playout</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-playout</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="<?=$liquidsoap ? 'success' : 'danger';?>">
|
||||
<td class="component">
|
||||
Liquidsoap
|
||||
</td>
|
||||
<td class="description">
|
||||
<?php echo _("LibreTime liquidsoap service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($liquidsoap) {echo 'check';?>" >
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-liquidsoap service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-liquidsoap</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-liquidsoap</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="<?=$celery ? 'success' : 'danger';?>">
|
||||
<td class="component">
|
||||
Celery
|
||||
</td>
|
||||
<td class="description">
|
||||
<?php echo _("LibreTime Celery Task service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($celery) {echo 'check';?>" >
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-celery service is installed correctly in ") ?><code>/etc/systemd/system/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-celery</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-celery</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="<?=$api ? 'success' : 'danger';?>">
|
||||
<td class="component">
|
||||
API
|
||||
</td>
|
||||
<td class="description">
|
||||
<?php echo _("LibreTime API service") ?>
|
||||
</td>
|
||||
<td class="solution <?php if ($api) {echo 'check';?>" >
|
||||
<?php
|
||||
} else {
|
||||
?>">
|
||||
<?php echo _("Check that the libretime-api service is installed correctly in ") ?><code>/etc/init.d/</code>,
|
||||
<?php echo _(" and ensure that it's running with ") ?>
|
||||
<br/><code>systemctl status libretime-api</code><br/>
|
||||
<?php echo _("If not, try ") ?><br/><code>sudo systemctl restart libretime-api</code>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<h3>
|
||||
PHP Extension List
|
||||
</h3>
|
||||
<p>
|
||||
<?php
|
||||
global $extensions;
|
||||
$first = true;
|
||||
foreach ($extensions as $ext) {
|
||||
if (!$first) {
|
||||
echo " | ";
|
||||
} else {
|
||||
$first = false;
|
||||
}
|
||||
echo $ext;
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
</div>
|
130
legacy/application/configs/constants.php
Normal file
130
legacy/application/configs/constants.php
Normal file
|
@ -0,0 +1,130 @@
|
|||
<?php
|
||||
|
||||
define('PRODUCT_NAME' , 'LibreTime');
|
||||
define('PRODUCT_SITE_URL' , 'http://libretime.org');
|
||||
|
||||
define('SAAS_PRODUCT_BRANDING_NAME', 'LibreTime');
|
||||
define('SAAS_LOGIN_REFERRER', 'http://libretime.org');
|
||||
|
||||
define('COMPANY_NAME' , 'LibreTime Community');
|
||||
define('COMPANY_SUFFIX' , '');
|
||||
define('COMPANY_SITE' , 'libretime.org');
|
||||
define('COMPANY_SITE_URL' , 'http://libretime.org');
|
||||
define('SUPPORT_ADDRESS' , 'https://discourse.libretime.org/');
|
||||
|
||||
define('HELP_URL' , 'https://discourse.libretime.org/');
|
||||
define('WHOS_USING_URL' , 'https://github.com/orgs/LibreTime/people');
|
||||
define('TERMS_AND_CONDITIONS_URL' , 'https://github.com/LibreTime/libretime/blob/master/README.md');
|
||||
define('PRIVACY_POLICY_URL' , 'https://github.com/LibreTime/code-of-conduct/blob/master/CODE_OF_CONDUCT.md');
|
||||
define('USER_MANUAL_URL' , 'http://libretime.org/docs');
|
||||
define('ABOUT_AIRTIME_URL' , 'http://libretime.org');
|
||||
define('LIBRETIME_CONTRIBUTE_URL' , 'https://libretime.org/contribute');
|
||||
define('LIBRETIME_DISCOURSE_URL' , 'https://discourse.libretime.org');
|
||||
define('UI_REVAMP_EMBED_URL' , 'https://www.youtube.com/embed/nqpNnCKGluY');
|
||||
define('LIBRETIME_WHATS_NEW_URL' , 'https://github.com/LibreTime/libretime/releases');
|
||||
define('LIBRETIME_UPDATE_FEED' , 'https://github.com/LibreTime/libretime/releases.atom');
|
||||
define('LIBRETIME_EMAIL_FROM' , 'noreply@libretime.org');
|
||||
|
||||
define('LICENSE_VERSION' , 'GNU AGPL v.3');
|
||||
define('LICENSE_URL' , 'http://www.gnu.org/licenses/agpl-3.0-standalone.html');
|
||||
|
||||
define('AIRTIME_COPYRIGHT_DATE' , '2010-2015');
|
||||
define('AIRTIME_REST_VERSION' , '1.1');
|
||||
define('AIRTIME_API_VERSION' , '1.1');
|
||||
// XXX: it's important that we upgrade this on major version bumps, usually users get more exact info from VERSION in airtime root dir
|
||||
define('LIBRETIME_MAJOR_VERSION', '3');
|
||||
|
||||
// grab values from env (i'll do this everywhere with a small function if we like it)
|
||||
define('LIBRETIME_CONF_DIR', getenv('LIBRETIME_CONF_DIR') ? getenv('LIBRETIME_CONF_DIR') : '/etc/airtime');
|
||||
define('LIBRETIME_LOG_DIR', getenv('LIBRETIME_LOG_DIR') ? getenv('LIBRETIME_LOG_DIR') : '/var/log/airtime');
|
||||
|
||||
// Defaults
|
||||
define('DEFAULT_LOGO_PLACEHOLDER', 1);
|
||||
define('DEFAULT_LOGO_FILE', 'images/airtime_logo.png');
|
||||
define('DEFAULT_TIMESTAMP_FORMAT', 'Y-m-d H:i:s');
|
||||
define('DEFAULT_MICROTIME_FORMAT', 'Y-m-d H:i:s.u');
|
||||
define('DEFAULT_ICECAST_PORT', 8000);
|
||||
define('DEFAULT_ICECAST_PASS', 'hackme');
|
||||
define('DEFAULT_SHOW_COLOR', '76aca5');
|
||||
define('DEFAULT_INTERVAL_FORMAT', 'H:i:s.u');
|
||||
|
||||
// Metadata Keys for files
|
||||
define('MDATA_KEY_FILEPATH' , 'filepath');
|
||||
define('MDATA_KEY_DIRECTORY' , 'directory');
|
||||
define('MDATA_KEY_MD5' , 'md5');
|
||||
define('MDATA_KEY_TITLE' , 'track_title');
|
||||
define('MDATA_KEY_CREATOR' , 'artist_name');
|
||||
define('MDATA_KEY_SOURCE' , 'album_title');
|
||||
define('MDATA_KEY_DURATION' , 'length');
|
||||
define('MDATA_KEY_MIME' , 'mime');
|
||||
define('MDATA_KEY_FTYPE' , 'ftype');
|
||||
define('MDATA_KEY_URL' , 'info_url');
|
||||
define('MDATA_KEY_GENRE' , 'genre');
|
||||
define('MDATA_KEY_MOOD' , 'mood');
|
||||
define('MDATA_KEY_LABEL' , 'label');
|
||||
define('MDATA_KEY_COMPOSER' , 'composer');
|
||||
define('MDATA_KEY_DESCRIPTION' , 'description');
|
||||
define('MDATA_KEY_SAMPLERATE' , 'sample_rate');
|
||||
define('MDATA_KEY_BITRATE' , 'bit_rate');
|
||||
define('MDATA_KEY_ENCODER' , 'encoded_by');
|
||||
define('MDATA_KEY_ISRC' , 'isrc_number');
|
||||
define('MDATA_KEY_COPYRIGHT' , 'copyright');
|
||||
define('MDATA_KEY_YEAR' , 'year');
|
||||
define('MDATA_KEY_BPM' , 'bpm');
|
||||
define('MDATA_KEY_TRACKNUMBER' , 'track_number');
|
||||
define('MDATA_KEY_CONDUCTOR' , 'conductor');
|
||||
define('MDATA_KEY_LANGUAGE' , 'language');
|
||||
define('MDATA_KEY_REPLAYGAIN' , 'replay_gain');
|
||||
define('MDATA_KEY_OWNER_ID' , 'owner_id');
|
||||
define('MDATA_KEY_CUE_IN' , 'cuein');
|
||||
define('MDATA_KEY_CUE_OUT' , 'cueout');
|
||||
define('MDATA_KEY_ARTWORK' , 'artwork');
|
||||
define('MDATA_KEY_ARTWORK_DATA', 'artwork_data');
|
||||
define('MDATA_KEY_TRACK_TYPE' , 'track_type');
|
||||
|
||||
define('UI_MDATA_VALUE_FORMAT_FILE' , 'File');
|
||||
define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream');
|
||||
|
||||
//User types
|
||||
define('UTYPE_HOST' , 'H');
|
||||
define('UTYPE_ADMIN' , 'A');
|
||||
define('UTYPE_SUPERADMIN' , 'S');
|
||||
define('UTYPE_GUEST' , 'G');
|
||||
define('UTYPE_PROGRAM_MANAGER' , 'P');
|
||||
|
||||
//Constants for playout history template fields
|
||||
define('TEMPLATE_DATE', 'date');
|
||||
define('TEMPLATE_TIME', 'time');
|
||||
define('TEMPLATE_DATETIME', 'datetime');
|
||||
define('TEMPLATE_STRING', 'string');
|
||||
define('TEMPLATE_BOOLEAN', 'boolean');
|
||||
define('TEMPLATE_INT', 'integer');
|
||||
define('TEMPLATE_FLOAT', 'float');
|
||||
|
||||
// Session Keys
|
||||
define('UI_PLAYLISTCONTROLLER_OBJ_SESSNAME', 'PLAYLISTCONTROLLER_OBJ');
|
||||
/*define('UI_PLAYLIST_SESSNAME', 'PLAYLIST');
|
||||
define('UI_BLOCK_SESSNAME', 'BLOCK');*/
|
||||
|
||||
//Sentry error logging
|
||||
define('SENTRY_CONFIG_PATH', LIBRETIME_CONF_DIR . '/sentry.airtime_web.ini');
|
||||
|
||||
//TuneIn integration
|
||||
define("TUNEIN_API_URL", "http://air.radiotime.com/Playing.ashx");
|
||||
|
||||
// Celery
|
||||
define('CELERY_PENDING_STATUS', 'PENDING');
|
||||
define('CELERY_SUCCESS_STATUS', 'SUCCESS');
|
||||
define('CELERY_FAILED_STATUS', 'FAILED');
|
||||
|
||||
// Celery Services
|
||||
define('PODCAST_SERVICE_NAME', 'podcast');
|
||||
|
||||
// Publish Services
|
||||
define('STATION_PODCAST_SERVICE_NAME', 'station_podcast');
|
||||
|
||||
// Podcast Types
|
||||
//define('STATION_PODCAST', 0);
|
||||
//define('IMPORTED_PODCAST', 1);
|
||||
|
||||
define('ITUNES_XML_NAMESPACE_URL', 'http://www.itunes.com/dtds/podcast-1.0.dtd');
|
10
legacy/application/configs/db-conf.php
Normal file
10
legacy/application/configs/db-conf.php
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
/* This file is only needed during upgrades when we need the database parameters from /etc/airtime/airtime.conf.
|
||||
* The reason we don't just use conf.php is because conf.php may try to load configuration parameters that aren't
|
||||
* yet available because airtime.conf hasn't been updated yet. This situation ends up throwing a lot of errors to stdout.
|
||||
* airtime*/
|
||||
|
||||
require_once("conf.php");
|
||||
|
||||
$CC_CONFIG = Config::getConfig();
|
197
legacy/application/configs/navigation.php
Normal file
197
legacy/application/configs/navigation.php
Normal file
|
@ -0,0 +1,197 @@
|
|||
<?php
|
||||
/**
|
||||
* Navigation container (config/array)
|
||||
*
|
||||
* Each element in the array will be passed to
|
||||
* Zend_Navigation_Page::factory() when constructing
|
||||
* the navigation container below.
|
||||
*
|
||||
* The class field is used to contain the icon rendered
|
||||
* before the nav entry for i18n purposes. When this
|
||||
* gets parsed the language is not yet set and the
|
||||
* strings stay plain en for now. They get retranslated
|
||||
* in the menu.phtml script when they are output.
|
||||
*/
|
||||
$pages = array();
|
||||
// Disable My podcasts
|
||||
// See https://github.com/LibreTime/libretime/issues/1320
|
||||
// $pages[] = array(
|
||||
// 'label' => _('My Podcast'),
|
||||
// 'module' => 'default',
|
||||
// 'controller' => 'podcast',
|
||||
// 'action' => 'station',
|
||||
// 'resource' => 'podcast',
|
||||
// 'class' => '<i class="icon-music icon-white"></i>'
|
||||
// );
|
||||
$pages[] = array(
|
||||
'label' => _('Radio Page'),
|
||||
'uri' => '/',
|
||||
'resource' => '',
|
||||
'class' => '<i class="icon-globe icon-white"></i>',
|
||||
'pages' => array(),
|
||||
'visible' => false
|
||||
);
|
||||
$pages[] = array(
|
||||
'label' => _('Calendar'),
|
||||
'module' => 'default',
|
||||
'controller' => 'schedule',
|
||||
'action' => 'index',
|
||||
'resource' => 'schedule',
|
||||
'class' => '<i class="icon-calendar icon-white"></i>'
|
||||
);
|
||||
$pages[] = array(
|
||||
'label' => _('Widgets'),
|
||||
'module' => 'default',
|
||||
'controller' => 'embeddablewidgets',
|
||||
'action' => 'player',
|
||||
'resource' => 'embeddablewidgets',
|
||||
'class' => '<i class="icon-wrench icon-white"></i>',
|
||||
'title' => 'Widgets',
|
||||
'pages' => array(
|
||||
array(
|
||||
'label' => _('Player'),
|
||||
'module' => 'default',
|
||||
'controller' => 'embeddablewidgets',
|
||||
'action' => 'player',
|
||||
),
|
||||
array(
|
||||
'label' => _('Weekly Schedule'),
|
||||
'module' => 'default',
|
||||
'controller' => 'embeddablewidgets',
|
||||
'action' => 'schedule',
|
||||
)
|
||||
)
|
||||
);
|
||||
$pages[] = array(
|
||||
'label' => _("Settings"),
|
||||
'action' => 'edit-user',
|
||||
'module' => 'default',
|
||||
'controller' => 'user',
|
||||
'class' => '<i class="icon-cog icon-white"></i>',
|
||||
'title' => 'Settings',
|
||||
'pages' => array(
|
||||
array(
|
||||
'label' => _('General'),
|
||||
'module' => 'default',
|
||||
'controller' => 'preference',
|
||||
'resource' => 'preference'
|
||||
),
|
||||
array(
|
||||
'label' => _('My Profile'),
|
||||
'controller' => 'user',
|
||||
'action' => 'edit-user'
|
||||
),
|
||||
array(
|
||||
'label' => _('Users'),
|
||||
'module' => 'default',
|
||||
'controller' => 'user',
|
||||
'action' => 'add-user',
|
||||
'resource' => 'user'
|
||||
),array(
|
||||
'label' => _('Track Types'),
|
||||
'module' => 'default',
|
||||
'controller' => 'tracktype',
|
||||
'action' => 'add-tracktype',
|
||||
'resource' => 'tracktype'
|
||||
),
|
||||
array(
|
||||
'label' => _('Streams'),
|
||||
'module' => 'default',
|
||||
'controller' => 'preference',
|
||||
'action' => 'stream-setting',
|
||||
'resource' => 'preference'
|
||||
),
|
||||
array(
|
||||
'label' => _('Status'),
|
||||
'module' => 'default',
|
||||
'controller' => 'systemstatus',
|
||||
'action' => 'index',
|
||||
'resource' => 'systemstatus'
|
||||
),
|
||||
)
|
||||
);
|
||||
$pages[] = array(
|
||||
'label' => _("Analytics"),
|
||||
'module' => 'default',
|
||||
'controller' => 'playouthistory',
|
||||
'action' => 'index',
|
||||
'resource' => 'playouthistory',
|
||||
'class' => '<i class="icon-signal icon-white"></i>',
|
||||
'title' => 'Analytics',
|
||||
'pages' => array(
|
||||
array(
|
||||
'label' => _('Playout History'),
|
||||
'module' => 'default',
|
||||
'controller' => 'playouthistory',
|
||||
'action' => 'index',
|
||||
'resource' => 'playouthistory'
|
||||
),
|
||||
array(
|
||||
'label' => _('History Templates'),
|
||||
'module' => 'default',
|
||||
'controller' => 'playouthistorytemplate',
|
||||
'action' => 'index',
|
||||
'resource' => 'playouthistorytemplate'
|
||||
),
|
||||
array(
|
||||
'label' => _('Listener Stats'),
|
||||
'module' => 'default',
|
||||
'controller' => 'listenerstat',
|
||||
'action' => 'index',
|
||||
'resource' => 'listenerstat'
|
||||
),
|
||||
array(
|
||||
'label' => _('Show Listener Stats'),
|
||||
'module' => 'default',
|
||||
'controller' => 'listenerstat',
|
||||
'action' => 'show',
|
||||
'resource' => 'showlistenerstat'
|
||||
),
|
||||
|
||||
)
|
||||
);
|
||||
$pages[] = array(
|
||||
'label' => _('Help'),
|
||||
'controller' => 'dashboard',
|
||||
'action' => 'help',
|
||||
'resource' => 'dashboard',
|
||||
'class' => '<i class="icon-question-sign icon-white"></i>',
|
||||
'title' => 'Help',
|
||||
'pages' => array(
|
||||
array(
|
||||
'label' => _('Getting Started'),
|
||||
'module' => 'default',
|
||||
'controller' => 'dashboard',
|
||||
'action' => 'help',
|
||||
'resource' => 'dashboard'
|
||||
),
|
||||
array(
|
||||
'label' => _('User Manual'),
|
||||
'uri' => USER_MANUAL_URL,
|
||||
'target' => "_blank"
|
||||
),
|
||||
array(
|
||||
'label' => _('Get Help Online'),
|
||||
'uri' => LIBRETIME_DISCOURSE_URL,
|
||||
'target' => "_blank"
|
||||
),
|
||||
array(
|
||||
'label' => _('Contribute to LibreTime'),
|
||||
'uri' => LIBRETIME_CONTRIBUTE_URL,
|
||||
'target' => "_blank"
|
||||
),
|
||||
array(
|
||||
'label' => _('What\'s New?'),
|
||||
'uri' => LIBRETIME_WHATS_NEW_URL,
|
||||
'target' => "_blank"
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// Create container from array
|
||||
$container = new Zend_Navigation($pages);
|
||||
$container->id = "nav";
|
||||
|
||||
//store it in the registry:
|
||||
Zend_Registry::set('Zend_Navigation', $container);
|
Loading…
Add table
Add a link
Reference in a new issue