X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fextensions.php;h=b480c0e5a49c4d5b016ce7330b51cc3729bd2752;hp=50820f59487c26cde3fe1cd6b96fba6b129bcdbe;hb=2cce06a4f4ff6bdbf0a14dcf7d2a89944b472c69;hpb=23f39916099dad094d2d2b0fe54d335bddc986db diff --git a/inc/extensions.php b/inc/extensions.php index 50820f5948..b480c0e5a4 100644 --- a/inc/extensions.php +++ b/inc/extensions.php @@ -55,51 +55,48 @@ function EXTENSION_REGISTER ($ext_name, $id, $dry_run=false) $file = sprintf("%sinc/extensions/ext-%s.php", PATH, $ext_name); // Does this extension exists? - if (FILE_READABLE($file)) - { + if (FILE_READABLE($file)) { // Extension was found so we can load it in registration mode require($file); // And run possible updates $EXT_LOAD_MODE = "update"; $EXT_UPDATE_DEPENDS = ""; - foreach ($EXT_VER_HISTORY as $EXT_VER) - { + foreach ($EXT_VER_HISTORY as $EXT_VER) { + // Load extension in update mode require($file); - if (((GET_EXT_VERSION("sql_patches") != '') && ($_CONFIG['verbose_sql'] == "Y")) || (!EXT_IS_ACTIVE("sql_patches"))) - { - if (!empty($UPDATE_NOTES)) - { + + // Do we have an update? + if (((GET_EXT_VERSION("sql_patches") != "") && ($_CONFIG['verbose_sql'] == "Y")) || (!EXT_IS_ACTIVE("sql_patches"))) { + if (!empty($UPDATE_NOTES)) { // Update notes found $NOTES .= "v".$EXT_VER.":
".$UPDATE_NOTES."

\n"; $UPDATE_NOTES = ""; - } - elseif (($EXT_VER == "0.0") || ($EXT_VER == "0.0.0")) - { + } elseif (($EXT_VER == "0.0") || ($EXT_VER == "0.0.0")) { // Initial release $NOTES .= "v".$EXT_VER.":
".INITIAL_RELEASE."

\n"; - } - else - { + } else { + // No update notes found! $NOTES .= "v".$EXT_VER.":
".NO_UPDATE_NOTES."

