aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
Diffstat (limited to 'admin')
-rw-r--r--admin/include/plugins.class.php21
1 files changed, 15 insertions, 6 deletions
diff --git a/admin/include/plugins.class.php b/admin/include/plugins.class.php
index 88971b000..71093a6c1 100644
--- a/admin/include/plugins.class.php
+++ b/admin/include/plugins.class.php
@@ -152,17 +152,27 @@ INSERT INTO '. PLUGINS_TABLE .' (id,version)
case 'update':
$previous_version = $this->fs_plugins[$plugin_id]['version'];
- $upgrade_status = $this->extract_plugin_files('upgrade', $options['revision'], $plugin_id);
+ $errors[0] = $this->extract_plugin_files('upgrade', $options['revision'], $plugin_id);
- if ($upgrade_status === 'ok')
+ if ($errors[0] === 'ok')
{
$this->get_fs_plugin($plugin_id); // refresh plugins list
+ $new_version = $this->fs_plugins[$plugin_id]['version'];
$plugin_maintain = self::build_maintain_class($plugin_id);
- $plugin_maintain->update($previous_version, $this->fs_plugins[$plugin_id]['version']);
+ $plugin_maintain->update($previous_version, $new_version, $errors);
+
+ if ($new_version != 'auto')
+ {
+ $query = '
+UPDATE '. PLUGINS_TABLE .'
+ SET version=\''. $new_version .'\'
+ WHERE id=\''. $plugin_id .'\'
+;';
+ pwg_query($query);
+ }
}
- return $upgrade_status;
break;
case 'activate':
@@ -186,8 +196,7 @@ INSERT INTO '. PLUGINS_TABLE .' (id,version)
{
$query = '
UPDATE '. PLUGINS_TABLE .'
- SET state=\'active\',
- version=\''. $this->fs_plugins[$plugin_id]['version'] .'\'
+ SET state=\'active\'
WHERE id=\''. $plugin_id .'\'
;';
pwg_query($query);