diff options
author | mattab <matthieu.aubry@gmail.com> | 2013-03-28 03:42:39 +0400 |
---|---|---|
committer | mattab <matthieu.aubry@gmail.com> | 2013-03-28 03:42:40 +0400 |
commit | ae4b03163792f0b6e933933e5d37df87dc3fd566 (patch) | |
tree | d1d7510a9728f587d3d63ebd03e4ecf3d904838b /plugins/CoreUpdater | |
parent | 158c2150f5f2e13ece459b8d131244c11b763997 (diff) |
Mass conversion of all files to the newly agreed coding standard: PSR 1/2
Converting Piwik core source files, PHP, JS, TPL, CSS
More info: http://piwik.org/participate/coding-standards/
Diffstat (limited to 'plugins/CoreUpdater')
-rw-r--r-- | plugins/CoreUpdater/Controller.php | 694 | ||||
-rw-r--r-- | plugins/CoreUpdater/CoreUpdater.php | 132 | ||||
-rw-r--r-- | plugins/CoreUpdater/templates/cli_update_database_done.tpl | 80 | ||||
-rw-r--r-- | plugins/CoreUpdater/templates/cli_update_welcome.tpl | 44 | ||||
-rw-r--r-- | plugins/CoreUpdater/templates/header.tpl | 68 | ||||
-rw-r--r-- | plugins/CoreUpdater/templates/update_database_done.tpl | 123 | ||||
-rw-r--r-- | plugins/CoreUpdater/templates/update_new_version_available.tpl | 29 | ||||
-rw-r--r-- | plugins/CoreUpdater/templates/update_one_click_results.tpl | 19 | ||||
-rw-r--r-- | plugins/CoreUpdater/templates/update_welcome.tpl | 208 |
9 files changed, 693 insertions, 704 deletions
diff --git a/plugins/CoreUpdater/Controller.php b/plugins/CoreUpdater/Controller.php index b8830a8711..8e20f9c82a 100644 --- a/plugins/CoreUpdater/Controller.php +++ b/plugins/CoreUpdater/Controller.php @@ -15,368 +15,336 @@ */ class Piwik_CoreUpdater_Controller extends Piwik_Controller { - const CONFIG_FILE_BACKUP = '/config/global.ini.auto-backup-before-update.php'; - const PATH_TO_EXTRACT_LATEST_VERSION = '/tmp/latest/'; - - private $coreError = false; - private $warningMessages = array(); - private $errorMessages = array(); - private $deactivatedPlugins = array(); - - static protected function getLatestZipUrl($newVersion) - { - if(@Piwik_Config::getInstance()->Debug['allow_upgrades_to_beta']) - { - return 'http://builds.piwik.org/piwik-'.$newVersion.'.zip'; - } - return Piwik_Config::getInstance()->General['latest_version_url']; - } - public function newVersionAvailable() - { - Piwik::checkUserIsSuperUser(); - - $newVersion = $this->checkNewVersionIsAvailableOrDie(); - - $view = Piwik_View::factory('update_new_version_available'); - $view->piwik_version = Piwik_Version::VERSION; - $view->piwik_new_version = $newVersion; - $view->piwik_latest_version_url = self::getLatestZipUrl($newVersion); - $view->can_auto_update = Piwik::canAutoUpdate(); - $view->makeWritableCommands = Piwik::getAutoUpdateMakeWritableMessage(); - echo $view->render(); - } - - public function oneClickUpdate() - { - Piwik::checkUserIsSuperUser(); - $this->newVersion = $this->checkNewVersionIsAvailableOrDie(); - - Piwik::setMaxExecutionTime(0); - - $url = self::getLatestZipUrl($this->newVersion); - $steps = array( - array('oneClick_Download', Piwik_Translate('CoreUpdater_DownloadingUpdateFromX', $url)), - array('oneClick_Unpack', Piwik_Translate('CoreUpdater_UnpackingTheUpdate')), - array('oneClick_Verify', Piwik_Translate('CoreUpdater_VerifyingUnpackedFiles')), - array('oneClick_CreateConfigFileBackup', Piwik_Translate('CoreUpdater_CreatingBackupOfConfigurationFile', self::CONFIG_FILE_BACKUP)), - array('oneClick_Copy', Piwik_Translate('CoreUpdater_InstallingTheLatestVersion')), - array('oneClick_Finished', Piwik_Translate('CoreUpdater_PiwikUpdatedSuccessfully')), - ); - - $errorMessage = false; - $messages = array(); - foreach($steps as $step) { - try { - $method = $step[0]; - $message = $step[1]; - $this->$method(); - $messages[] = $message; - } catch(Exception $e) { - $errorMessage = $e->getMessage(); - break; - } - } - - // this is a magic template to trigger the Piwik_View_Update - $view = Piwik_View::factory(Piwik_View::COREUPDATER_ONE_CLICK_DONE); - $view->coreError = $errorMessage; - $view->feedbackMessages = $messages; - echo $view->render(); - } - - public function oneClickResults() - { - Piwik_API_Request::reloadAuthUsingTokenAuth($_POST); - Piwik::checkUserIsSuperUser(); - - $view = Piwik_View::factory('update_one_click_results'); - $view->coreError = Piwik_Common::getRequestVar('error', '', 'string', $_POST); - $view->feedbackMessages = safe_unserialize(Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('messages', '', 'string', $_POST))); - echo $view->render(); - } - - private function checkNewVersionIsAvailableOrDie() - { - $newVersion = Piwik_UpdateCheck::isNewestVersionAvailable(); - if(!$newVersion) - { - throw new Exception(Piwik_TranslateException('CoreUpdater_ExceptionAlreadyLatestVersion', Piwik_Version::VERSION)); - } - return $newVersion; - } - - private function oneClick_Download() - { - $this->pathPiwikZip = PIWIK_USER_PATH . self::PATH_TO_EXTRACT_LATEST_VERSION . 'latest.zip'; - Piwik::checkDirectoriesWritableOrDie( array(self::PATH_TO_EXTRACT_LATEST_VERSION) ); - - // we catch exceptions in the caller (i.e., oneClickUpdate) - $url = self::getLatestZipUrl($this->newVersion) . '?cb=' . $this->newVersion; - $fetched = Piwik_Http::fetchRemoteFile($url, $this->pathPiwikZip); - } - - private function oneClick_Unpack() - { - $pathExtracted = PIWIK_USER_PATH . self::PATH_TO_EXTRACT_LATEST_VERSION; - $this->pathRootExtractedPiwik = $pathExtracted . 'piwik'; - - if(file_exists($this->pathRootExtractedPiwik)) - { - Piwik::unlinkRecursive($this->pathRootExtractedPiwik, true); - } - - $archive = Piwik_Unzip::factory('PclZip', $this->pathPiwikZip); - - if ( 0 == ($archive_files = $archive->extract($pathExtracted) ) ) - { - throw new Exception(Piwik_TranslateException('CoreUpdater_ExceptionArchiveIncompatible', $archive->errorInfo())); - } - - if ( 0 == count($archive_files) ) - { - throw new Exception(Piwik_TranslateException('CoreUpdater_ExceptionArchiveEmpty')); - } - unlink($this->pathPiwikZip); - } - - private function oneClick_Verify() - { - $someExpectedFiles = array( - '/config/global.ini.php', - '/index.php', - '/core/Piwik.php', - '/piwik.php', - '/plugins/API/API.php' - ); - foreach($someExpectedFiles as $file) - { - if(!is_file($this->pathRootExtractedPiwik . $file)) - { - throw new Exception(Piwik_TranslateException('CoreUpdater_ExceptionArchiveIncomplete', $file)); - } - } - } - - private function oneClick_CreateConfigFileBackup() - { - $configFileBefore = PIWIK_USER_PATH . '/config/global.ini.php'; - $configFileAfter = PIWIK_USER_PATH . self::CONFIG_FILE_BACKUP; - Piwik::copy($configFileBefore, $configFileAfter); - } - - private function oneClick_Copy() - { - /* - * Make sure the execute bit is set for this shell script - */ - if(!Piwik_ArchiveProcessing::isBrowserTriggerArchivingEnabled()) - { - @chmod($this->pathRootExtractedPiwik . '/misc/cron/archive.sh', 0755); - } - - /* - * Copy all files to PIWIK_INCLUDE_PATH. - * These files are accessed through the dispatcher. - */ - Piwik::copyRecursive($this->pathRootExtractedPiwik, PIWIK_INCLUDE_PATH); - - /* - * These files are visible in the web root and are generally - * served directly by the web server. May be shared. - */ - if(PIWIK_INCLUDE_PATH !== PIWIK_DOCUMENT_ROOT) - { - /* - * Copy PHP files that expect to be in the document root - */ - $specialCases = array( - '/index.php', - '/piwik.php', - '/js/index.php', - ); - - foreach($specialCases as $file) - { - Piwik::copy($this->pathRootExtractedPiwik . $file, PIWIK_DOCUMENT_ROOT . $file); - } - - /* - * Copy the non-PHP files (e.g., images, css, javascript) - */ - Piwik::copyRecursive($this->pathRootExtractedPiwik, PIWIK_DOCUMENT_ROOT, true); - } - - /* - * Config files may be user (account) specific - */ - if(PIWIK_INCLUDE_PATH !== PIWIK_USER_PATH) - { - Piwik::copyRecursive($this->pathRootExtractedPiwik . '/config', PIWIK_USER_PATH . '/config'); - } - - Piwik::unlinkRecursive($this->pathRootExtractedPiwik, true); - - if(function_exists('apc_clear_cache')) - { - apc_clear_cache(); // clear the system (aka 'opcode') cache - } - } - - private function oneClick_Finished() - { - } - - public function index() - { - $language = Piwik_Common::getRequestVar('language', ''); - if(!empty($language)) - { - Piwik_LanguagesManager::setLanguageForSession($language); - } - $this->runUpdaterAndExit(); - } - - protected function runUpdaterAndExit() - { - $updater = new Piwik_Updater(); + const CONFIG_FILE_BACKUP = '/config/global.ini.auto-backup-before-update.php'; + const PATH_TO_EXTRACT_LATEST_VERSION = '/tmp/latest/'; + + private $coreError = false; + private $warningMessages = array(); + private $errorMessages = array(); + private $deactivatedPlugins = array(); + + static protected function getLatestZipUrl($newVersion) + { + if (@Piwik_Config::getInstance()->Debug['allow_upgrades_to_beta']) { + return 'http://builds.piwik.org/piwik-' . $newVersion . '.zip'; + } + return Piwik_Config::getInstance()->General['latest_version_url']; + } + + public function newVersionAvailable() + { + Piwik::checkUserIsSuperUser(); + + $newVersion = $this->checkNewVersionIsAvailableOrDie(); + + $view = Piwik_View::factory('update_new_version_available'); + $view->piwik_version = Piwik_Version::VERSION; + $view->piwik_new_version = $newVersion; + $view->piwik_latest_version_url = self::getLatestZipUrl($newVersion); + $view->can_auto_update = Piwik::canAutoUpdate(); + $view->makeWritableCommands = Piwik::getAutoUpdateMakeWritableMessage(); + echo $view->render(); + } + + public function oneClickUpdate() + { + Piwik::checkUserIsSuperUser(); + $this->newVersion = $this->checkNewVersionIsAvailableOrDie(); + + Piwik::setMaxExecutionTime(0); + + $url = self::getLatestZipUrl($this->newVersion); + $steps = array( + array('oneClick_Download', Piwik_Translate('CoreUpdater_DownloadingUpdateFromX', $url)), + array('oneClick_Unpack', Piwik_Translate('CoreUpdater_UnpackingTheUpdate')), + array('oneClick_Verify', Piwik_Translate('CoreUpdater_VerifyingUnpackedFiles')), + array('oneClick_CreateConfigFileBackup', Piwik_Translate('CoreUpdater_CreatingBackupOfConfigurationFile', self::CONFIG_FILE_BACKUP)), + array('oneClick_Copy', Piwik_Translate('CoreUpdater_InstallingTheLatestVersion')), + array('oneClick_Finished', Piwik_Translate('CoreUpdater_PiwikUpdatedSuccessfully')), + ); + + $errorMessage = false; + $messages = array(); + foreach ($steps as $step) { + try { + $method = $step[0]; + $message = $step[1]; + $this->$method(); + $messages[] = $message; + } catch (Exception $e) { + $errorMessage = $e->getMessage(); + break; + } + } + + // this is a magic template to trigger the Piwik_View_Update + $view = Piwik_View::factory(Piwik_View::COREUPDATER_ONE_CLICK_DONE); + $view->coreError = $errorMessage; + $view->feedbackMessages = $messages; + echo $view->render(); + } + + public function oneClickResults() + { + Piwik_API_Request::reloadAuthUsingTokenAuth($_POST); + Piwik::checkUserIsSuperUser(); + + $view = Piwik_View::factory('update_one_click_results'); + $view->coreError = Piwik_Common::getRequestVar('error', '', 'string', $_POST); + $view->feedbackMessages = safe_unserialize(Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('messages', '', 'string', $_POST))); + echo $view->render(); + } + + private function checkNewVersionIsAvailableOrDie() + { + $newVersion = Piwik_UpdateCheck::isNewestVersionAvailable(); + if (!$newVersion) { + throw new Exception(Piwik_TranslateException('CoreUpdater_ExceptionAlreadyLatestVersion', Piwik_Version::VERSION)); + } + return $newVersion; + } + + private function oneClick_Download() + { + $this->pathPiwikZip = PIWIK_USER_PATH . self::PATH_TO_EXTRACT_LATEST_VERSION . 'latest.zip'; + Piwik::checkDirectoriesWritableOrDie(array(self::PATH_TO_EXTRACT_LATEST_VERSION)); + + // we catch exceptions in the caller (i.e., oneClickUpdate) + $url = self::getLatestZipUrl($this->newVersion) . '?cb=' . $this->newVersion; + $fetched = Piwik_Http::fetchRemoteFile($url, $this->pathPiwikZip); + } + + private function oneClick_Unpack() + { + $pathExtracted = PIWIK_USER_PATH . self::PATH_TO_EXTRACT_LATEST_VERSION; + $this->pathRootExtractedPiwik = $pathExtracted . 'piwik'; + + if (file_exists($this->pathRootExtractedPiwik)) { + Piwik::unlinkRecursive($this->pathRootExtractedPiwik, true); + } + + $archive = Piwik_Unzip::factory('PclZip', $this->pathPiwikZip); + + if (0 == ($archive_files = $archive->extract($pathExtracted))) { + throw new Exception(Piwik_TranslateException('CoreUpdater_ExceptionArchiveIncompatible', $archive->errorInfo())); + } + + if (0 == count($archive_files)) { + throw new Exception(Piwik_TranslateException('CoreUpdater_ExceptionArchiveEmpty')); + } + unlink($this->pathPiwikZip); + } + + private function oneClick_Verify() + { + $someExpectedFiles = array( + '/config/global.ini.php', + '/index.php', + '/core/Piwik.php', + '/piwik.php', + '/plugins/API/API.php' + ); + foreach ($someExpectedFiles as $file) { + if (!is_file($this->pathRootExtractedPiwik . $file)) { + throw new Exception(Piwik_TranslateException('CoreUpdater_ExceptionArchiveIncomplete', $file)); + } + } + } + + private function oneClick_CreateConfigFileBackup() + { + $configFileBefore = PIWIK_USER_PATH . '/config/global.ini.php'; + $configFileAfter = PIWIK_USER_PATH . self::CONFIG_FILE_BACKUP; + Piwik::copy($configFileBefore, $configFileAfter); + } + + private function oneClick_Copy() + { + /* + * Make sure the execute bit is set for this shell script + */ + if (!Piwik_ArchiveProcessing::isBrowserTriggerArchivingEnabled()) { + @chmod($this->pathRootExtractedPiwik . '/misc/cron/archive.sh', 0755); + } + + /* + * Copy all files to PIWIK_INCLUDE_PATH. + * These files are accessed through the dispatcher. + */ + Piwik::copyRecursive($this->pathRootExtractedPiwik, PIWIK_INCLUDE_PATH); + + /* + * These files are visible in the web root and are generally + * served directly by the web server. May be shared. + */ + if (PIWIK_INCLUDE_PATH !== PIWIK_DOCUMENT_ROOT) { + /* + * Copy PHP files that expect to be in the document root + */ + $specialCases = array( + '/index.php', + '/piwik.php', + '/js/index.php', + ); + + foreach ($specialCases as $file) { + Piwik::copy($this->pathRootExtractedPiwik . $file, PIWIK_DOCUMENT_ROOT . $file); + } + + /* + * Copy the non-PHP files (e.g., images, css, javascript) + */ + Piwik::copyRecursive($this->pathRootExtractedPiwik, PIWIK_DOCUMENT_ROOT, true); + } + + /* + * Config files may be user (account) specific + */ + if (PIWIK_INCLUDE_PATH !== PIWIK_USER_PATH) { + Piwik::copyRecursive($this->pathRootExtractedPiwik . '/config', PIWIK_USER_PATH . '/config'); + } + + Piwik::unlinkRecursive($this->pathRootExtractedPiwik, true); + + if (function_exists('apc_clear_cache')) { + apc_clear_cache(); // clear the system (aka 'opcode') cache + } + } + + private function oneClick_Finished() + { + } + + public function index() + { + $language = Piwik_Common::getRequestVar('language', ''); + if (!empty($language)) { + Piwik_LanguagesManager::setLanguageForSession($language); + } + $this->runUpdaterAndExit(); + } + + protected function runUpdaterAndExit() + { + $updater = new Piwik_Updater(); $componentsWithUpdateFile = Piwik_CoreUpdater::getComponentUpdates($updater); - if(empty($componentsWithUpdateFile)) - { - Piwik::redirectToModule('CoreHome'); - } - - Piwik::setMaxExecutionTime(0); - - $sqlQueries = $updater->getSqlQueriesToExecute(); - if(Piwik_Common::isPhpCliMode()) - { - $view = Piwik_View::factory('update_welcome'); - $this->doWelcomeUpdates($view, $componentsWithUpdateFile); - echo $view->render(); - - if(!$this->coreError - && Piwik::getModule() == 'CoreUpdater') - { - $view = Piwik_View::factory('update_database_done'); - $this->doExecuteUpdates($view, $updater, $componentsWithUpdateFile); - echo $view->render(); - } - } - else if(Piwik_Common::getRequestVar('updateCorePlugins', 0, 'integer') == 1) - { - $this->warningMessages = array(); - $view = Piwik_View::factory('update_database_done'); - $this->doExecuteUpdates($view, $updater, $componentsWithUpdateFile); - - if(count($sqlQueries)== 1 && !$this->coreError) - { - Piwik::redirectToModule('CoreHome'); - } - - echo $view->render(); - } - else - { - $view = Piwik_View::factory('update_welcome'); - $view->queries = $sqlQueries; - $view->isMajor = $updater->hasMajorDbUpdate(); - $this->doWelcomeUpdates($view, $componentsWithUpdateFile); - echo $view->render(); - } - exit; - } - - private function doWelcomeUpdates($view, $componentsWithUpdateFile) - { - $view->new_piwik_version = Piwik_Version::VERSION; - $view->commandUpgradePiwik = "<br /><code>php ".Piwik_Common::getPathToPiwikRoot()."/index.php -- \"module=CoreUpdater\" </code>"; - $pluginNamesToUpdate = array(); - $coreToUpdate = false; - - // handle case of existing database with no tables - if(!Piwik::isInstalled()) - { - $this->errorMessages[] = Piwik_Translate('CoreUpdater_EmptyDatabaseError', Piwik_Config::getInstance()->database['dbname']); - $this->coreError = true; - $currentVersion = 'N/A'; - } - else - { - $this->errorMessages = array(); - try { - $currentVersion = Piwik_GetOption('version_core'); - } catch( Exception $e) { - $currentVersion = '<= 0.2.9'; - } - - foreach($componentsWithUpdateFile as $name => $filenames) - { - if($name == 'core') - { - $coreToUpdate = true; - } - else - { - $pluginNamesToUpdate[] = $name; - } - } - } - - // check file integrity - $integrityInfo = Piwik::getFileIntegrityInformation(); - if(isset($integrityInfo[1])) - { - if($integrityInfo[0] == false) - { - $this->warningMessages[] = '<b>'.Piwik_Translate('General_FileIntegrityWarningExplanation').'</b>'; - } - $this->warningMessages = array_merge($this->warningMessages, array_slice($integrityInfo, 1)); - } - Piwik::deleteAllCacheOnUpdate(); - - $view->coreError = $this->coreError; - $view->warningMessages = $this->warningMessages; - $view->errorMessages = $this->errorMessages; - $view->current_piwik_version = $currentVersion; - $view->pluginNamesToUpdate = $pluginNamesToUpdate; - $view->coreToUpdate = $coreToUpdate; - } - - private function doExecuteUpdates($view, $updater, $componentsWithUpdateFile) - { - $this->loadAndExecuteUpdateFiles($updater, $componentsWithUpdateFile); - - Piwik::deleteAllCacheOnUpdate(); - - $view->coreError = $this->coreError; - $view->warningMessages = $this->warningMessages; - $view->errorMessages = $this->errorMessages; - $view->deactivatedPlugins = $this->deactivatedPlugins; - } - - private function loadAndExecuteUpdateFiles($updater, $componentsWithUpdateFile) - { - // if error in any core update, show message + help message + EXIT - // if errors in any plugins updates, show them on screen, disable plugins that errored + CONTINUE - // if warning in any core update or in any plugins update, show message + CONTINUE - // if no error or warning, success message + CONTINUE - foreach($componentsWithUpdateFile as $name => $filenames) - { - try { - $this->warningMessages = array_merge($this->warningMessages, $updater->update($name)); - } catch (Piwik_Updater_UpdateErrorException $e) { - $this->errorMessages[] = $e->getMessage(); - if($name == 'core') - { - $this->coreError = true; - break; - } - else - { - Piwik_PluginsManager::getInstance()->deactivatePlugin($name); - $this->deactivatedPlugins[] = $name; - } - } - } - } + if (empty($componentsWithUpdateFile)) { + Piwik::redirectToModule('CoreHome'); + } + + Piwik::setMaxExecutionTime(0); + + $sqlQueries = $updater->getSqlQueriesToExecute(); + if (Piwik_Common::isPhpCliMode()) { + $view = Piwik_View::factory('update_welcome'); + $this->doWelcomeUpdates($view, $componentsWithUpdateFile); + echo $view->render(); + + if (!$this->coreError + && Piwik::getModule() == 'CoreUpdater' + ) { + $view = Piwik_View::factory('update_database_done'); + $this->doExecuteUpdates($view, $updater, $componentsWithUpdateFile); + echo $view->render(); + } + } else if (Piwik_Common::getRequestVar('updateCorePlugins', 0, 'integer') == 1) { + $this->warningMessages = array(); + $view = Piwik_View::factory('update_database_done'); + $this->doExecuteUpdates($view, $updater, $componentsWithUpdateFile); + + if (count($sqlQueries) == 1 && !$this->coreError) { + Piwik::redirectToModule('CoreHome'); + } + + echo $view->render(); + } else { + $view = Piwik_View::factory('update_welcome'); + $view->queries = $sqlQueries; + $view->isMajor = $updater->hasMajorDbUpdate(); + $this->doWelcomeUpdates($view, $componentsWithUpdateFile); + echo $view->render(); + } + exit; + } + + private function doWelcomeUpdates($view, $componentsWithUpdateFile) + { + $view->new_piwik_version = Piwik_Version::VERSION; + $view->commandUpgradePiwik = "<br /><code>php " . Piwik_Common::getPathToPiwikRoot() . "/index.php -- \"module=CoreUpdater\" </code>"; + $pluginNamesToUpdate = array(); + $coreToUpdate = false; + + // handle case of existing database with no tables + if (!Piwik::isInstalled()) { + $this->errorMessages[] = Piwik_Translate('CoreUpdater_EmptyDatabaseError', Piwik_Config::getInstance()->database['dbname']); + $this->coreError = true; + $currentVersion = 'N/A'; + } else { + $this->errorMessages = array(); + try { + $currentVersion = Piwik_GetOption('version_core'); + } catch (Exception $e) { + $currentVersion = '<= 0.2.9'; + } + + foreach ($componentsWithUpdateFile as $name => $filenames) { + if ($name == 'core') { + $coreToUpdate = true; + } else { + $pluginNamesToUpdate[] = $name; + } + } + } + + // check file integrity + $integrityInfo = Piwik::getFileIntegrityInformation(); + if (isset($integrityInfo[1])) { + if ($integrityInfo[0] == false) { + $this->warningMessages[] = '<b>' . Piwik_Translate('General_FileIntegrityWarningExplanation') . '</b>'; + } + $this->warningMessages = array_merge($this->warningMessages, array_slice($integrityInfo, 1)); + } + Piwik::deleteAllCacheOnUpdate(); + + $view->coreError = $this->coreError; + $view->warningMessages = $this->warningMessages; + $view->errorMessages = $this->errorMessages; + $view->current_piwik_version = $currentVersion; + $view->pluginNamesToUpdate = $pluginNamesToUpdate; + $view->coreToUpdate = $coreToUpdate; + } + + private function doExecuteUpdates($view, $updater, $componentsWithUpdateFile) + { + $this->loadAndExecuteUpdateFiles($updater, $componentsWithUpdateFile); + + Piwik::deleteAllCacheOnUpdate(); + + $view->coreError = $this->coreError; + $view->warningMessages = $this->warningMessages; + $view->errorMessages = $this->errorMessages; + $view->deactivatedPlugins = $this->deactivatedPlugins; + } + + private function loadAndExecuteUpdateFiles($updater, $componentsWithUpdateFile) + { + // if error in any core update, show message + help message + EXIT + // if errors in any plugins updates, show them on screen, disable plugins that errored + CONTINUE + // if warning in any core update or in any plugins update, show message + CONTINUE + // if no error or warning, success message + CONTINUE + foreach ($componentsWithUpdateFile as $name => $filenames) { + try { + $this->warningMessages = array_merge($this->warningMessages, $updater->update($name)); + } catch (Piwik_Updater_UpdateErrorException $e) { + $this->errorMessages[] = $e->getMessage(); + if ($name == 'core') { + $this->coreError = true; + break; + } else { + Piwik_PluginsManager::getInstance()->deactivatePlugin($name); + $this->deactivatedPlugins[] = $name; + } + } + } + } } diff --git a/plugins/CoreUpdater/CoreUpdater.php b/plugins/CoreUpdater/CoreUpdater.php index 60168b83e7..30a28f76a6 100644 --- a/plugins/CoreUpdater/CoreUpdater.php +++ b/plugins/CoreUpdater/CoreUpdater.php @@ -1,10 +1,10 @@ <?php /** * Piwik - Open source web analytics - * + * * @link http://piwik.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - * + * * @category Piwik_Plugins * @package Piwik_CoreUpdater */ @@ -15,75 +15,69 @@ */ class Piwik_CoreUpdater extends Piwik_Plugin { - public function getInformation() - { - return array( - 'description' => Piwik_Translate('CoreUpdater_PluginDescription'), - 'author' => 'Piwik', - 'author_homepage' => 'http://piwik.org/', - 'version' => Piwik_Version::VERSION, - ); - } + public function getInformation() + { + return array( + 'description' => Piwik_Translate('CoreUpdater_PluginDescription'), + 'author' => 'Piwik', + 'author_homepage' => 'http://piwik.org/', + 'version' => Piwik_Version::VERSION, + ); + } + + function getListHooksRegistered() + { + $hooks = array( + 'FrontController.dispatchCoreAndPluginUpdatesScreen' => 'dispatch', + 'FrontController.checkForUpdates' => 'updateCheck', + ); + return $hooks; + } + + public static function getComponentUpdates($updater) + { + $updater->addComponentToCheck('core', Piwik_Version::VERSION); + $plugins = Piwik_PluginsManager::getInstance()->getLoadedPlugins(); + foreach ($plugins as $pluginName => $plugin) { + $updater->addComponentToCheck($pluginName, $plugin->getVersion()); + } + + $componentsWithUpdateFile = $updater->getComponentsWithUpdateFile(); + if (count($componentsWithUpdateFile) == 0 && !$updater->hasNewVersion('core')) { + return null; + } - function getListHooksRegistered() - { - $hooks = array( - 'FrontController.dispatchCoreAndPluginUpdatesScreen' => 'dispatch', - 'FrontController.checkForUpdates' => 'updateCheck', - ); - return $hooks; - } + return $componentsWithUpdateFile; + } - public static function getComponentUpdates($updater) - { - $updater->addComponentToCheck('core', Piwik_Version::VERSION); - $plugins = Piwik_PluginsManager::getInstance()->getLoadedPlugins(); - foreach($plugins as $pluginName => $plugin) - { - $updater->addComponentToCheck($pluginName, $plugin->getVersion()); - } - - $componentsWithUpdateFile = $updater->getComponentsWithUpdateFile(); - if(count($componentsWithUpdateFile) == 0 && !$updater->hasNewVersion('core')) - { - return null; - } + function dispatch() + { + $module = Piwik_Common::getRequestVar('module', '', 'string'); + $action = Piwik_Common::getRequestVar('action', '', 'string'); - return $componentsWithUpdateFile; - } - - function dispatch() - { - $module = Piwik_Common::getRequestVar('module', '', 'string'); - $action = Piwik_Common::getRequestVar('action', '', 'string'); - - $updater = new Piwik_Updater(); - $updater->addComponentToCheck('core', Piwik_Version::VERSION); - $updates = $updater->getComponentsWithNewVersion(); - if(!empty($updates)) - { - Piwik::deleteAllCacheOnUpdate(); - } - if(self::getComponentUpdates($updater) !== null - && $module != 'CoreUpdater' - // Proxy module is used to redirect users to piwik.org, should still work when Piwik must be updated - && $module != 'Proxy' - && !($module == 'LanguagesManager' - && $action == 'saveLanguage')) - { - if(Piwik_FrontController::shouldRethrowException()) - { - throw new Exception("Piwik and/or some plugins have been upgraded to a new version. Please run the update process first. See documentation: http://piwik.org/docs/update/"); - } - else - { - Piwik::redirectToModule('CoreUpdater'); - } - } - } + $updater = new Piwik_Updater(); + $updater->addComponentToCheck('core', Piwik_Version::VERSION); + $updates = $updater->getComponentsWithNewVersion(); + if (!empty($updates)) { + Piwik::deleteAllCacheOnUpdate(); + } + if (self::getComponentUpdates($updater) !== null + && $module != 'CoreUpdater' + // Proxy module is used to redirect users to piwik.org, should still work when Piwik must be updated + && $module != 'Proxy' + && !($module == 'LanguagesManager' + && $action == 'saveLanguage') + ) { + if (Piwik_FrontController::shouldRethrowException()) { + throw new Exception("Piwik and/or some plugins have been upgraded to a new version. Please run the update process first. See documentation: http://piwik.org/docs/update/"); + } else { + Piwik::redirectToModule('CoreUpdater'); + } + } + } - function updateCheck() - { - Piwik_UpdateCheck::check(); - } + function updateCheck() + { + Piwik_UpdateCheck::check(); + } } diff --git a/plugins/CoreUpdater/templates/cli_update_database_done.tpl b/plugins/CoreUpdater/templates/cli_update_database_done.tpl index 19b5554b3b..099960be4d 100644 --- a/plugins/CoreUpdater/templates/cli_update_database_done.tpl +++ b/plugins/CoreUpdater/templates/cli_update_database_done.tpl @@ -1,64 +1,64 @@ {textformat} -{assign var='helpMessage' value='CoreUpdater_HelpMessageContent'|translate:'[':']':"\n\n* "|unescape} + {assign var='helpMessage' value='CoreUpdater_HelpMessageContent'|translate:'[':']':"\n\n* "|unescape} -{if $coreError} - [X] {'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate|unescape} + {if $coreError} + [X] {'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate|unescape} - {foreach from=$errorMessages item=message} - * {$message} + {foreach from=$errorMessages item=message} + * {$message} - {/foreach} + {/foreach} - {'CoreUpdater_HelpMessageIntroductionWhenError'|translate|unescape} + {'CoreUpdater_HelpMessageIntroductionWhenError'|translate|unescape} - * {$helpMessage} + * {$helpMessage} - {'CoreUpdater_ErrorDIYHelp'|translate} + {'CoreUpdater_ErrorDIYHelp'|translate} - * {'CoreUpdater_ErrorDIYHelp_1'|translate} + * {'CoreUpdater_ErrorDIYHelp_1'|translate} - * {'CoreUpdater_ErrorDIYHelp_2'|translate} + * {'CoreUpdater_ErrorDIYHelp_2'|translate} - * {'CoreUpdater_ErrorDIYHelp_3'|translate} + * {'CoreUpdater_ErrorDIYHelp_3'|translate} - * {'CoreUpdater_ErrorDIYHelp_4'|translate} + * {'CoreUpdater_ErrorDIYHelp_4'|translate} - * {'CoreUpdater_ErrorDIYHelp_5'|translate} + * {'CoreUpdater_ErrorDIYHelp_5'|translate} -{else} - {if count($warningMessages) > 0} - [!] {'CoreUpdater_WarningMessages'|translate|unescape} + {else} + {if count($warningMessages) > 0} + [!] {'CoreUpdater_WarningMessages'|translate|unescape} - {foreach from=$warningMessages item=message} - * {$message} + {foreach from=$warningMessages item=message} + * {$message} - {/foreach} - {/if} - - {if count($errorMessages) > 0} - [X] {'CoreUpdater_ErrorDuringPluginsUpdates'|translate|unescape} + {/foreach} + {/if} - {foreach from=$errorMessages item=message} - * {$message} + {if count($errorMessages) > 0} + [X] {'CoreUpdater_ErrorDuringPluginsUpdates'|translate|unescape} - {/foreach} - - {if isset($deactivatedPlugins) && count($deactivatedPlugins) > 0} - {assign var=listOfDeactivatedPlugins value=$deactivatedPlugins|@implode:', '} - [!] {'CoreUpdater_WeAutomaticallyDeactivatedTheFollowingPlugins'|translate:$listOfDeactivatedPlugins|unescape} + {foreach from=$errorMessages item=message} + * {$message} - {/if} - {/if} - {if count($errorMessages) > 0 || count($warningMessages) > 0} - {'CoreUpdater_HelpMessageIntroductionWhenWarning'|translate|unescape} + {/foreach} - * {$helpMessage} - {else} - {'CoreUpdater_PiwikHasBeenSuccessfullyUpgraded'|translate|unescape} + {if isset($deactivatedPlugins) && count($deactivatedPlugins) > 0} + {assign var=listOfDeactivatedPlugins value=$deactivatedPlugins|@implode:', '} + [!] {'CoreUpdater_WeAutomaticallyDeactivatedTheFollowingPlugins'|translate:$listOfDeactivatedPlugins|unescape} - {/if} -{/if} + {/if} + {/if} + {if count($errorMessages) > 0 || count($warningMessages) > 0} + {'CoreUpdater_HelpMessageIntroductionWhenWarning'|translate|unescape} + + * {$helpMessage} + {else} + {'CoreUpdater_PiwikHasBeenSuccessfullyUpgraded'|translate|unescape} + + {/if} + {/if} {/textformat} diff --git a/plugins/CoreUpdater/templates/cli_update_welcome.tpl b/plugins/CoreUpdater/templates/cli_update_welcome.tpl index 1e4afc0da2..b3802e024a 100644 --- a/plugins/CoreUpdater/templates/cli_update_welcome.tpl +++ b/plugins/CoreUpdater/templates/cli_update_welcome.tpl @@ -1,38 +1,38 @@ {assign var='helpMessage' value='CoreUpdater_HelpMessageContent'|translate:'[':']':"\n\n* "|unescape} {textformat} -*** {'CoreUpdater_UpdateTitle'|translate|unescape} *** + *** {'CoreUpdater_UpdateTitle'|translate|unescape} *** -{if $coreError} - [X] {'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate|unescape} + {if $coreError} + [X] {'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate|unescape} - {foreach from=$errorMessages item=message} - * {$message} + {foreach from=$errorMessages item=message} + * {$message} - {/foreach} + {/foreach} - {'CoreUpdater_HelpMessageIntroductionWhenError'|translate|unescape} + {'CoreUpdater_HelpMessageIntroductionWhenError'|translate|unescape} - * {$helpMessage} + * {$helpMessage} -{else} - {if $coreToUpdate || count($pluginNamesToUpdate) > 0} - {'CoreUpdater_DatabaseUpgradeRequired'|translate|unescape} + {else} + {if $coreToUpdate || count($pluginNamesToUpdate) > 0} + {'CoreUpdater_DatabaseUpgradeRequired'|translate|unescape} - {'CoreUpdater_YourDatabaseIsOutOfDate'|translate|unescape} + {'CoreUpdater_YourDatabaseIsOutOfDate'|translate|unescape} - {if $coreToUpdate} - {'CoreUpdater_PiwikWillBeUpgradedFromVersionXToVersionY'|translate:$current_piwik_version:$new_piwik_version|unescape} + {if $coreToUpdate} + {'CoreUpdater_PiwikWillBeUpgradedFromVersionXToVersionY'|translate:$current_piwik_version:$new_piwik_version|unescape} - {/if} - {if count($pluginNamesToUpdate) > 0} - {assign var=listOfPlugins value=$pluginNamesToUpdate|@implode:', '} - {'CoreUpdater_TheFollowingPluginsWillBeUpgradedX'|translate:$listOfPlugins|unescape} + {/if} + {if count($pluginNamesToUpdate) > 0} + {assign var=listOfPlugins value=$pluginNamesToUpdate|@implode:', '} + {'CoreUpdater_TheFollowingPluginsWillBeUpgradedX'|translate:$listOfPlugins|unescape} - {/if} - {'CoreUpdater_TheUpgradeProcessMayTakeAWhilePleaseBePatient'|translate|unescape} + {/if} + {'CoreUpdater_TheUpgradeProcessMayTakeAWhilePleaseBePatient'|translate|unescape} - {/if} -{/if} + {/if} + {/if} {/textformat} diff --git a/plugins/CoreUpdater/templates/header.tpl b/plugins/CoreUpdater/templates/header.tpl index 65670a7728..e0023e6389 100644 --- a/plugins/CoreUpdater/templates/header.tpl +++ b/plugins/CoreUpdater/templates/header.tpl @@ -1,42 +1,44 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> - <title>Piwik › {'CoreUpdater_UpdateTitle'|translate}</title> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <link rel="shortcut icon" href="plugins/CoreHome/templates/images/favicon.ico" /> + <title>Piwik › {'CoreUpdater_UpdateTitle'|translate}</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> + <link rel="shortcut icon" href="plugins/CoreHome/templates/images/favicon.ico"/> - <link rel="stylesheet" type="text/css" href="themes/default/simple_structure.css" /> - <link rel="stylesheet" type="text/css" href="libs/jquery/themes/base/jquery-ui.css" /> - <link rel="stylesheet" type="text/css" href="themes/default/styles.css" /> - <link rel="stylesheet" type="text/css" href="plugins/CoreHome/templates/donate.css"></link> - <link rel="stylesheet" type="text/css" href="plugins/CoreHome/templates/jquery.ui.autocomplete.css"></link> -{literal} -<style type="text/css"> -* { - margin: 0; - padding: 0; -} -.topBarElem { - font-family:arial,sans-serif !important; - font-size:13px; - line-height:1.33; -} + <link rel="stylesheet" type="text/css" href="themes/default/simple_structure.css"/> + <link rel="stylesheet" type="text/css" href="libs/jquery/themes/base/jquery-ui.css"/> + <link rel="stylesheet" type="text/css" href="themes/default/styles.css"/> + <link rel="stylesheet" type="text/css" href="plugins/CoreHome/templates/donate.css"></link> + <link rel="stylesheet" type="text/css" href="plugins/CoreHome/templates/jquery.ui.autocomplete.css"></link> + {literal} + <style type="text/css"> + * { + margin: 0; + padding: 0; + } -#donate-form-container { - margin: 0 0 2em 2em; -} -</style> -{/literal} + .topBarElem { + font-family: arial, sans-serif !important; + font-size: 13px; + line-height: 1.33; + } - <script type="text/javascript" src="libs/jquery/jquery.js"></script> - <script type="text/javascript" src="libs/jquery/jquery-ui.js"></script> - <script type="text/javascript" src="plugins/CoreHome/templates/donate.js"></script> -{if 'General_LayoutDirection'|translate =='rtl'} -<link rel="stylesheet" type="text/css" href="themes/default/rtl.css" /> -{/if} -{loadJavascriptTranslations plugins='CoreHome'} + #donate-form-container { + margin: 0 0 2em 2em; + } + </style> + {/literal} + + <script type="text/javascript" src="libs/jquery/jquery.js"></script> + <script type="text/javascript" src="libs/jquery/jquery-ui.js"></script> + <script type="text/javascript" src="plugins/CoreHome/templates/donate.js"></script> + {if 'General_LayoutDirection'|translate =='rtl'} + <link rel="stylesheet" type="text/css" href="themes/default/rtl.css"/> + {/if} + {loadJavascriptTranslations plugins='CoreHome'} </head> <body id="simple"> <div id="contentsimple"> - <div id="title"><img title='Piwik' alt="Piwik" src='themes/default/images/logo-header.png' style='margin-left:10px' /><span id="subh1"> # {'General_OpenSourceWebAnalytics'|translate}</span></div> + <div id="title"><img title='Piwik' alt="Piwik" src='themes/default/images/logo-header.png' style='margin-left:10px'/><span + id="subh1"> # {'General_OpenSourceWebAnalytics'|translate}</span></div> diff --git a/plugins/CoreUpdater/templates/update_database_done.tpl b/plugins/CoreUpdater/templates/update_database_done.tpl index 649321c57f..0ab5d72517 100644 --- a/plugins/CoreUpdater/templates/update_database_done.tpl +++ b/plugins/CoreUpdater/templates/update_database_done.tpl @@ -2,64 +2,75 @@ {assign var='helpMessage' value='CoreUpdater_HelpMessageContent'|translate:'<a target="_blank" href="?module=Proxy&action=redirect&url=http://piwik.org/faq/">':'</a>':'</li><li>'} {if $coreError} - <br /><br /> - <div class="error"> - <img src="themes/default/images/error_medium.png" /> {'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate} - {foreach from=$errorMessages item=message} - <pre>{$message}</pre><br /> - {/foreach} - </div> - <br /> - <p>{'CoreUpdater_HelpMessageIntroductionWhenError'|translate} - <ul><li>{$helpMessage}</li></ul></p> - - <p>{'CoreUpdater_ErrorDIYHelp'|translate} - <ul><li>{'CoreUpdater_ErrorDIYHelp_1'|translate}</li> - <li>{'CoreUpdater_ErrorDIYHelp_2'|translate}</li> - <li>{'CoreUpdater_ErrorDIYHelp_3'|translate}</li> - <li>{'CoreUpdater_ErrorDIYHelp_4'|translate}</li> - <li>{'CoreUpdater_ErrorDIYHelp_5'|translate}</li></ul></p> + <br/> + <br/> + <div class="error"> + <img src="themes/default/images/error_medium.png"/> {'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate} + {foreach from=$errorMessages item=message} + <pre>{$message}</pre> + <br/> + {/foreach} + </div> + <br/> + <p>{'CoreUpdater_HelpMessageIntroductionWhenError'|translate} + <ul> + <li>{$helpMessage}</li> + </ul> + </p> + <p>{'CoreUpdater_ErrorDIYHelp'|translate} + <ul> + <li>{'CoreUpdater_ErrorDIYHelp_1'|translate}</li> + <li>{'CoreUpdater_ErrorDIYHelp_2'|translate}</li> + <li>{'CoreUpdater_ErrorDIYHelp_3'|translate}</li> + <li>{'CoreUpdater_ErrorDIYHelp_4'|translate}</li> + <li>{'CoreUpdater_ErrorDIYHelp_5'|translate}</li> + </ul> + </p> {else} - - {if count($warningMessages) > 0} - <div class="warning"> - <p><img src="themes/default/images/warning_medium.png" /> {'CoreUpdater_WarningMessages'|translate}</p> - {foreach from=$warningMessages item=message} - <pre>{$message}</pre><br /> - {/foreach} - </div> - {/if} - - {if count($errorMessages) > 0} - <div class="warning"> - <p><img src="themes/default/images/error_medium.png" /> {'CoreUpdater_ErrorDuringPluginsUpdates'|translate}</p> - {foreach from=$errorMessages item=message} - <pre>{$message}</pre><br /> - {/foreach} - - {if isset($deactivatedPlugins) && count($deactivatedPlugins) > 0} - {assign var=listOfDeactivatedPlugins value=$deactivatedPlugins|@implode:', '} - <p style="color:red"><img src="themes/default/images/error_medium.png" /> {'CoreUpdater_WeAutomaticallyDeactivatedTheFollowingPlugins'|translate:$listOfDeactivatedPlugins}</p> - {/if} - </div> - {/if} - - {if count($errorMessages) > 0 || count($warningMessages) > 0} - <br /> - <p>{'CoreUpdater_HelpMessageIntroductionWhenWarning'|translate} - <ul><li>{$helpMessage}</li></ul> - </p> - {else} - <p class="success">{'CoreUpdater_PiwikHasBeenSuccessfullyUpgraded'|translate}</p> - - <div id="donate-form-container"> - {include file="CoreHome/templates/donate.tpl"} - </div> - {/if} - <form action="index.php"> - <input type="submit" class="submit" value="{'CoreUpdater_ContinueToPiwik'|translate}" /> - </form> + {if count($warningMessages) > 0} + <div class="warning"> + <p><img src="themes/default/images/warning_medium.png"/> {'CoreUpdater_WarningMessages'|translate}</p> + {foreach from=$warningMessages item=message} + <pre>{$message}</pre> + <br/> + {/foreach} + </div> + {/if} + + {if count($errorMessages) > 0} + <div class="warning"> + <p><img src="themes/default/images/error_medium.png"/> {'CoreUpdater_ErrorDuringPluginsUpdates'|translate}</p> + {foreach from=$errorMessages item=message} + <pre>{$message}</pre> + <br/> + {/foreach} + + {if isset($deactivatedPlugins) && count($deactivatedPlugins) > 0} + {assign var=listOfDeactivatedPlugins value=$deactivatedPlugins|@implode:', '} + <p style="color:red"><img + src="themes/default/images/error_medium.png"/> {'CoreUpdater_WeAutomaticallyDeactivatedTheFollowingPlugins'|translate:$listOfDeactivatedPlugins} + </p> + {/if} + </div> + {/if} + + {if count($errorMessages) > 0 || count($warningMessages) > 0} + <br/> + <p>{'CoreUpdater_HelpMessageIntroductionWhenWarning'|translate} + <ul> + <li>{$helpMessage}</li> + </ul> + </p> + {else} + <p class="success">{'CoreUpdater_PiwikHasBeenSuccessfullyUpgraded'|translate}</p> + <div id="donate-form-container"> + {include file="CoreHome/templates/donate.tpl"} + </div> + {/if} + <form action="index.php"> + <input type="submit" class="submit" value="{'CoreUpdater_ContinueToPiwik'|translate}"/> + </form> {/if} {include file="CoreUpdater/templates/footer.tpl"} diff --git a/plugins/CoreUpdater/templates/update_new_version_available.tpl b/plugins/CoreUpdater/templates/update_new_version_available.tpl index d8be6033a6..15541aa48d 100644 --- a/plugins/CoreUpdater/templates/update_new_version_available.tpl +++ b/plugins/CoreUpdater/templates/update_new_version_available.tpl @@ -4,25 +4,26 @@ <p><b>{'CoreUpdater_ThereIsNewVersionAvailableForUpdate'|translate}</b></p> {if $can_auto_update} - <p>{'CoreUpdater_YouCanUpgradeAutomaticallyOrDownloadPackage'|translate:$piwik_new_version}</p> + <p>{'CoreUpdater_YouCanUpgradeAutomaticallyOrDownloadPackage'|translate:$piwik_new_version}</p> {else} - <p>{'Installation_SystemCheckAutoUpdateHelp'|translate}</p> - <p>{'CoreUpdater_YouMustDownloadPackageOrFixPermissions'|translate:$piwik_new_version} - {$makeWritableCommands} - </p> + <p>{'Installation_SystemCheckAutoUpdateHelp'|translate}</p> + <p>{'CoreUpdater_YouMustDownloadPackageOrFixPermissions'|translate:$piwik_new_version} + {$makeWritableCommands} + </p> {/if} {if $can_auto_update} - <form action="index.php"> - <input type="hidden" name="module" value="CoreUpdater" /> - <input type="hidden" name="action" value="oneClickUpdate" /> - <input type="submit" class="submit" value="{'CoreUpdater_UpdateAutomatically'|translate}" /> +<form action="index.php"> + <input type="hidden" name="module" value="CoreUpdater"/> + <input type="hidden" name="action" value="oneClickUpdate"/> + <input type="submit" class="submit" value="{'CoreUpdater_UpdateAutomatically'|translate}"/> + {/if} + <a style="margin-left:50px" class="submit button" + href="{$piwik_latest_version_url}?cb={$piwik_new_version}">{'CoreUpdater_DownloadX'|translate:$piwik_new_version}</a><br/> + {if $can_auto_update} +</form> {/if} - <a style="margin-left:50px" class="submit button" href="{$piwik_latest_version_url}?cb={$piwik_new_version}">{'CoreUpdater_DownloadX'|translate:$piwik_new_version}</a><br /> -{if $can_auto_update} - </form> -{/if} -<br /> +<br/> <a href='index.php'>« {'General_BackToPiwik'|translate}</a> {include file="CoreUpdater/templates/footer.tpl"} diff --git a/plugins/CoreUpdater/templates/update_one_click_results.tpl b/plugins/CoreUpdater/templates/update_one_click_results.tpl index db463db066..7ba1bf1627 100644 --- a/plugins/CoreUpdater/templates/update_one_click_results.tpl +++ b/plugins/CoreUpdater/templates/update_one_click_results.tpl @@ -2,18 +2,23 @@ <br/> {foreach from=$feedbackMessages item=message} - <p>{$message|escape:'html'}</p> + <p>{$message|escape:'html'}</p> {/foreach} {if $coreError} - <br /><br /> - <div class="error"><img src="themes/default/images/error_medium.png" /> {$coreError|escape:'html'}</div> - <br /><br /> - <div class="warning"><img src="themes/default/images/warning_medium.png" /> {'CoreUpdater_UpdateHasBeenCancelledExplanation'|translate:"<br /><br />":"<a target='_blank' href='?module=Proxy&action=redirect&url=http://piwik.org/docs/update/'>":"</a>"}</div> - <br /><br /> + <br/> + <br/> + <div class="error"><img src="themes/default/images/error_medium.png"/> {$coreError|escape:'html'}</div> + <br/> + <br/> + <div class="warning"><img + src="themes/default/images/warning_medium.png"/> {'CoreUpdater_UpdateHasBeenCancelledExplanation'|translate:"<br /><br />":"<a target='_blank' href='?module=Proxy&action=redirect&url=http://piwik.org/docs/update/'>":"</a>"} + </div> + <br/> + <br/> {/if} <form action="index.php"> -<input type="submit" class="submit" value="{'CoreUpdater_ContinueToPiwik'|translate}" /> + <input type="submit" class="submit" value="{'CoreUpdater_ContinueToPiwik'|translate}"/> </form> {include file="CoreUpdater/templates/footer.tpl"} diff --git a/plugins/CoreUpdater/templates/update_welcome.tpl b/plugins/CoreUpdater/templates/update_welcome.tpl index 434b8ad99c..aeaa73c627 100644 --- a/plugins/CoreUpdater/templates/update_welcome.tpl +++ b/plugins/CoreUpdater/templates/update_welcome.tpl @@ -3,116 +3,124 @@ {assign var='helpMessage' value='CoreUpdater_HelpMessageContent'|translate:'<a target="_blank" href="?module=Proxy&action=redirect&url=http://piwik.org/faq/">':'</a>':'</li><li>'} {if $coreError} - <br /><br /> - <div class="error"> - <img src="themes/default/images/error_medium.png" /> {'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate} - {foreach from=$errorMessages item=message} - <pre>{$message}</pre> - {/foreach} - </div> - <br /> - <p>{'CoreUpdater_HelpMessageIntroductionWhenError'|translate} - <ul><li>{$helpMessage}</li></ul></p> + <br/> + <br/> + <div class="error"> + <img src="themes/default/images/error_medium.png"/> {'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate} + {foreach from=$errorMessages item=message} + <pre>{$message}</pre> + {/foreach} + </div> + <br/> + <p>{'CoreUpdater_HelpMessageIntroductionWhenError'|translate} + <ul> + <li>{$helpMessage}</li> + </ul> + </p> {else} - {if $coreToUpdate || count($pluginNamesToUpdate) > 0} - <p style='font-size:110%;padding-top:1em;'><b id='titleUpdate'>{'CoreUpdater_DatabaseUpgradeRequired'|translate}</b></p> - <p>{'CoreUpdater_YourDatabaseIsOutOfDate'|translate}</p> + {if $coreToUpdate || count($pluginNamesToUpdate) > 0} + <p style='font-size:110%;padding-top:1em;'><b id='titleUpdate'>{'CoreUpdater_DatabaseUpgradeRequired'|translate}</b></p> + <p>{'CoreUpdater_YourDatabaseIsOutOfDate'|translate}</p> + {if $coreToUpdate} + <p>{'CoreUpdater_PiwikWillBeUpgradedFromVersionXToVersionY'|translate:$current_piwik_version:$new_piwik_version}</p> + {/if} - {if $coreToUpdate} - <p>{'CoreUpdater_PiwikWillBeUpgradedFromVersionXToVersionY'|translate:$current_piwik_version:$new_piwik_version}</p> - {/if} + {if count($pluginNamesToUpdate) > 0} + {assign var=listOfPlugins value=$pluginNamesToUpdate|@implode:', '} + <p>{'CoreUpdater_TheFollowingPluginsWillBeUpgradedX'|translate:$listOfPlugins}</p> + {/if} + <h3 id='titleUpdate'>{'CoreUpdater_NoteForLargePiwikInstances'|translate}</h3> + {if $isMajor} + <p class="warning normalFontSize"> + {'CoreUpdater_MajorUpdateWarning1'|translate}<br/> + {'CoreUpdater_MajorUpdateWarning2'|translate} + </p> + {/if} + <ul> + <li>{'CoreUpdater_TheUpgradeProcessMayFailExecuteCommand'|translate:$commandUpgradePiwik}</li> + <li>It is also recommended for high traffic Piwik servers to <a target='_blank' + href='?module=Proxy&action=redirect&url={"http://piwik.org/faq/how-to/#faq_111"|escape:"url"}'>momentarily + disable visitor Tracking and put the Piwik User Interface in maintenance mode</a>. + </li> + <li>{'CoreUpdater_YouCouldManuallyExecuteSqlQueries'|translate}<br/> + <a href='#' id='showSql' style='margin-left:20px'>› {'CoreUpdater_ClickHereToViewSqlQueries'|translate}</a> - {if count($pluginNamesToUpdate) > 0} - {assign var=listOfPlugins value=$pluginNamesToUpdate|@implode:', '} - <p>{'CoreUpdater_TheFollowingPluginsWillBeUpgradedX'|translate:$listOfPlugins}</p> - {/if} + <div id='sqlQueries' style='display:none'> + <br/> + <code> + # {'CoreUpdater_NoteItIsExpectedThatQueriesFail'|translate}<br/><br/> + {foreach from=$queries item=query} {$query} + <br/> + {/foreach} + </code> + </div> + </li> + </ul> + <br/> + <br/> + <h4 id='titleUpdate'>{'CoreUpdater_ReadyToGo'|translate}</h4> + <p>{'CoreUpdater_TheUpgradeProcessMayTakeAWhilePleaseBePatient'|translate}</p> + {/if} - <h3 id='titleUpdate'>{'CoreUpdater_NoteForLargePiwikInstances'|translate}</h3> - {if $isMajor} - <p class="warning normalFontSize"> - {'CoreUpdater_MajorUpdateWarning1'|translate}<br /> - {'CoreUpdater_MajorUpdateWarning2'|translate} - </p> - {/if} - <ul> - <li>{'CoreUpdater_TheUpgradeProcessMayFailExecuteCommand'|translate:$commandUpgradePiwik}</li> - <li>It is also recommended for high traffic Piwik servers to <a target='_blank' href='?module=Proxy&action=redirect&url={"http://piwik.org/faq/how-to/#faq_111"|escape:"url"}'>momentarily disable visitor Tracking and put the Piwik User Interface in maintenance mode</a>.</li> - <li>{'CoreUpdater_YouCouldManuallyExecuteSqlQueries'|translate}<br /> - <a href='#' id='showSql' style='margin-left:20px'>› {'CoreUpdater_ClickHereToViewSqlQueries'|translate}</a> - <div id='sqlQueries' style='display:none'> - <br /> - <code> - # {'CoreUpdater_NoteItIsExpectedThatQueriesFail'|translate}<br /><br /> - {foreach from=$queries item=query} {$query}<br /> - {/foreach} - </code> - </div> - </li> - </ul> - <br /><br /> - <h4 id='titleUpdate'>{'CoreUpdater_ReadyToGo'|translate}</h4> - <p>{'CoreUpdater_TheUpgradeProcessMayTakeAWhilePleaseBePatient'|translate}</p> - {/if} + {if count($warningMessages) > 0} + <p><i>{$warningMessages[0]}</i> + {if count($warningMessages) > 1} + <button id="more-results" class="ui-button ui-state-default ui-corner-all">{'General_Details'|translate}</button> + {/if} + </p> + {/if} - {if count($warningMessages) > 0} - <p><i>{$warningMessages[0]}</i> - {if count($warningMessages) > 1} - <button id="more-results" class="ui-button ui-state-default ui-corner-all">{'General_Details'|translate}</button> - {/if} - </p> - {/if} - - {if $coreToUpdate || count($pluginNamesToUpdate) > 0} - <br /> - <form action="index.php" id="upgradeCorePluginsForm"> - <input type="hidden" name="updateCorePlugins" value="1" /> - {if count($queries) == 1} - <input type="submit" class="submit" value="{'CoreUpdater_ContinueToPiwik'|translate}" /> - {else} - <input type="submit" class="submit" value="{'CoreUpdater_UpgradePiwik'|translate}" /> - {/if} - </form> - {else} - {if count($warningMessages) == 0} - <p class="success">{'CoreUpdater_PiwikHasBeenSuccessfullyUpgraded'|translate}</p> - {/if} - - <br /> - <form action="index.php"> - <input type="submit" class="submit" value="{'CoreUpdater_ContinueToPiwik'|translate}" /> - </form> - {/if} + {if $coreToUpdate || count($pluginNamesToUpdate) > 0} + <br/> + <form action="index.php" id="upgradeCorePluginsForm"> + <input type="hidden" name="updateCorePlugins" value="1"/> + {if count($queries) == 1} + <input type="submit" class="submit" value="{'CoreUpdater_ContinueToPiwik'|translate}"/> + {else} + <input type="submit" class="submit" value="{'CoreUpdater_UpgradePiwik'|translate}"/> + {/if} + </form> + {else} + {if count($warningMessages) == 0} + <p class="success">{'CoreUpdater_PiwikHasBeenSuccessfullyUpgraded'|translate}</p> + {/if} + <br/> + <form action="index.php"> + <input type="submit" class="submit" value="{'CoreUpdater_ContinueToPiwik'|translate}"/> + </form> + {/if} {/if} {include file="Installation/templates/integrityDetails.tpl"} {literal} -<style type="text/css"> -code { - background-color:#F0F7FF; - border: 1px dashed #00008B; - border-left: 5px solid; - direction:ltr; - display:block; - margin:2px 2px 20px; - padding:4px; - text-align:left; -} -li { - margin-top:10px; - margin-left:30px; -} -</style> -<script type="text/javascript"> -$(document).ready(function() { - $('#showSql').click( function () { - $('#sqlQueries').toggle(); - }); - $('#upgradeCorePluginsForm').submit(function(){ - $('input[type=submit]', this).prop('disabled', 'disabled'); - }); -}); -</script> + <style type="text/css"> + code { + background-color: #F0F7FF; + border: 1px dashed #00008B; + border-left: 5px solid; + direction: ltr; + display: block; + margin: 2px 2px 20px; + padding: 4px; + text-align: left; + } + + li { + margin-top: 10px; + margin-left: 30px; + } + </style> + <script type="text/javascript"> + $(document).ready(function () { + $('#showSql').click(function () { + $('#sqlQueries').toggle(); + }); + $('#upgradeCorePluginsForm').submit(function () { + $('input[type=submit]', this).prop('disabled', 'disabled'); + }); + }); + </script> {/literal} {include file="CoreUpdater/templates/footer.tpl"} |