X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2FUpdater.php;h=40a15906b6bac9b53fb54faff0232b6514dd76ec;hb=dc37a482edd7d164de4a0f5458de4c7f65ebc763;hp=27cb2f0a43e29b2e4879d91cac672b4a16e3159f;hpb=236239be752a7bb24547237b5751ac4fcbc0e549;p=github%2Fshaarli%2FShaarli.git diff --git a/application/Updater.php b/application/Updater.php index 27cb2f0a..40a15906 100644 --- a/application/Updater.php +++ b/application/Updater.php @@ -1,6 +1,7 @@ conf->get('resource.theme') !== 'default') { + if ($this->conf->exists('security.markdown_escape')) { return true; } - $this->conf->set('resource.theme', 'vintage'); + + if (in_array('markdown', $this->conf->get('general.enabled_plugins'))) { + $this->conf->set('security.markdown_escape', false); + } else { + $this->conf->set('security.markdown_escape', true); + } $this->conf->write($this->isLoggedIn); return true; } /** - * * `markdown_escape` is a new setting, set to true as default. + * Add 'http://' to Piwik URL the setting is set. * - * If the markdown plugin was already enabled, escaping is disabled to avoid - * breaking existing entries. + * @return bool true if the update is successful, false otherwise. */ - public function updateMethodEscapeMarkdown() + public function updateMethodPiwikUrl() { - if ($this->conf->exists('security.markdown_escape')) { + if (! $this->conf->exists('plugins.PIWIK_URL') || startsWith($this->conf->get('plugins.PIWIK_URL'), 'http')) { return true; } - if (in_array('markdown', $this->conf->get('general.enabled_plugins'))) { - $this->conf->set('security.markdown_escape', false); + $this->conf->set('plugins.PIWIK_URL', 'http://'. $this->conf->get('plugins.PIWIK_URL')); + $this->conf->write($this->isLoggedIn); + + return true; + } + + /** + * Use ATOM feed as default. + */ + public function updateMethodAtomDefault() + { + if (!$this->conf->exists('feed.show_atom') || $this->conf->get('feed.show_atom') === true) { + return true; + } + + $this->conf->set('feed.show_atom', true); + $this->conf->write($this->isLoggedIn); + + return true; + } + + /** + * Update updates.check_updates_branch setting. + * + * If the current major version digit matches the latest branch + * major version digit, we set the branch to `latest`, + * otherwise we'll check updates on the `stable` branch. + * + * No update required for the dev version. + * + * Note: due to hardcoded URL and lack of dependency injection, this is not unit testable. + * + * FIXME! This needs to be removed when we switch to first digit major version + * instead of the second one since the versionning process will change. + */ + public function updateMethodCheckUpdateRemoteBranch() + { + if (shaarli_version === 'dev' || $this->conf->get('updates.check_updates_branch') === 'latest') { + return true; + } + + // Get latest branch major version digit + $latestVersion = ApplicationUtils::getLatestGitVersionCode( + 'https://raw.githubusercontent.com/shaarli/Shaarli/latest/shaarli_version.php', + 5 + ); + if (preg_match('/(\d+)\.\d+$/', $latestVersion, $matches) === false) { + return false; + } + $latestMajor = $matches[1]; + + // Get current major version digit + preg_match('/(\d+)\.\d+$/', shaarli_version, $matches); + $currentMajor = $matches[1]; + + if ($currentMajor === $latestMajor) { + $branch = 'latest'; } else { - $this->conf->set('security.markdown_escape', true); + $branch = 'stable'; } + $this->conf->set('updates.check_updates_branch', $branch); $this->conf->write($this->isLoggedIn); + return true; + } + /** + * Reset history store file due to date format change. + */ + public function updateMethodResetHistoryFile() + { + if (is_file($this->conf->get('resource.history'))) { + unlink($this->conf->get('resource.history')); + } return true; } }