X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2Fconfig%2FConfigPhp.php;h=9ed5d31fec0ab36e09a490c77c52952c1eb74db8;hb=f3d2f257946e2a3c8791c1ba99b379acbe934fec;hp=311aeb81faee9b862525fd2f967071c2a6c880e2;hpb=59404d7909b21682ec0782778452a8a70e38b25e;p=github%2Fshaarli%2FShaarli.git diff --git a/application/config/ConfigPhp.php b/application/config/ConfigPhp.php index 311aeb81..9ed5d31f 100644 --- a/application/config/ConfigPhp.php +++ b/application/config/ConfigPhp.php @@ -1,4 +1,5 @@ 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', + '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.theme' => 'config.theme', + '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', + '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', + 'thumbnail.enable_thumbnails' => 'config.ENABLE_THUMBNAILS', + 'thumbnail.enable_localcache' => 'config.ENABLE_LOCALCACHE', + 'general.enabled_plugins' => 'config.ENABLED_PLUGINS', + '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', + ); + /** * @inheritdoc */ - function read($filepath) + public function read($filepath) { - $filepath .= $this->getExtension(); if (! file_exists($filepath) || ! is_readable($filepath)) { return array(); } @@ -37,48 +83,51 @@ class ConfigPhp implements ConfigIO $out = array(); foreach (self::$ROOT_KEYS as $key) { - $out[$key] = $GLOBALS[$key]; + $out[$key] = isset($GLOBALS[$key]) ? $GLOBALS[$key] : ''; } - $out['config'] = $GLOBALS['config']; - $out['plugins'] = !empty($GLOBALS['plugins']) ? $GLOBALS['plugins'] : array(); + $out['config'] = isset($GLOBALS['config']) ? $GLOBALS['config'] : []; + $out['plugins'] = isset($GLOBALS['plugins']) ? $GLOBALS['plugins'] : []; return $out; } /** * @inheritdoc */ - function write($filepath, $conf) + public function write($filepath, $conf) { - $filepath .= $this->getExtension(); - $configStr = ' $value) { - $configStr .= '$GLOBALS[\'config\'][\''. $key .'\'] = '.var_export($conf['config'][$key], true).';'. PHP_EOL; + $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; + $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( + throw new \Shaarli\Exceptions\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.' + t('Shaarli could not create the config file. '. + 'Please make sure Shaarli has the right to write in the folder is it installed in.') ); } } @@ -86,7 +135,7 @@ class ConfigPhp implements ConfigIO /** * @inheritdoc */ - function getExtension() + public function getExtension() { return '.php'; }