update Piwik to version 2.16 (fixes #91)

This commit is contained in:
oliver 2016-04-10 18:55:57 +02:00
commit d885a4baa9
5833 changed files with 418860 additions and 226988 deletions

View file

@ -1,6 +1,6 @@
<?php
/**
* Piwik - Open source web analytics
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
@ -8,19 +8,19 @@
*/
namespace Piwik\Plugins\CorePluginsAdmin;
use Piwik\Container\StaticContainer;
use Piwik\Filechecks;
use Piwik\Filesystem;
use Piwik\Piwik;
use Piwik\SettingsPiwik;
use Piwik\Unzip;
use Piwik\Plugin\Dependency as PluginDependency;
use Piwik\Unzip;
/**
*
*/
class PluginInstaller
{
const PATH_TO_DOWNLOAD = '/tmp/latest/plugins/';
const PATH_TO_DOWNLOAD = '/latest/plugins/';
const PATH_TO_EXTRACT = '/plugins/';
private $pluginName;
@ -32,11 +32,10 @@ class PluginInstaller
public function installOrUpdatePluginFromMarketplace()
{
$tmpPluginZip = PIWIK_USER_PATH . self::PATH_TO_DOWNLOAD . $this->pluginName . '.zip';
$tmpPluginFolder = PIWIK_USER_PATH . self::PATH_TO_DOWNLOAD . $this->pluginName;
$tmpPluginPath = StaticContainer::get('path.tmp') . '/latest/plugins/';
$tmpPluginZip = SettingsPiwik::rewriteTmpPathWithHostname($tmpPluginZip);
$tmpPluginFolder = SettingsPiwik::rewriteTmpPathWithHostname($tmpPluginFolder);
$tmpPluginZip = $tmpPluginPath . $this->pluginName . '.zip';
$tmpPluginFolder = $tmpPluginPath . $this->pluginName;
try {
$this->makeSureFoldersAreWritable();
@ -48,6 +47,8 @@ class PluginInstaller
$this->makeSureThereAreNoMissingRequirements($metadata);
$this->copyPluginToDestination($tmpPluginFolder);
Filesystem::deleteAllCacheOnUpdate($this->pluginName);
} catch (\Exception $e) {
$this->removeFileIfExists($tmpPluginZip);
@ -62,8 +63,7 @@ class PluginInstaller
public function installOrUpdatePluginFromFile($pathToZip)
{
$tmpPluginFolder = PIWIK_USER_PATH . self::PATH_TO_DOWNLOAD . $this->pluginName;
$tmpPluginFolder = SettingsPiwik::rewriteTmpPathWithHostname($tmpPluginFolder);
$tmpPluginFolder = StaticContainer::get('path.tmp') . self::PATH_TO_DOWNLOAD . $this->pluginName;
try {
$this->makeSureFoldersAreWritable();
@ -78,6 +78,8 @@ class PluginInstaller
$this->fixPluginFolderIfNeeded($tmpPluginFolder);
$this->copyPluginToDestination($tmpPluginFolder);
Filesystem::deleteAllCacheOnUpdate($this->pluginName);
} catch (\Exception $e) {
$this->removeFileIfExists($pathToZip);
@ -94,7 +96,10 @@ class PluginInstaller
private function makeSureFoldersAreWritable()
{
Filechecks::dieIfDirectoriesNotWritable(array(self::PATH_TO_DOWNLOAD, self::PATH_TO_EXTRACT));
Filechecks::dieIfDirectoriesNotWritable(array(
StaticContainer::get('path.tmp') . self::PATH_TO_DOWNLOAD,
self::PATH_TO_EXTRACT
));
}
private function downloadPluginFromMarketplace($pluginZipTargetFile)
@ -151,7 +156,7 @@ class PluginInstaller
private function makeSureThereAreNoMissingRequirements($metadata)
{
$requires = array();
if(!empty($metadata->require)) {
if (!empty($metadata->require)) {
$requires = (array) $metadata->require;
}
@ -161,8 +166,14 @@ class PluginInstaller
if (!empty($missingDependencies)) {
$message = '';
foreach ($missingDependencies as $dep) {
$params = array(ucfirst($dep['requirement']), $dep['actualVersion'], $dep['requiredVersion']);
$message .= Piwik::translate('CorePluginsAdmin_MissingRequirementsNotice', $params);
if (empty($dep['actualVersion'])) {
$params = array(ucfirst($dep['requirement']), $dep['requiredVersion'], $metadata->name);
$message .= Piwik::translate('CorePluginsAdmin_MissingRequirementsPleaseInstallNotice', $params);
} else {
$params = array(ucfirst($dep['requirement']), $dep['actualVersion'], $dep['requiredVersion']);
$message .= Piwik::translate('CorePluginsAdmin_MissingRequirementsNotice', $params);
}
}
throw new PluginInstallerException($message);