CC-1942: Add ability to set timezone in preferences
-Can change the timezone for PHP. Need to change for python as well.
This commit is contained in:
parent
13285fdd63
commit
84ec62eeca
9 changed files with 144 additions and 21 deletions
|
@ -6,10 +6,6 @@ require_once __DIR__."/configs/ACL.php";
|
||||||
require_once 'propel/runtime/lib/Propel.php';
|
require_once 'propel/runtime/lib/Propel.php';
|
||||||
Propel::init(__DIR__."/configs/airtime-conf.php");
|
Propel::init(__DIR__."/configs/airtime-conf.php");
|
||||||
|
|
||||||
//DateTime in PHP 5.3.0+ need a default timezone set.
|
|
||||||
$tz = ini_get('date.timezone') ? ini_get('date.timezone') : 'UTC';
|
|
||||||
date_default_timezone_set($tz);
|
|
||||||
|
|
||||||
require_once __DIR__."/logging/Logging.php";
|
require_once __DIR__."/logging/Logging.php";
|
||||||
require_once __DIR__."/configs/constants.php";
|
require_once __DIR__."/configs/constants.php";
|
||||||
require_once __DIR__."/configs/conf.php";
|
require_once __DIR__."/configs/conf.php";
|
||||||
|
@ -26,22 +22,6 @@ require_once 'RabbitMq.php';
|
||||||
require_once 'DateHelper.php';
|
require_once 'DateHelper.php';
|
||||||
require_once __DIR__.'/controllers/plugins/RabbitMqPlugin.php';
|
require_once __DIR__.'/controllers/plugins/RabbitMqPlugin.php';
|
||||||
|
|
||||||
global $CC_CONFIG, $CC_DBC;
|
|
||||||
$dsn = $CC_CONFIG['dsn'];
|
|
||||||
|
|
||||||
$CC_DBC = DB::connect($dsn, FALSE);
|
|
||||||
if (PEAR::isError($CC_DBC)) {
|
|
||||||
echo "ERROR: ".$CC_DBC->getMessage()." ".$CC_DBC->getUserInfo()."\n";
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
|
||||||
Logging::setLogPath('/var/log/airtime/zendphp.log');
|
|
||||||
|
|
||||||
Zend_Validate::setDefaultNamespaces("Zend");
|
|
||||||
|
|
||||||
$front = Zend_Controller_Front::getInstance();
|
|
||||||
$front->registerPlugin(new RabbitMqPlugin());
|
|
||||||
|
|
||||||
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
||||||
{
|
{
|
||||||
protected function _initDoctype()
|
protected function _initDoctype()
|
||||||
|
@ -90,5 +70,28 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
||||||
$view->headTitle(Application_Model_Preference::GetHeadTitle());
|
$view->headTitle(Application_Model_Preference::GetHeadTitle());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function _initDbConnection(){
|
||||||
|
global $CC_CONFIG, $CC_DBC;
|
||||||
|
$dsn = $CC_CONFIG['dsn'];
|
||||||
|
|
||||||
|
$CC_DBC = DB::connect($dsn, FALSE);
|
||||||
|
if (PEAR::isError($CC_DBC)) {
|
||||||
|
echo "ERROR: ".$CC_DBC->getMessage()." ".$CC_DBC->getUserInfo()."\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||||
|
|
||||||
|
//DateTime in PHP 5.3.0+ need a default timezone set.
|
||||||
|
date_default_timezone_set(Application_Model_Preference::GetTimezone());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initMisc(){
|
||||||
|
Logging::setLogPath('/var/log/airtime/zendphp.log');
|
||||||
|
|
||||||
|
Zend_Validate::setDefaultNamespaces("Zend");
|
||||||
|
|
||||||
|
$front = Zend_Controller_Front::getInstance();
|
||||||
|
$front->registerPlugin(new RabbitMqPlugin());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ class PreferenceController extends Zend_Controller_Action
|
||||||
Application_Model_Preference::SetDefaultFade($values["preferences_general"]["stationDefaultFade"]);
|
Application_Model_Preference::SetDefaultFade($values["preferences_general"]["stationDefaultFade"]);
|
||||||
Application_Model_Preference::SetStreamLabelFormat($values["preferences_general"]["streamFormat"]);
|
Application_Model_Preference::SetStreamLabelFormat($values["preferences_general"]["streamFormat"]);
|
||||||
Application_Model_Preference::SetAllow3rdPartyApi($values["preferences_general"]["thirdPartyApi"]);
|
Application_Model_Preference::SetAllow3rdPartyApi($values["preferences_general"]["thirdPartyApi"]);
|
||||||
|
Application_Model_Preference::SetTimezone($values["preferences_general"]["timezone"]);
|
||||||
|
|
||||||
Application_Model_Preference::SetDoSoundCloudUpload($values["preferences_soundcloud"]["UseSoundCloud"]);
|
Application_Model_Preference::SetDoSoundCloudUpload($values["preferences_soundcloud"]["UseSoundCloud"]);
|
||||||
Application_Model_Preference::SetSoundCloudUser($values["preferences_soundcloud"]["SoundCloudUser"]);
|
Application_Model_Preference::SetSoundCloudUser($values["preferences_soundcloud"]["SoundCloudUser"]);
|
||||||
|
|
|
@ -59,6 +59,37 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm
|
||||||
$third_party_api->setDecorators(array('ViewHelper'));
|
$third_party_api->setDecorators(array('ViewHelper'));
|
||||||
$this->addElement($third_party_api);
|
$this->addElement($third_party_api);
|
||||||
|
|
||||||
|
/* Form Element for setting the Timezone */
|
||||||
|
$timezone = new Zend_Form_Element_Select("timezone");
|
||||||
|
$timezone->setLabel("Timezone");
|
||||||
|
$timezone->setMultiOptions($this->getTimezones());
|
||||||
|
$timezone->setValue(Application_Model_Preference::GetTimezone());
|
||||||
|
$timezone->setDecorators(array('ViewHelper'));
|
||||||
|
$this->addElement($timezone);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getTimezones(){
|
||||||
|
$regions = array(
|
||||||
|
'Africa' => DateTimeZone::AFRICA,
|
||||||
|
'America' => DateTimeZone::AMERICA,
|
||||||
|
'Antarctica' => DateTimeZone::ANTARCTICA,
|
||||||
|
'Aisa' => DateTimeZone::ASIA,
|
||||||
|
'Atlantic' => DateTimeZone::ATLANTIC,
|
||||||
|
'Europe' => DateTimeZone::EUROPE,
|
||||||
|
'Indian' => DateTimeZone::INDIAN,
|
||||||
|
'Pacific' => DateTimeZone::PACIFIC
|
||||||
|
);
|
||||||
|
|
||||||
|
$tzlist = array();
|
||||||
|
|
||||||
|
foreach ($regions as $name => $mask){
|
||||||
|
$ids = DateTimeZone::listIdentifiers($mask);
|
||||||
|
foreach ($ids as $id){
|
||||||
|
$tzlist[$id] = str_replace("_", " ", $id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $tzlist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -261,6 +261,14 @@ class Application_Model_Preference
|
||||||
return Application_Model_Preference::GetValue("description");
|
return Application_Model_Preference::GetValue("description");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function SetTimezone($timezone){
|
||||||
|
Application_Model_Preference::SetValue("timezone", $timezone);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function GetTimezone(){
|
||||||
|
return Application_Model_Preference::GetValue("timezone");
|
||||||
|
}
|
||||||
|
|
||||||
public static function SetStationLogo($imagePath){
|
public static function SetStationLogo($imagePath){
|
||||||
if(!empty($imagePath)){
|
if(!empty($imagePath)){
|
||||||
$image = @file_get_contents($imagePath);
|
$image = @file_get_contents($imagePath);
|
||||||
|
|
|
@ -75,5 +75,20 @@
|
||||||
</ul>
|
</ul>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</dd>
|
</dd>
|
||||||
|
<dt id="timezone-label" class="block-display">
|
||||||
|
<label class="required" for="timezone"><?php echo $this->element->getElement('timezone')->getLabel() ?>
|
||||||
|
<span class="info-text-small">(Required)</span> :
|
||||||
|
</label>
|
||||||
|
</dt>
|
||||||
|
<dd id="timezone-element" class="block-display">
|
||||||
|
<?php echo $this->element->getElement('timezone') ?>
|
||||||
|
<?php if($this->element->getElement('timezone')->hasErrors()) : ?>
|
||||||
|
<ul class='errors'>
|
||||||
|
<?php foreach($this->element->getElement('timezone')->getMessages() as $error): ?>
|
||||||
|
<li><?php echo $error; ?></li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
<?php endif; ?>
|
||||||
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
|
@ -2,7 +2,6 @@ php_value post_max_size 500M
|
||||||
php_value upload_max_filesize 500M
|
php_value upload_max_filesize 500M
|
||||||
php_value request_order "GPC"
|
php_value request_order "GPC"
|
||||||
php_value session.gc_probability 0
|
php_value session.gc_probability 0
|
||||||
php_value date.timezone "America/Toronto"
|
|
||||||
php_value phar.readonly Off
|
php_value phar.readonly Off
|
||||||
|
|
||||||
RewriteEngine On
|
RewriteEngine On
|
||||||
|
|
|
@ -294,6 +294,18 @@ class AirtimeInstall
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function SetDefaultTimezone()
|
||||||
|
{
|
||||||
|
global $CC_DBC;
|
||||||
|
|
||||||
|
$sql = "INSERT INTO cc_pref (keystr, valstr) VALUES ('timezone', 'America/Toronto')";
|
||||||
|
$result = $CC_DBC->query($sql);
|
||||||
|
if (PEAR::isError($result)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public static function SetImportTimestamp()
|
public static function SetImportTimestamp()
|
||||||
{
|
{
|
||||||
global $CC_DBC;
|
global $CC_DBC;
|
||||||
|
|
|
@ -50,6 +50,7 @@ AirtimeInstall::SetAirtimeVersion(AIRTIME_VERSION);
|
||||||
// set up some keys in DB
|
// set up some keys in DB
|
||||||
AirtimeInstall::SetUniqueId();
|
AirtimeInstall::SetUniqueId();
|
||||||
AirtimeInstall::SetImportTimestamp();
|
AirtimeInstall::SetImportTimestamp();
|
||||||
|
AirtimeInstall::SetDefaultTimezone();
|
||||||
|
|
||||||
if (AirtimeInstall::$databaseTablesCreated) {
|
if (AirtimeInstall::$databaseTablesCreated) {
|
||||||
|
|
||||||
|
|
53
install_minimal/upgrades/airtime-2.0.0/airtime-upgrade.php
Normal file
53
install_minimal/upgrades/airtime-2.0.0/airtime-upgrade.php
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Airtime
|
||||||
|
* @subpackage StorageServer
|
||||||
|
* @copyright 2010 Sourcefabric O.P.S.
|
||||||
|
* @license http://www.gnu.org/licenses/gpl.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
set_include_path(__DIR__.'/../../../airtime_mvc/library' . PATH_SEPARATOR . get_include_path());
|
||||||
|
set_include_path(__DIR__.'/../../../airtime_mvc/library/pear' . PATH_SEPARATOR . get_include_path());
|
||||||
|
set_include_path(__DIR__.'/../../../airtime_mvc/application/models' . PATH_SEPARATOR . get_include_path());
|
||||||
|
require_once 'conf.php';
|
||||||
|
require_once 'DB.php';
|
||||||
|
|
||||||
|
require_once 'propel/runtime/lib/Propel.php';
|
||||||
|
Propel::init(__DIR__."/../../../airtime_mvc/application/configs/airtime-conf.php");
|
||||||
|
|
||||||
|
class AirtimeInstall{
|
||||||
|
|
||||||
|
public static function SetDefaultTimezone()
|
||||||
|
{
|
||||||
|
global $CC_DBC;
|
||||||
|
|
||||||
|
$sql = "INSERT INTO cc_pref (keystr, valstr) VALUES ('timezone', 'America/Toronto')";
|
||||||
|
$result = $CC_DBC->query($sql);
|
||||||
|
if (PEAR::isError($result)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Airtime200Upgrade{
|
||||||
|
|
||||||
|
public static function connectToDatabase(){
|
||||||
|
global $CC_DBC, $CC_CONFIG;
|
||||||
|
|
||||||
|
$values = parse_ini_file('/etc/airtime/airtime.conf', true);
|
||||||
|
|
||||||
|
// 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_DBC = DB::connect($CC_CONFIG['dsn'], FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Airtime200Upgrade::connectToDatabase();
|
||||||
|
AirtimeInstall::SetDefaultTimezone();
|
Loading…
Add table
Add a link
Reference in a new issue