\n"; } - } - } + } // END - if + } // END - foreach // Does this extension depends on an outstanding update of another update? - if (!empty($EXT_UPDATE_DEPENDS)) - { + if (!empty($EXT_UPDATE_DEPENDS)) { // Backup SQL commands and clear current - $SQLs2 = $SQLs; $SQLs = array(); $test = false; + $SQLs2 = $SQLs; + $SQLs = array(); + $test = false; // Backup language as well - $LANG_BCK = $EXT_LANG_PREFIX; $EXT_ALWAYS_ACTIVE = "N"; + $LANG_BCK = $EXT_LANG_PREFIX; + $EXT_ALWAYS_ACTIVE = "N"; // Load required extension also in update mode $file = sprintf("%sinc/extensions/ext-%s.php", PATH, $EXT_UPDATE_DEPENDS); // Check for required file - if (FILE_READABLE($file)) - { + if (FILE_READABLE($file)) { // File exists so let's load it $VER_BACKUP = $EXT_VERSION; require($file); @@ -107,35 +104,35 @@ function EXTENSION_REGISTER ($ext_name, $id, $dry_run=false) // If versions mismatch update extension first $ext_ver = GET_EXT_VERSION($EXT_UPDATE_DEPENDS); - if (empty($ext_ver)) - { + + // Extension version set? + if (empty($ext_ver)) { // Extension not registered so far so first load task's ID... $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE task_type='EXTENSION' AND subject LIKE '[%s:]%%' LIMIT 1", array($EXT_UPDATE_DEPENDS), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 1) - { + + // Entry found? + if (SQL_NUMROWS($result) == 1) { // Task found so load task's ID and register extension... list($task) = SQL_FETCHROW($result); - SQL_FREERESULT($result); + + // Try to register the extension $test = EXTENSION_REGISTER($EXT_UPDATE_DEPENDS, $task, $dry_run); - } - } - elseif ($ext_ver != $EXT_VERSION) - { + } // END - if + + // Free result + SQL_FREERESULT($result); + } elseif ($ext_ver != $EXT_VERSION) { // Ok, update this extension now EXTENSION_UPDATE(basename($file), $EXT_UPDATE_DEPENDS, $ext_ver, $dry_run); // All okay! $test = true; - } - else - { + } else { // Nothing to register / update before... $test = true; } - } - else - { + } else { // Required file for update does not exists! $test = true; // But this is fine for the first time... @@ -144,9 +141,7 @@ function EXTENSION_REGISTER ($ext_name, $id, $dry_run=false) // Finally restore previous SQLs $SQLs = $SQLs2; unset($SQLs2); $EXT_LANG_PREFIX = $LANG_BCK; - } - else - { + } else { // Does not depend on an other extension $test = true; } @@ -194,7 +189,7 @@ function EXTENSION_REGISTER ($ext_name, $id, $dry_run=false) } // END - if // Register extension - $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_extensions (ext_name, ext_lang_file, ext_active, ext_version) VALUES ('%s', '%s', '%s', '%s')", + $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_extensions (ext_name, ext_lang_file, ext_active, ext_version) VALUES ('%s','%s','%s','%s')", array($ext_name, $EXT_LANG_PREFIX, $EXT_ALWAYS_ACTIVE, $EXT_VERSION), __FILE__, __LINE__); // Update task management @@ -244,7 +239,7 @@ function EXTENSION_REGISTER ($ext_name, $id, $dry_run=false) } // function EXTENSION_RUN_SQLS($id, $EXT_LOAD_MODE) { - global $cacheInstance; + global $cacheInstance, $_CONFIG; $SQLs = array(); // By default no SQL has been executed @@ -263,7 +258,7 @@ function EXTENSION_RUN_SQLS($id, $EXT_LOAD_MODE) { if (FILE_READABLE($file)) { // Load the include require($file); - } + } // END - if //* DEBUG: */ echo __FUNCTION__.":SQLs::count=".count($SQLs)."
\n"; if ((is_array($SQLs) && (sizeof($SQLs) > 0))) { @@ -408,9 +403,11 @@ function EXTENSION_UPDATE($file, $ext, $EXT_VER, $dry_run=false) // Load extension in update mode $EXT_LOAD_MODE = "update"; $EXT_UPDATE_DEPENDS = ""; $NOTES = ""; - include(PATH."inc/extensions/".$file); - if (!empty($EXT_UPDATE_DEPENDS)) - { + + // Load extension file + include(sprintf("%sinc/extensions/%s", PATH, $file)); + + if (!empty($EXT_UPDATE_DEPENDS)) { // Update another extension first! $test = EXTENSION_UPDATE(("ext-".$EXT_UPDATE_DEPENDS.".php"), $EXT_UPDATE_DEPENDS, GET_EXT_VERSION($EXT_UPDATE_DEPENDS), $dry_run); } @@ -513,7 +510,7 @@ function EXTENSION_VERBOSE_TABLE($SQLs, $title = ADMIN_SQLS_EXECUTED_ON_REMOVAL, $S = false; $SW = 2; $i = 1; $OUT = ""; - if ((is_array($SQLs)) && (GET_EXT_VERSION("sql_patches")) && ($_CONFIG['verbose_sql'] == "Y")) { + if ((is_array($SQLs)) && (GET_EXT_VERSION("sql_patches") >= "0.0.7") && ($_CONFIG['verbose_sql'] == "Y")) { $OUT = "
@@ -537,7 +534,7 @@ function EXTENSION_VERBOSE_TABLE($SQLs, $title = ADMIN_SQLS_EXECUTED_ON_REMOVAL, } } - if ((!$S) && (GET_EXT_VERSION("sql_patches")) && ($_CONFIG['verbose_sql'] == "Y")) { + if ((!$S) && (GET_EXT_VERSION("sql_patches") >= "0.0.7") && ($_CONFIG['verbose_sql'] == "Y")) { // No addional SQL commands to run $OUT .= "
@@ -607,5 +604,17 @@ function ACTIVATE_EXTENSION($ext_name) { EXTENSION_RUN_SQLS(GET_EXT_ID($ext_name), "activate"); } // END - if } +// Checks wether the extension is older than given +function EXT_VERSION_IS_OLDER ($ext_name, $ext_ver) { + // Get current extension version + $currVersion = GET_EXT_VERSION($ext_name); + + // Remove all dots from both versions + $currVersion = str_replace(".", "", $currVersion); + $ext_ver = str_replace(".", "", $ext_ver); + + // Now compare both and return the result + return ($currVersion < $ext_ver); +} // ?>