From 2990b57485a456d166fcc27ea2db38f10bf77099 Mon Sep 17 00:00:00 2001 From: Achim Ennenbach Date: Fri, 20 Jul 2018 21:25:40 +0200 Subject: [PATCH] Fixes the "dbupdate after a clean install" issue The "isset" statement tested on a key in array "core_plugins", but the keys of that array were numeric. So the "isset" was always false and the statements within the if clause were always executed. That resulted for some reason in a "false positive" on the "featurebox" plugin, in case was not installed at this moment. --- e107_handlers/plugin_class.php | 51 +++++++++++++++------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/e107_handlers/plugin_class.php b/e107_handlers/plugin_class.php index 7c5200d1b..1f7d33f21 100644 --- a/e107_handlers/plugin_class.php +++ b/e107_handlers/plugin_class.php @@ -1303,7 +1303,7 @@ class e107plugin continue; } - if(!isset($this->core_plugins[$path])) // check non-core plugins for sql file changes. + if(!is_array($path, $this->core_plugins)) // check non-core plugins for sql file changes. { $dbv->errors = array(); $dbv->compare($path); @@ -1315,40 +1315,35 @@ class e107plugin } } - // $curVal = floatval($version); - $curVal = $version; - $fileVal = $plg->getVersion(); // floatval($data['@attributes']['version']); - // $fileVal = floatval($fileVal); + $curVal = $version; + $fileVal = $plg->getVersion(); - - if($ret = $this->execute_function($path, 'upgrade', 'required', array($this, $curVal, $fileVal))) // Check {plugin}_setup.php and run a 'required' method, if true, then update is required. + if($ret = $this->execute_function($path, 'upgrade', 'required', array($this, $curVal, $fileVal))) // Check {plugin}_setup.php and run a 'required' method, if true, then update is required. + { + $mes->addDebug("Plugin Update(s) Required in ".$path."_setup.php [".$path."]"); + + if($mode === 'boolean') { - $mes->addDebug("Plugin Update(s) Required in ".$path."_seup.php [".$path."]"); + return TRUE; + } - if($mode === 'boolean') - { + $needed[$path] = $data; + } - return TRUE; - } + if(version_compare($curVal,$fileVal,"<")) // check pref version against file version. + { + $mes->addDebug("Plugin Update(s) Required - different version [".$path."]"); - $needed[$path] = $data; - } - - if(version_compare($curVal,$fileVal,"<")) // check pref version against file version. + if($mode === 'boolean') { - $mes->addDebug("Plugin Update(s) Required - different version [".$path."]"); + return TRUE; + } - if($mode === 'boolean') - { - return TRUE; - } - - // $mes->addDebug("Plugin: {$path} requires an update."); - - // $log->flushMessages(); - $needed[$path] = $data; - } + // $mes->addDebug("Plugin: {$path} requires an update."); + // $log->flushMessages(); + $needed[$path] = $data; + } } @@ -1359,8 +1354,6 @@ class e107plugin } - - if($mode === 'boolean') { return count($needed) ? true : FALSE;