From 4d8ac1e8c72c43fbb562ccce9844a10942670a62 Mon Sep 17 00:00:00 2001 From: Rasmus Fuhse <fuhse@data-quest.de> Date: Fri, 26 Feb 2016 11:59:30 +0100 Subject: [PATCH] re #63: studipMaxVersion at least as high as minVersion and prevent unnecessary new zipping of unchanged plugin --- classes/MarketRelease.class.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/classes/MarketRelease.class.php b/classes/MarketRelease.class.php index 795583d..5146e59 100755 --- a/classes/MarketRelease.class.php +++ b/classes/MarketRelease.class.php @@ -56,7 +56,7 @@ class MarketRelease extends SimpleORMap { } else { $plugin_dir = $tmp_folder; } - $this->installFromDirectory($plugin_dir); + $this->installFromDirectory($plugin_dir, $file); rmdirr($tmp_folder); unlink($file); @@ -111,7 +111,7 @@ class MarketRelease extends SimpleORMap { return md5($this->getId()."-".$this['mkdate']); } - protected function installFromDirectory($dir) { + protected function installFromDirectory($dir, $originalfile = null) { $manifest = PluginManager::getInstance()->getPluginManifest($dir); if ($manifest['pluginclassname']) { $this->plugin['pluginclassname'] = $manifest['pluginclassname']; @@ -125,9 +125,11 @@ class MarketRelease extends SimpleORMap { = $this['studip_max_version'] = array_pop($versions).".99"; if (!$this['studip_max_version']) { - PageLayout::postMessage(MessageBox::info(sprintf(_("Die studipMaxversion wurde auf %s gesetzt, da keine andere angegeben wurde."), $manifest['studipMaxVersion']))); + PageLayout::postMessage(MessageBox::info(sprintf(_("Die studipMaxVersion wurde auf %s gesetzt, da keine andere angegeben wurde."), $manifest['studipMaxVersion']))); } - + } + if (version_compare($this['studip_min_version'], $this['studip_max_version'], ">")) { + $this['studip_max_version'] = $this['studip_min_version']; } $this['version'] = $manifest['version']; if ($this['repository_overwrites_descriptionfrom']) { @@ -150,7 +152,11 @@ class MarketRelease extends SimpleORMap { $plugin_raw = $GLOBALS['TMP_PATH']."/plugin_$hash.zip"; create_zip_from_directory($dir, $plugin_raw); - copy($plugin_raw, $this->getFilePath()); + if ($manifest['studipMaxVersion'] !== $this['studip_max_version']) { + copy($plugin_raw, $this->getFilePath()); + } else { + copy($originalfile, $this->getFilePath()); + } unlink($plugin_raw); return true; } -- GitLab