X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fextensions-functions.php;h=c026edd0736736da53ba3e3ff606a9f2181f467f;hb=5ab0d021f3e96722af5d96d2b9036430200c06cb;hp=526552cd5bcec4aa2f16e65abec342f8737fba1c;hpb=1d22c70e65e858422ee0d17a7612f4b5c0757a42;p=mailer.git diff --git a/inc/extensions-functions.php b/inc/extensions-functions.php index 526552cd5b..c026edd073 100644 --- a/inc/extensions-functions.php +++ b/inc/extensions-functions.php @@ -73,7 +73,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $isDryRun = FA setCurrentExtensionVersion('0.0.0'); // Is the extension installed? - if ((isExtensionInstalled($ext_name)) && ($ext_mode != 'register')) { + if ((isExtensionInstalled($ext_name)) && ($ext_mode != 'setup')) { // Get extension's version setCurrentExtensionVersion(getExtensionVersion($ext_name)); } // END - if @@ -158,6 +158,9 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $isDryRun = FA // Include the extension file loadCurrentExtensionInclude(); + // Load extra mode files + loadCurrentExtensionModeInclude(); + // Is this extension deprecated? if ((isExtensionDeprecated()) && (!in_array(getExtensionMode(), array('test', 'update', 'deactivate'))) && (isExtensionActive($ext_name))) { // Deactivate the extension @@ -216,17 +219,17 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate } // END - if // Is the task id zero? Then we need to auto-fix it here - if ((!isTaskIdValid($taskId)) && (!isInstallationPhase())) { + if ((!isValidId($taskId)) && (!isInstallationPhase())) { // Try to find the task $taskId = determineExtensionTaskId(getCurrentExtensionName()); // Still zero and not in dry-run? - if ((!isTaskIdValid($taskId)) && (!isExtensionDryRun())) { + if ((!isValidId($taskId)) && (!isExtensionDryRun())) { // Now try to create a new task $taskId = createNewExtensionTask(getCurrentExtensionName()); // Is it still zero? - if (!isTaskIdValid($taskId)) { + if (!isValidId($taskId)) { // Then request a bug report reportBug(__FUNCTION__, __LINE__, sprintf("%s: task_id is still zero after determineExtensionTaskId/createNewExtensionTask(%s)", __FUNCTION__, @@ -245,12 +248,12 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate $processResult = FALSE; initIncludePool('extension'); - // By default we have no failures + // By default there is no failure enableExtensionReportingFailure(); // Does this extension exists? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ' - CALLING loadExtension() ...'); - if (loadExtension(getCurrentExtensionName(), 'register', '0.0.0', isExtensionDryRun(), $previousExtension)) { + if (loadExtension(getCurrentExtensionName(), 'setup', '0.0.0', isExtensionDryRun(), $previousExtension)) { // Set current extension name again setCurrentExtensionName($ext_name); @@ -295,7 +298,7 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate // Entry found? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'updateTaskId=' . $updateTaskId . ',isInstallationPhase()=' . intval(isInstallationPhase()) . ',currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ' - CHECKING!'); - if (($updateTaskId > 0) || (isInstallationPhase())) { + if ((isValidId($updateTaskId)) || (isInstallationPhase())) { // Try to register the extension //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ',updateTaskId=' . $updateTaskId . ',isExtensionDryRun()=' . intval(isExtensionDryRun())); $processResult = registerExtension($ext_update, $updateTaskId, isExtensionDryRun(), TRUE, $ext_name); @@ -340,7 +343,7 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate } // END - if // Switch back to register mode - setExtensionMode('register'); + setExtensionMode('setup'); // Remains true if extension registration reports no failures //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',processResult=' . intval($processResult)); @@ -426,7 +429,7 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName()); $ret = FALSE; } - } elseif (($taskId > 0) && (getCurrentExtensionName() != '')) { + } elseif ((isValidId($taskId)) && (getCurrentExtensionName() != '')) { // Remove task from system when id and extension's name is valid //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName()); SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `id`=%s AND `status`='NEW' LIMIT 1", @@ -503,7 +506,7 @@ function doExtensionSqls ($ext_id, $load_mode) { // Is this the sql_patches? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'id=' . $ext_id . ',currName=' . getCurrentExtensionName() . ',loadMode=' . $load_mode); - if ((getCurrentExtensionName() == 'sql_patches') && (($load_mode == 'register') || ($load_mode == 'remove'))) { + if ((getCurrentExtensionName() == 'sql_patches') && (($load_mode == 'setup') || ($load_mode == 'remove'))) { // Then redirect to logout //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, ': LOAD!'); redirectToUrl('modules.php?module=admin&logout=1&' . $load_mode . '=sql_patches'); @@ -542,7 +545,7 @@ function isExtensionInstalled ($ext_name) { $ext_id = getExtensionId($ext_name); // Is there a record? - $isInstalled = ($ext_id > 0); + $isInstalled = isValidId($ext_id); // Log debug message //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_id=' . $ext_id . ',isInstalled=' . intval($isInstalled)); @@ -1044,7 +1047,7 @@ function createExtensionUpdateTask ($adminId, $ext_name, $ext_ver, $notes) { // Is the extension there? if (isExtensionInstalled($ext_name)) { // Check if task is not there - if ($taskId == '0') { + if (!isValidId($taskId)) { // Create extension update-task $taskId = createNewTask($subject, $notes, 'EXTENSION_UPDATE', 0, $adminId); } // END - if @@ -1067,7 +1070,7 @@ function createNewExtensionTask ($ext_name) { // Not installed and do we have created a task for the admin? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId[' . gettype($taskId) . ']=' . $taskId); - if ((!isTaskIdValid($taskId)) && (!isExtensionInstalled($ext_name))) { + if ((!isValidId($taskId)) && (!isExtensionInstalled($ext_name))) { // Set default message if ext-foo is missing $message = '{%message,ADMIN_EXTENSION_TEXT_FILE_MISSING=' . $ext_name . '%}'; @@ -1105,7 +1108,7 @@ function createExtensionDeactivationTask ($ext_name) { // Not installed and do we have created a task for the admin? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId[' . gettype($taskId) . ']=' . $taskId); - if ((!isTaskIdValid($taskId)) && (isExtensionInstalled($ext_name))) { + if ((!isValidId($taskId)) && (isExtensionInstalled($ext_name))) { // Task not created so add it $taskId = createNewTask($subject, SQL_ESCAPE(loadTemplate('task_EXTENSION_deactivated', TRUE, $ext_name)), 'EXTENSION_DEACTIVATION'); } // END - if @@ -1126,7 +1129,7 @@ function determineExtensionTaskId ($ext_name) { $data['task_id'] = NULL; // Search for extension task's id - $result = SQL_QUERY_ESC("SELECT `id` AS task_id FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `task_type`='EXTENSION' AND `subject`='[%s:]' LIMIT 1", + $result = SQL_QUERY_ESC("SELECT `id` AS `task_id` FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `task_type`='EXTENSION' AND `subject`='[%s:]' LIMIT 1", array($ext_name), __FUNCTION__, __LINE__); // Entry found? @@ -1148,7 +1151,7 @@ function determineTaskIdBySubject ($subject) { $data['task_id'] = '0'; // Search for task id - $result = SQL_QUERY_ESC("SELECT `id` AS task_id FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `subject` LIKE '%s%%' LIMIT 1", + $result = SQL_QUERY_ESC("SELECT `id` AS `task_id` FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `subject` LIKE '%s%%' LIMIT 1", array($subject), __FUNCTION__, __LINE__); // Entry found? @@ -1827,6 +1830,18 @@ function loadCurrentExtensionInclude () { loadInclude($INC); } +// Load current extension's mode include file +function loadCurrentExtensionModeInclude () { + // Generate INC name + $INC = sprintf("inc/extensions/%s/mode-%s.php", getCurrentExtensionName(), getExtensionMode()); + + // Is the include readable? + if (isIncludeReadable($INC)) { + // Load it as it is optional + loadInclude($INC); + } // END - if +} + // Checks whether an extension is readable function isExtensionIncludeReadable ($ext_name = '') { // If empty, use current @@ -2155,14 +2170,14 @@ function registerExtensionPointsData ($subject, $columnName, $lockedMode, $payme $add = ''; // Is the extension equal or newer 0.8.9? - if (((isInstallationPhase()) && ((getExtensionMode() == 'register') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) { + if (((isInstallationPhase()) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) { // Then add provider $add = " AND `account_provider`='EXTENSION'"; } // END - if // Is the 'subject' there? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ifSqlTableExists(points_data)=' . ifSqlTableExists('points_data') . ',getExtensionMode()=' . getExtensionMode() . ',add=' . $add); - if (((!ifSqlTableExists('points_data')) && ((getExtensionMode() == 'register') || (getExtensionMode() == 'update'))) || (countSumTotalData($subject, 'points_data', 'id', 'subject', TRUE, $add) == 0)) { + if (((!ifSqlTableExists('points_data')) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (countSumTotalData($subject, 'points_data', 'id', 'subject', TRUE, $add) == 0)) { // Not found so: if ((!isInstallationPhase()) && (isset($GLOBALS['previous_extension'][getCurrentExtensionName()])) && (!ifSqlTableExists('points_data'))) { // This may happen (but when?) @@ -2172,7 +2187,7 @@ function registerExtensionPointsData ($subject, $columnName, $lockedMode, $payme } // END - if // With or without account_provider? - if (((isInstallationPhase()) && ((getExtensionMode() == 'register') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) { + if (((isInstallationPhase()) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) { // Add account_provider addExtensionSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`, `account_provider`) VALUES ('%s','%s','%s','%s','EXTENSION')", $subject, @@ -2304,19 +2319,6 @@ function copyExtensionDataToCacheArray ($ext_name, $ext_id) { $GLOBALS['cache_array']['extension']['ext_deprecated'][$ext_name] = 'N'; } -// Checks if given task id is valid -function isTaskIdValid ($taskId) { - // Is there cache? - if (!isset($GLOBALS[__FUNCTION__][$taskId])) { - // Determine it - $GLOBALS[__FUNCTION__][$taskId] = ((!is_null($taskId)) && ($taskId > 0)); - } // END - if - - // Return "cached" value - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'taskId[' . gettype($taskId) . ']=' . intval($taskId) . ',isValid=' . intval($GLOBALS[__FUNCTION__][$taskId])); - return $GLOBALS[__FUNCTION__][$taskId]; -} - // "Getter" for "checked="checked" from given session data function getExtensionSelectedFromSession ($ext_name, $sessionName, $separator = ':') { // Get the data and explode it