diff options
-rw-r--r-- | admin/include/plugins.class.php | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/admin/include/plugins.class.php b/admin/include/plugins.class.php index 45de49a01..27a458d7d 100644 --- a/admin/include/plugins.class.php +++ b/admin/include/plugins.class.php @@ -556,12 +556,19 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\''; function plugin_version_compare($a, $b) { if (strtolower($a) == 'auto') return false; - - $pattern = array('/([a-z])/ei', '/\.+/', '/\.\Z|\A\./'); - $replacement = array( "'.'.intval('\\1', 36).'.'", '.', ''); - - $array = preg_replace($pattern, $replacement, array($a, $b)); - + + $array = preg_replace( + array('/\.+/', '/\.\Z|\A\./'), + array('.', ''), + array($a, $b) + ); + + $array = preg_replace_callback( + '/([a-z])/i', + create_function('$m', 'return intval($m[1], 36);'), + $array + ); + return version_compare($array[0], $array[1], '>='); } |