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'; } }