]> git.mxchange.org Git - mailer.git/commitdiff
Rewrites/fixes for depending extension updates
authorRoland Häder <roland@mxchange.org>
Tue, 12 Jul 2011 14:00:20 +0000 (14:00 +0000)
committerRoland Häder <roland@mxchange.org>
Tue, 12 Jul 2011 14:00:20 +0000 (14:00 +0000)
inc/extensions-functions.php

index da77d2f802cb47b02330883aa41d8af65561d07d..40be9d52b49d7aa9846d4dd083e45fcdca445d1a 100644 (file)
@@ -652,9 +652,9 @@ function getExtensionVersion ($ext_name, $force = false) {
 }
 
 // Updates a given extension with current extension version to latest version
-function updateExtension ($ext_name, $ext_ver, $dry_run = false) {
+function updateExtension ($ext_name, $ext_ver, $dry_run = false, $ignoreDependencies = false) {
        // Only admins are allowed to update extensions
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ' - ENTERED!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ',ignoreDependencies=' . intval($ignoreDependencies) . ' - ENTERED!');
        if ((!isAdmin()) || (empty($ext_name))) {
                // Called as non-admin or empty extension
                debug_report_bug(__FUNCTION__, __LINE__, 'Called as non-admin (isAdmin()=' . intval(isAdmin()) . '), or empty extension name. ext_name=' . $ext_name);
@@ -664,7 +664,7 @@ function updateExtension ($ext_name, $ext_ver, $dry_run = false) {
        setCurrentExtensionName($ext_name);
 
        // Is this extension update already running?
-       if ((isExtensionUpdateRunning($ext_name)) && ($dry_run === false)) {
+       if ((isExtensionUpdateRunning($ext_name, $ignoreDependencies)) && ($dry_run === false)) {
                // This is fine but needs logging ATM
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in update phase, all fine.');
                ///* BUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in update phase, please investigate!');
@@ -720,7 +720,7 @@ function updateExtension ($ext_name, $ext_ver, $dry_run = false) {
                                                // Is the extension there?
                                                if (isExtensionInstalled($ext_depend)) {
                                                        // Update another extension first!
-                                                       $processResult = updateExtension($ext_depend, getExtensionVersion($ext_depend), isExtensionDryRun());
+                                                       $processResult = updateExtension($ext_depend, getExtensionVersion($ext_depend), isExtensionDryRun(), true);
                                                } else {
                                                        // Register new extension
                                                        $processResult = registerExtension($ext_depend, 0, isExtensionDryRun());
@@ -760,7 +760,7 @@ function updateExtension ($ext_name, $ext_ver, $dry_run = false) {
                } // END - if
        } // END - if
 
-       //* DEBUG: */logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ' - EXIT!');
+       //* DEBUG: */logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ',ignoreDependencies=' . intval($ignoreDependencies) . ' - EXIT!');
 }
 
 // Output verbose SQL table for extension
@@ -1307,9 +1307,9 @@ function isExtensionUpdateDependenciesInitialized () {
 }
 
 // Checks wether an update is already running for given extension
-function isExtensionUpdateRunning ($ext_name) {
+function isExtensionUpdateRunning ($ext_name, $ignoreDependencies = false) {
        // Current and given extensions means whole array
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ' - ENTERED!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies) . ' - ENTERED!');
        if ($ext_name == getCurrentExtensionName()) {
                // Default is not found
                $isRunning = false;
@@ -1318,16 +1318,16 @@ function isExtensionUpdateRunning ($ext_name) {
                foreach ($GLOBALS['ext_running_updates'] as $ext1=>$depends) {
                        // Is it found?
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext1=' . $ext1 . ',ext_name=' . $ext_name . ',depends=' . print_r($depends, true));
-                       if (($ext1 == $ext_name) || (in_array($ext_name, $depends))) {
+                       if (($ext1 == $ext_name) || ((in_array($ext_name, $depends)) && ($ignoreDependencies === false))) {
                                // Found
                                $isRunning = true;
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext1=' . $ext1 . ',ext_name=' . $ext_name . ',isRunning=true - ADDED!');
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext1=' . $ext1 . ',ext_name=' . $ext_name . ',isRunning=true - FOUND!');
                                break;
                        } // END - if
                } // END - foreach
 
                // Return result
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ', isRunning=' . intval($isRunning) . ' - ALT-EXIT!');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies) . ', isRunning=' . intval($isRunning) . ' - ALT-EXIT!');
                return $isRunning;
        } // END - if
 
@@ -1335,7 +1335,7 @@ function isExtensionUpdateRunning ($ext_name) {
        $isRunning = ((isExtensionUpdateDependenciesInitialized()) && (in_array($ext_name, getExtensionRunningUpdates())));
 
        // Return it
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ', isRunning=' . intval($isRunning) . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies) . ', isRunning=' . intval($isRunning) . ' - EXIT!');
        return $isRunning;
 }
 
@@ -1425,8 +1425,8 @@ function getExtensionVersionHistory () {
 
 // Setter for EXT_UPDATE_NOTES
 function setExtensionUpdateNotes ($updateNotes, $ext_ver = '') {
-       // . '/' . getCurrentExtensionVersion()
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()=' . getCurrentExtensionName() . ',getExtensionMode()=' . getExtensionMode() . ',ext_ver=' . $ext_ver . ',updateNotes()=' . strlen($updateNotes));
+       //
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()=' . getCurrentExtensionName() . ',getExtensionMode()=' . getExtensionMode() . ',ext_ver=' . $ext_ver . '/' . getCurrentExtensionVersion() . ',updateNotes()=' . strlen($updateNotes));
        if (empty($ext_ver)) {
                $GLOBALS['ext_update_notes'][getCurrentExtensionName()][getCurrentExtensionVersion()] = (string) $updateNotes;
        } else {
@@ -1945,7 +1945,7 @@ function addConfigChangeSql ($oldColumnName, $newColumnName, $columnSql) {
 // @TODO This should be rewrittten to allow, more development states, e.g. 'planing','alpha','beta','beta2','stable'
 function enableExtensionProductive ($isProductive = true) {
        // Log debug message
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("ext_name=%s,isProductive=%d", getCurrentExtensionName(), intval($isProductive)));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',isProductive=', intval($isProductive));
 
        // Set it
        $GLOBALS['ext_productive'][getCurrentExtensionName()] = (bool) $isProductive;
@@ -1959,6 +1959,7 @@ function isExtensionProductive ($ext_name = '') {
                // Get current extension name
                $ext_name = getCurrentExtensionName();
        } // END - if
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - ENTERED!');
 
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$ext_name])) {
@@ -1972,10 +1973,8 @@ function isExtensionProductive ($ext_name = '') {
                $GLOBALS[__FUNCTION__][$ext_name] = ((isset($GLOBALS['ext_productive'][$ext_name])) && ($GLOBALS['ext_productive'][$ext_name] === true));
        } // END - if
 
-       // Log debug message
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("ext_name=%s,isProductive=%s", $ext_name, intval($GLOBALS[__FUNCTION__][$ext_name])));
-
        // Return result
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',isProductive=', intval($GLOBALS[__FUNCTION__][$ext_name]) . ' - EXIT!');
        return $GLOBALS[__FUNCTION__][$ext_name];
 }
 
@@ -1988,7 +1987,7 @@ function markExtensionAsLoaded ($ext_name) {
        } // END - if
 
        // Mark it
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("ext_name=%s,ext_loaded=true", $ext_name));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_loaded=true');
        $GLOBALS['ext_loaded']['ext_name'][$ext_name] = true;
 }