X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fextensions-functions.php;h=229277c0a312c9005d895b73ab04a8b26197da8d;hb=9b06a0b9b72fbdaf5bf638df82ae37c56a5654cb;hp=d1c46faf4268dd058cbff96565b9b3b3cff96954;hpb=98e44adab9035e30efe78181b76d78c6e13ba574;p=mailer.git diff --git a/inc/extensions-functions.php b/inc/extensions-functions.php index d1c46faf42..229277c0a3 100644 --- a/inc/extensions-functions.php +++ b/inc/extensions-functions.php @@ -199,8 +199,8 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates // When this extension is already in registration/update phase, all is fine if ((isExtensionRegistrationRunning($ext_name)) || ((isExtensionUpdateRunning($ext_name)) && ($ignoreUpdates === false))) { // Then abort here with 'true' becaus it is fine - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine.'); - ///* BUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId=' . $taskId . ',dry_run=' . intval($dry_run) . ' - Please investigate!'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,taskId=' . $taskId . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates)); + ///* BUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId=' . $taskId . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!'); return true; } // END - if @@ -359,7 +359,7 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) { // New way, with CSS //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getThisExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion() . 'ext_css=' . getExtensionHasCss()); - SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`, `ext_active`, `ext_version`,`ext_has_css`) VALUES ('%s','%s','%s','%s')", + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`,`ext_active`,`ext_version`,`ext_has_css`) VALUES ('%s','%s','%s','%s')", array( getCurrentExtensionName(), getThisExtensionAlwaysActive(), @@ -369,7 +369,7 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates } else { // Old way, no CSS //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getThisExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion()); - SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`, `ext_active`, `ext_version`) VALUES ('%s','%s','%s')", + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`,`ext_active`,`ext_version`) VALUES ('%s','%s','%s')", array( getCurrentExtensionName(), getThisExtensionAlwaysActive(), @@ -613,7 +613,7 @@ function getExtensionVersion ($ext_name, $force = false) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - Checking cache ...'); if (isset($GLOBALS['cache_array']['extension']['ext_version'][$ext_name])) { // Load data from cache - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ': CACHE!'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - CACHE!'); $data['ext_version'] = $GLOBALS['cache_array']['extension']['ext_version'][$ext_name]; // Count cache hits @@ -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,9 +664,10 @@ function updateExtension ($ext_name, $ext_ver, $dry_run = false) { setCurrentExtensionName($ext_name); // Is this extension update already running? - if (isExtensionUpdateRunning($ext_name)) { + 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!'); return true; } // END - if @@ -719,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()); @@ -727,11 +728,11 @@ function updateExtension ($ext_name, $ext_ver, $dry_run = false) { } // END - if } // END - foreach - // Set extension version here - setCurrentExtensionVersion($ext_ver); - // Set name back setCurrentExtensionName($ext_name); + + // Set extension version here + setCurrentExtensionVersion($ext_ver); } // END - if // Add notes @@ -759,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 @@ -1306,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; @@ -1317,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=' . intval($isRunning) . ' - 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) . ' - EXIT!'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies) . ', isRunning=' . intval($isRunning) . ' - ALT-EXIT!'); return $isRunning; } // END - if @@ -1334,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; } @@ -1424,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 { @@ -1792,7 +1793,7 @@ function addAdminMenuSql ($action, $what, $title, $descr, $sort) { // Is what null? if (is_null($what)) { // Add main menu - $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES('%s',NULL,'%s','%s',%s)", + $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('%s',NULL,'%s','%s',%s)", $action, $title, $descr, @@ -1800,7 +1801,7 @@ function addAdminMenuSql ($action, $what, $title, $descr, $sort) { ); } else { // Add sub menu - $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES('%s','%s','%s','%s',%s)", + $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('%s','%s','%s','%s',%s)", $action, $what, $title, @@ -1824,14 +1825,14 @@ function addGuestMenuSql ($action, $what, $title, $sort) { // Is what null? if (is_null($what)) { // Add main menu - $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s',NULL,'%s','N','Y',%s)", + $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('%s',NULL,'%s','N','Y',%s)", $action, $title, bigintval($sort) ); } else { // Add sub menu - $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s','%s','%s','N','Y',%s)", + $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('%s','%s','%s','N','Y',%s)", $action, $what, $title, @@ -1843,7 +1844,7 @@ function addGuestMenuSql ($action, $what, $title, $sort) { addExtensionSql($sql); } elseif (isDebugModeEnabled()) { // Double menus should be located and fixed! - logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double guest menu action=%s,what=%s,title=%s,locked=%s,visible=%s detected.", $action, $what, $title, $locked, $visible)); + logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double guest menu action=%s,what=%s,title=%s detected.", $action, $what, $title)); } } @@ -1854,14 +1855,14 @@ function addMemberMenuSql ($action, $what, $title, $sort) { // Is what null? if (is_null($what)) { // Add main menu - $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s',NULL,'%s','N','Y',%s)", + $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('%s',NULL,'%s','N','Y',%s)", $action, $title, bigintval($sort) ); } else { // Add sub menu - $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES('%s','%s','%s','N','Y',%s)", + $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('%s','%s','%s','N','Y',%s)", $action, $what, $title, @@ -1873,7 +1874,7 @@ function addMemberMenuSql ($action, $what, $title, $sort) { addExtensionSql($sql); } elseif (isDebugModeEnabled()) { // Double menus should be located and fixed! - logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double member menu action=%s,what=%s,title=%s,visivle=%s,locked=%s detected.", $action, $what, $title, $visible, $locked)); + logDebugMessage(__FUNCTION__, __LINE__, sprintf("Double member menu action=%s,what=%s,title=%s detected.", $action, $what, $title)); } } @@ -1884,7 +1885,7 @@ function addSponsorMenuSql ($action, $what, $title, $active, $sort) { // Is what null? if (is_null($what)) { // Add main menu - $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_menu` (`action`,`what`,`title`,`active`,`sort`) VALUES('%s',NULL,'%s','%s',%s)", + $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_menu` (`action`,`what`,`title`,`active`,`sort`) VALUES ('%s',NULL,'%s','%s',%s)", $action, $title, $active, @@ -1892,7 +1893,7 @@ function addSponsorMenuSql ($action, $what, $title, $active, $sort) { ); } else { // Add sub menu - $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_menu` (`action`,`what`,`title`,`active`,`sort`) VALUES('%s','%s','%s','%s',%s)", + $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_menu` (`action`,`what`,`title`,`active`,`sort`) VALUES ('%s','%s','%s','%s',%s)", $action, $what, $title, @@ -1944,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; @@ -1958,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])) { @@ -1971,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]; } @@ -1987,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; }