From 59a1215c8739cd46c64d85dd2341e047aef9c5ef Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sun, 3 Jul 2022 01:03:00 +0900 Subject: [PATCH] Fix #1934 add 'default' option to domain timezone --- classes/context/Context.class.php | 3 ++- modules/admin/admin.admin.controller.php | 2 +- modules/admin/tpl/config_domains_edit.html | 1 + modules/module/module.class.php | 17 ++++++++++------- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index dc3355d0e..8c21d1dad 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -260,8 +260,9 @@ class Context } } $site_module_info = ModuleModel::getDefaultMid() ?: new stdClass; + $site_timezone = (isset($site_module_info->settings->timezone) && $site_module_info->settings->timezone !== 'default') ? $site_module_info->settings->timezone : null; self::set('site_module_info', $site_module_info); - self::set('_default_timezone', ($site_module_info->settings && $site_module_info->settings->timezone) ? $site_module_info->settings->timezone : null); + self::set('_default_timezone', $site_timezone); self::set('_default_url', self::$_instance->db_info->default_url = self::getDefaultUrl($site_module_info, RX_SSL)); self::set('_http_port', self::$_instance->db_info->http_port = $site_module_info->http_port ?: null); self::set('_https_port', self::$_instance->db_info->https_port = $site_module_info->https_port ?: null); diff --git a/modules/admin/admin.admin.controller.php b/modules/admin/admin.admin.controller.php index 2efbc369b..f255bb1b0 100644 --- a/modules/admin/admin.admin.controller.php +++ b/modules/admin/admin.admin.controller.php @@ -1154,7 +1154,7 @@ class adminAdminController extends admin // Validate the default time zone. $timezone_list = Rhymix\Framework\DateTime::getTimezoneList(); - if (!isset($timezone_list[$vars->default_timezone])) + if ($vars->default_timezone !== 'default' && !isset($timezone_list[$vars->default_timezone])) { throw new Rhymix\Framework\Exception('msg_invalid_timezone'); } diff --git a/modules/admin/tpl/config_domains_edit.html b/modules/admin/tpl/config_domains_edit.html index 76a0930fb..d3d8d66db 100644 --- a/modules/admin/tpl/config_domains_edit.html +++ b/modules/admin/tpl/config_domains_edit.html @@ -90,6 +90,7 @@
diff --git a/modules/module/module.class.php b/modules/module/module.class.php index 91a442089..2b533b073 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -33,7 +33,10 @@ class module extends ModuleObject $domain->https_port = RX_SSL ? $current_port : null; $domain->security = config('url.ssl') ?: 'none'; $domain->description = ''; - $domain->settings = json_encode(array('language' => null, 'timezone' => null)); + $domain->settings = json_encode(array( + 'language' => 'default', + 'timezone' => 'default', + )); $output = executeQuery('module.insertDomain', $domain); if (!$output->toBool()) { @@ -288,8 +291,8 @@ class module extends ModuleObject $domain->settings = json_encode(array( 'title' => $config->siteTitle, 'subtitle' => $config->siteSubtitle, - 'language' => $site_info->default_language, - 'timezone' => config('locale.default_timezone'), + 'language' => 'default', + 'timezone' => 'default', 'html_footer' => $config->htmlFooter, )); $domain->regdate = $site_info->regdate; @@ -318,8 +321,8 @@ class module extends ModuleObject $domain->settings = json_encode(array( 'title' => $config->siteTitle, 'subtitle' => $config->siteSubtitle, - 'language' => $site_info->default_language, - 'timezone' => config('locale.default_timezone'), + 'language' => 'default', + 'timezone' => 'default', 'html_footer' => $config->htmlFooter, )); $domains[$domain->domain] = $domain; @@ -353,8 +356,8 @@ class module extends ModuleObject $domain->settings = json_encode(array( 'title' => $config->siteTitle, 'subtitle' => $config->siteSubtitle, - 'language' => $site_info->default_language, - 'timezone' => config('locale.default_timezone'), + 'language' => 'default', + 'timezone' => 'default', 'html_footer' => $config->htmlFooter, )); $domain->regdate = $site_info->regdate;