Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CoreUpdater/Controller.php')
-rw-r--r--plugins/CoreUpdater/Controller.php58
1 files changed, 41 insertions, 17 deletions
diff --git a/plugins/CoreUpdater/Controller.php b/plugins/CoreUpdater/Controller.php
index 824e8a73f2..266121356e 100644
--- a/plugins/CoreUpdater/Controller.php
+++ b/plugins/CoreUpdater/Controller.php
@@ -88,7 +88,7 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller
Piwik::checkDirectoriesWritableOrDie( array(self::PATH_TO_EXTRACT_LATEST_VERSION) );
// we catch exceptions in the caller (i.e., oneClickUpdate)
- $fetched = Piwik::fetchRemoteFile(self::LATEST_PIWIK_URL, $this->pathPiwikZip);
+ $fetched = Piwik_Http::fetchRemoteFile(self::LATEST_PIWIK_URL, $this->pathPiwikZip);
}
private function oneClick_Unpack()
@@ -139,6 +139,11 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller
private function oneClick_Copy()
{
/*
+ * Overwrite the downloaded robots.txt with our local copy
+ */
+ Piwik::copy(PIWIK_DOCUMENT_ROOT . '/robots.txt', $this->pathRootExtractedPiwik . '/robots.txt');
+
+ /*
* Copy all files to PIWIK_INCLUDE_PATH.
* These files are accessed through the dispatcher.
*/
@@ -185,17 +190,29 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller
{
}
- public function runUpdaterAndExit($updater, $componentsWithUpdateFile)
+ public function index()
{
- if(empty($componentsWithUpdateFile))
+ $language = Piwik_Common::getRequestVar('language', '');
+ if(!empty($language))
{
- return;
+ Piwik_LanguagesManager_API::getInstance()->setLanguageForSession($language);
}
+ $this->runUpdaterAndExit();
+ }
- if(Piwik::isPhpCliMode())
+ protected function runUpdaterAndExit()
+ {
+ $updater = new Piwik_Updater();
+ $componentsWithUpdateFile = Piwik_CoreUpdater::getComponentUpdates($updater);
+ if(empty($componentsWithUpdateFile))
+ {
+ Piwik::redirectToModule('CoreHome');
+ }
+
+ Piwik::setMaxExecutionTime(0);
+
+ if(Piwik_Common::isPhpCliMode())
{
- Piwik::setMaxExecutionTime(0);
-
$view = Piwik_View::factory('update_welcome');
$this->doWelcomeUpdates($view, $componentsWithUpdateFile);
@@ -207,12 +224,14 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller
}
else if(Piwik_Common::getRequestVar('updateCorePlugins', 0, 'integer') == 1)
{
+ $this->warningMessages = array();
$view = Piwik_View::factory('update_database_done');
$this->doExecuteUpdates($view, $updater, $componentsWithUpdateFile);
}
else
{
$view = Piwik_View::factory('update_welcome');
+ $view->queries = $updater->getSqlQueriesToExecute();
$this->doWelcomeUpdates($view, $componentsWithUpdateFile);
}
exit;
@@ -221,13 +240,12 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller
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
- $tablesInstalled = Piwik::getTablesInstalled();
- if(count($tablesInstalled) == 0)
+ if(!Piwik::isInstalled())
{
$this->errorMessages[] = Piwik_Translate('CoreUpdater_EmptyDatabaseError', Zend_Registry::get('config')->database->dbname);
$this->coreError = true;
@@ -254,7 +272,20 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller
}
}
}
+
+ // 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));
+ }
+
$view->coreError = $this->coreError;
+ $view->warningMessages = $this->warningMessages;
$view->errorMessages = $this->errorMessages;
$view->current_piwik_version = $currentVersion;
$view->pluginNamesToUpdate = $pluginNamesToUpdate;
@@ -300,11 +331,4 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller
}
}
}
-
- public function saveLanguage()
- {
- $language = Piwik_Common::getRequestVar('language');
- Piwik_LanguagesManager_API::setLanguageForSession($language);
- Piwik_Url::redirectToReferer();
- }
}