From 59404d7909b21682ec0782778452a8a70e38b25e Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Wed, 18 May 2016 21:43:59 +0200 Subject: Introduce a configuration manager (not plugged yet) --- application/config/ConfigPhp.php | 93 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 application/config/ConfigPhp.php (limited to 'application/config/ConfigPhp.php') diff --git a/application/config/ConfigPhp.php b/application/config/ConfigPhp.php new file mode 100644 index 00000000..311aeb81 --- /dev/null +++ b/application/config/ConfigPhp.php @@ -0,0 +1,93 @@ +getExtension(); + if (! file_exists($filepath) || ! is_readable($filepath)) { + return array(); + } + + include $filepath; + + $out = array(); + foreach (self::$ROOT_KEYS as $key) { + $out[$key] = $GLOBALS[$key]; + } + $out['config'] = $GLOBALS['config']; + $out['plugins'] = !empty($GLOBALS['plugins']) ? $GLOBALS['plugins'] : array(); + return $out; + } + + /** + * @inheritdoc + */ + function write($filepath, $conf) + { + $filepath .= $this->getExtension(); + + $configStr = ' $value) { + $configStr .= '$GLOBALS[\'config\'][\''. $key .'\'] = '.var_export($conf['config'][$key], true).';'. PHP_EOL; + } + + if (isset($conf['plugins'])) { + foreach ($conf['plugins'] as $key => $value) { + $configStr .= '$GLOBALS[\'plugins\'][\''. $key .'\'] = '.var_export($conf['plugins'][$key], true).';'. PHP_EOL; + } + } + + // FIXME! + //$configStr .= 'date_default_timezone_set('.var_export($conf['timezone'], true).');'. PHP_EOL; + + if (!file_put_contents($filepath, $configStr) + || strcmp(file_get_contents($filepath), $configStr) != 0 + ) { + throw new IOException( + $filepath, + 'Shaarli could not create the config file. + Please make sure Shaarli has the right to write in the folder is it installed in.' + ); + } + } + + /** + * @inheritdoc + */ + function getExtension() + { + return '.php'; + } +} -- cgit v1.2.3 From 684e662a58b02bde225e44d3677987b6fc3adf0b Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Wed, 18 May 2016 21:48:24 +0200 Subject: Replace $GLOBALS configuration with the configuration manager in the whole code base --- application/config/ConfigPhp.php | 3 --- 1 file changed, 3 deletions(-) (limited to 'application/config/ConfigPhp.php') diff --git a/application/config/ConfigPhp.php b/application/config/ConfigPhp.php index 311aeb81..19fecf2b 100644 --- a/application/config/ConfigPhp.php +++ b/application/config/ConfigPhp.php @@ -28,7 +28,6 @@ class ConfigPhp implements ConfigIO */ function read($filepath) { - $filepath .= $this->getExtension(); if (! file_exists($filepath) || ! is_readable($filepath)) { return array(); } @@ -49,8 +48,6 @@ class ConfigPhp implements ConfigIO */ function write($filepath, $conf) { - $filepath .= $this->getExtension(); - $configStr = ' Date: Sun, 29 May 2016 14:26:23 +0200 Subject: Set the default timezone in index.php --- application/config/ConfigPhp.php | 3 --- 1 file changed, 3 deletions(-) (limited to 'application/config/ConfigPhp.php') diff --git a/application/config/ConfigPhp.php b/application/config/ConfigPhp.php index 19fecf2b..f99073af 100644 --- a/application/config/ConfigPhp.php +++ b/application/config/ConfigPhp.php @@ -66,9 +66,6 @@ class ConfigPhp implements ConfigIO } } - // FIXME! - //$configStr .= 'date_default_timezone_set('.var_export($conf['timezone'], true).');'. PHP_EOL; - if (!file_put_contents($filepath, $configStr) || strcmp(file_get_contents($filepath), $configStr) != 0 ) { -- cgit v1.2.3 From da10377b3c263d96a46cf9101c202554343d2cd0 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Sun, 29 May 2016 16:10:32 +0200 Subject: Rename configuration keys and fix GLOBALS in templates --- application/config/ConfigPhp.php | 45 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'application/config/ConfigPhp.php') diff --git a/application/config/ConfigPhp.php b/application/config/ConfigPhp.php index f99073af..b122f4f1 100644 --- a/application/config/ConfigPhp.php +++ b/application/config/ConfigPhp.php @@ -23,6 +23,51 @@ class ConfigPhp implements ConfigIO 'privateLinkByDefault', ); + /** + * Map legacy config keys with the new ones. + * If ConfigPhp is used, getting will actually look for . + * The Updater will use this array to transform keys when switching to JSON. + * + * @var array current key => legacy key. + */ + public static $LEGACY_KEYS_MAPPING = array( + 'credentials.login' => 'login', + 'credentials.hash' => 'hash', + 'credentials.salt' => 'salt', + 'path.data_dir' => 'config.DATADIR', + 'path.config' => 'config.CONFIG_FILE', + 'path.datastore' => 'config.DATASTORE', + 'path.updates' => 'config.UPDATES_FILE', + 'path.log' => 'config.LOG_FILE', + 'path.update_check' => 'config.UPDATECHECK_FILENAME', + 'path.raintpl_tpl' => 'config.RAINTPL_TPL', + 'path.raintpl_tmp' => 'config.RAINTPL_TMP', + 'path.thumbnails_cache' => 'config.CACHEDIR', + 'path.page_cache' => 'config.PAGECACHE', + 'path.ban_file' => 'config.IPBANS_FILENAME', + 'security.session_protection_disabled' => 'disablesessionprotection', + 'security.ban_after' => 'config.BAN_AFTER', + 'security.ban_duration' => 'config.BAN_DURATION', + 'general.title' => 'title', + 'general.timezone' => 'timezone', + 'general.header_link' => 'titleLink', + 'general.check_updates' => 'config.ENABLE_UPDATECHECK', + 'general.check_updates_branch' => 'config.UPDATECHECK_BRANCH', + 'general.check_updates_interval' => 'config.UPDATECHECK_INTERVAL', + 'general.default_private_links' => 'privateLinkByDefault', + 'general.rss_permalinks' => 'config.ENABLE_RSS_PERMALINKS', + 'general.links_per_page' => 'config.LINKS_PER_PAGE', + 'general.enable_thumbnails' => 'config.ENABLE_THUMBNAILS', + 'general.enable_localcache' => 'config.ENABLE_LOCALCACHE', + 'general.enabled_plugins' => 'config.ENABLED_PLUGINS', + 'extras.redirector' => 'redirector', + 'extras.redirector_encode_url' => 'config.REDIRECTOR_URLENCODE', + 'extras.show_atom' => 'config.SHOW_ATOM', + 'extras.hide_public_links' => 'config.HIDE_PUBLIC_LINKS', + 'extras.hide_timestamps' => 'config.HIDE_TIMESTAMPS', + 'extras.open_shaarli' => 'config.OPEN_SHAARLI', + ); + /** * @inheritdoc */ -- cgit v1.2.3 From 894a3c4bf38d8dcadb6941049b9167e5101805bd Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Sat, 11 Jun 2016 09:08:02 +0200 Subject: Rename configuration key for better sections --- application/config/ConfigPhp.php | 48 ++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'application/config/ConfigPhp.php') diff --git a/application/config/ConfigPhp.php b/application/config/ConfigPhp.php index b122f4f1..27187b66 100644 --- a/application/config/ConfigPhp.php +++ b/application/config/ConfigPhp.php @@ -34,38 +34,38 @@ class ConfigPhp implements ConfigIO 'credentials.login' => 'login', 'credentials.hash' => 'hash', 'credentials.salt' => 'salt', - 'path.data_dir' => 'config.DATADIR', - 'path.config' => 'config.CONFIG_FILE', - 'path.datastore' => 'config.DATASTORE', - 'path.updates' => 'config.UPDATES_FILE', - 'path.log' => 'config.LOG_FILE', - 'path.update_check' => 'config.UPDATECHECK_FILENAME', - 'path.raintpl_tpl' => 'config.RAINTPL_TPL', - 'path.raintpl_tmp' => 'config.RAINTPL_TMP', - 'path.thumbnails_cache' => 'config.CACHEDIR', - 'path.page_cache' => 'config.PAGECACHE', - 'path.ban_file' => 'config.IPBANS_FILENAME', + 'resource.data_dir' => 'config.DATADIR', + 'resource.config' => 'config.CONFIG_FILE', + 'resource.datastore' => 'config.DATASTORE', + 'resource.updates' => 'config.UPDATES_FILE', + 'resource.log' => 'config.LOG_FILE', + 'resource.update_check' => 'config.UPDATECHECK_FILENAME', + 'resource.raintpl_tpl' => 'config.RAINTPL_TPL', + 'resource.raintpl_tmp' => 'config.RAINTPL_TMP', + 'resource.thumbnails_cache' => 'config.CACHEDIR', + 'resource.page_cache' => 'config.PAGECACHE', + 'resource.ban_file' => 'config.IPBANS_FILENAME', 'security.session_protection_disabled' => 'disablesessionprotection', 'security.ban_after' => 'config.BAN_AFTER', 'security.ban_duration' => 'config.BAN_DURATION', 'general.title' => 'title', 'general.timezone' => 'timezone', 'general.header_link' => 'titleLink', - 'general.check_updates' => 'config.ENABLE_UPDATECHECK', - 'general.check_updates_branch' => 'config.UPDATECHECK_BRANCH', - 'general.check_updates_interval' => 'config.UPDATECHECK_INTERVAL', - 'general.default_private_links' => 'privateLinkByDefault', - 'general.rss_permalinks' => 'config.ENABLE_RSS_PERMALINKS', + 'updates.check_updates' => 'config.ENABLE_UPDATECHECK', + 'updates.check_updates_branch' => 'config.UPDATECHECK_BRANCH', + 'updates.check_updates_interval' => 'config.UPDATECHECK_INTERVAL', + 'privacy.default_private_links' => 'privateLinkByDefault', + 'feed.rss_permalinks' => 'config.ENABLE_RSS_PERMALINKS', 'general.links_per_page' => 'config.LINKS_PER_PAGE', - 'general.enable_thumbnails' => 'config.ENABLE_THUMBNAILS', - 'general.enable_localcache' => 'config.ENABLE_LOCALCACHE', + 'thumbnail.enable_thumbnails' => 'config.ENABLE_THUMBNAILS', + 'thumbnail.enable_localcache' => 'config.ENABLE_LOCALCACHE', 'general.enabled_plugins' => 'config.ENABLED_PLUGINS', - 'extras.redirector' => 'redirector', - 'extras.redirector_encode_url' => 'config.REDIRECTOR_URLENCODE', - 'extras.show_atom' => 'config.SHOW_ATOM', - 'extras.hide_public_links' => 'config.HIDE_PUBLIC_LINKS', - 'extras.hide_timestamps' => 'config.HIDE_TIMESTAMPS', - 'extras.open_shaarli' => 'config.OPEN_SHAARLI', + 'redirector.url' => 'redirector', + 'redirector.encode_url' => 'config.REDIRECTOR_URLENCODE', + 'feed.show_atom' => 'config.SHOW_ATOM', + 'privacy.hide_public_links' => 'config.HIDE_PUBLIC_LINKS', + 'privacy.hide_timestamps' => 'config.HIDE_TIMESTAMPS', + 'security.open_shaarli' => 'config.OPEN_SHAARLI', ); /** -- cgit v1.2.3