]> git.mxchange.org Git - mailer.git/commitdiff
Use version_compare(), unregister only registered filters:
authorRoland Häder <roland@mxchange.org>
Wed, 7 Nov 2012 19:38:25 +0000 (19:38 +0000)
committerRoland Häder <roland@mxchange.org>
Wed, 7 Nov 2012 19:38:25 +0000 (19:38 +0000)
- The old version comparison is not really safe, so better use version_compare()
  with third parameter (compare operator)
- Now only registered extensions will be unregistered, as this would needlessly
  delete filter cache file

inc/extensions-functions.php
inc/filter-functions.php
inc/wrapper-functions.php

index 2d399daf117a63d0dcb87dbb1f32948e9bfcfeb9..013babf309816f88a153250986a7f888633d97f7 100644 (file)
@@ -998,15 +998,14 @@ function doDeactivateExtension ($ext_name, $inRebuild = FALSE) {
 
 // Checks whether the extension is older than given
 function isExtensionOlder ($ext_name, $ext_ver) {
-       // Get current extension version
-       $currVersion = getExtensionVersion($ext_name);
-
-       // Remove all dots from both versions
-       $currVersion = str_replace('.', '', $currVersion);
-       $ext_ver = str_replace('.', '', $ext_ver);
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__][$ext_name][$ext_ver])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__][$ext_name][$ext_ver] = (version_compare(getExtensionVersion($ext_name), $ext_ver, '<') === TRUE);
+       } // END - if
 
-       // Now compare both and return the result
-       return ($currVersion < $ext_ver);
+       // Return cache
+       return $GLOBALS[__FUNCTION__][$ext_name][$ext_ver];
 }
 
 // Creates a new task for updated extension
index 5a748914271a1b72ac1c609a5df4f6409992bc4e..8a11ac1067ff705a7b10e08f3977a0474b695407 100644 (file)
@@ -263,7 +263,7 @@ function unregisterFilter ($F, $L, $filterName, $filterFunction, $force = FALSE,
        } // END - if
 
        // Shall we remove? (default, not while just showing an extension removal)
-       if ($isDryRun === FALSE) {
+       if (($isDryRun === FALSE) && (isset($GLOBALS['cache_array']['filter']['chains'][$filterName][$filterFunction]))) {
                // Mark for filter removal
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'F=' . $F . ',L=' . $L . ',filterName=' . $filterName . ',filterFunction=' . $filterFunction . ' - REMOVE!');
                $GLOBALS['cache_array']['filter']['chains'][$filterName][$filterFunction] = 'R';
index e0569e68e6ca0bb120abf5840a2028550a5b4af1..3cb81135295da53ba448a3553550f630b3826509 100644 (file)
@@ -756,35 +756,35 @@ function redirectToDereferedUrl ($url) {
 }
 
 // Wrapper function for checking if extension is installed and newer or same version
-function isExtensionInstalledAndNewer ($ext_name, $version) {
+function isExtensionInstalledAndNewer ($ext_name, $ext_ver) {
        // Is an cache entry found?
-       if (!isset($GLOBALS[__FUNCTION__][$ext_name][$version])) {
+       if (!isset($GLOBALS[__FUNCTION__][$ext_name][$ext_ver])) {
                // Determine it
-               $GLOBALS[__FUNCTION__][$ext_name][$version] = ((isExtensionInstalled($ext_name)) && (getExtensionVersion($ext_name) >= $version));
+               $GLOBALS[__FUNCTION__][$ext_name][$ext_ver] = ((isExtensionInstalled($ext_name)) && (version_compare(getExtensionVersion($ext_name), $ext_ver, '>=') === TRUE));
        } else {
                // Cache hits should be incremented twice
                incrementStatsEntry('cache_hits', 2);
        }
 
        // Return it
-       //* DEBUG: */ debugOutput(__FUNCTION__ . ':' . $ext_name . '=&gt;' . $version . ':' . intval($GLOBALS[__FUNCTION__][$ext_name][$version]));
-       return $GLOBALS[__FUNCTION__][$ext_name][$version];
+       //* DEBUG: */ debugOutput(__FUNCTION__ . ':' . $ext_name . '=&gt;' . $ext_ver . ':' . intval($GLOBALS[__FUNCTION__][$ext_name][$ext_ver]));
+       return $GLOBALS[__FUNCTION__][$ext_name][$ext_ver];
 }
 
 // Wrapper function for checking if extension is installed and older than given version
-function isExtensionInstalledAndOlder ($ext_name, $version) {
+function isExtensionInstalledAndOlder ($ext_name, $ext_ver) {
        // Is an cache entry found?
-       if (!isset($GLOBALS[__FUNCTION__][$ext_name][$version])) {
+       if (!isset($GLOBALS[__FUNCTION__][$ext_name][$ext_ver])) {
                // Determine it
-               $GLOBALS[__FUNCTION__][$ext_name][$version] = ((isExtensionInstalled($ext_name)) && (isExtensionOlder($ext_name, $version)));
+               $GLOBALS[__FUNCTION__][$ext_name][$ext_ver] = ((isExtensionInstalled($ext_name)) && (isExtensionOlder($ext_name, $ext_ver)));
        } else {
                // Cache hits should be incremented twice
                incrementStatsEntry('cache_hits', 2);
        }
 
        // Return it
-       //* DEBUG: */ debugOutput(__FUNCTION__ . ':' . $ext_name . '&lt;' . $version . ':' . intval($GLOBALS[__FUNCTION__][$ext_name][$version]));
-       return $GLOBALS[__FUNCTION__][$ext_name][$version];
+       //* DEBUG: */ debugOutput(__FUNCTION__ . ':' . $ext_name . '&lt;' . $ext_ver . ':' . intval($GLOBALS[__FUNCTION__][$ext_name][$ext_ver]));
+       return $GLOBALS[__FUNCTION__][$ext_name][$ext_ver];
 }
 
 // Set username