X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fextensions-functions.php;h=c026edd0736736da53ba3e3ff606a9f2181f467f;hb=45799353e6886efecaa6fe169848321a81a08c6e;hp=3a5696cd6b90a77e1472341537133274bb0162fb;hpb=88c922353cc353fe148e21c7d27d7c0076d6fdda;p=mailer.git diff --git a/inc/extensions-functions.php b/inc/extensions-functions.php index 3a5696cd6b..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 @@ -200,9 +203,9 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate // 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,taskId=' . $taskId . ',isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates)); - //* BUG: */ reportBug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId=' . $taskId . ',isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!'); + // Then abort here with 'true' because it is fine + /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates)); + //* BUG: */ reportBug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!'); return TRUE; } // END - if @@ -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 (((is_null($taskId)) || ($taskId == '0')) && (!isInstallationPhase())) { + if ((!isValidId($taskId)) && (!isInstallationPhase())) { // Try to find the task $taskId = determineExtensionTaskId(getCurrentExtensionName()); // Still zero and not in dry-run? - if (((is_null($taskId)) || ($taskId == '0')) && (!isExtensionDryRun())) { + if ((!isValidId($taskId)) && (!isExtensionDryRun())) { // Now try to create a new task $taskId = createNewExtensionTask(getCurrentExtensionName()); // Is it still zero? - if ((is_null($taskId)) || ($taskId == '0')) { + 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)); @@ -356,12 +359,15 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate initSqls(); setSqlsArray(getExtensionSqls()); - // Run installation pre-installation filters - runFilterChain('pre_extension_installed', array('dry_run' => isExtensionDryRun(), 'ext_installing' => TRUE, 'enable_codes' => FALSE)); - // Copy current name to save calls $currentName = getCurrentExtensionName(); + // Mark it as NOT installed + $GLOBALS['ext_is_installed'][$currentName] = FALSE; + + // Run installation pre-installation filters + runFilterChain('pre_extension_installed', array('dry_run' => isExtensionDryRun(), 'ext_installing' => TRUE, 'enable_codes' => FALSE)); + // Register extension //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'insert=' . $currentName . '/' . getCurrentExtensionVersion() . ' - INSERT!'); if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) { @@ -389,12 +395,16 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate * Use the insert id as extension id and "cache" all data for * this extension for early usage. */ - copyCurrentExtensionDataToCacheArray($ext_name, SQL_INSERTID()); + copyExtensionDataToCacheArray($currentName, SQL_INSERTID()); // Mark it as installed $GLOBALS['ext_is_installed'][$currentName] = TRUE; - // Remove cache file(s) if extension is active + /* + * Run filter chain after extension has been "installed" which + * means that the extension has been registered in 'extensions' + * table and marked as "installed". + */ runFilterChain('post_extension_installed', array( 'pool' => 'extension', 'ext_name' => $currentName, @@ -419,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", @@ -496,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'); @@ -535,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)); @@ -587,21 +597,20 @@ function isExtensionActive ($ext_name) { } elseif (($ext_name == 'cache') || (!isExtensionInstalled('cache'))) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DB! ext_name=' . $ext_name); // Load from database - $result = SQL_QUERY_ESC("SELECT `ext_active` FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1", + $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1", array($ext_name), __FUNCTION__, __LINE__); // Entry found? if (SQL_NUMROWS($result) == 1) { // Load entry $data = SQL_FETCHARRAY($result); + + // Set cache + setExtensionCacheRow($ext_name, $data); } // END - if // Free result SQL_FREERESULT($result); - - // Write cache array - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . '[DB]: ' . $data['ext_active']); - $GLOBALS['cache_array']['extension']['ext_active'][$ext_name] = $data['ext_active']; } else { // Extension not active! //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ': Not active!'); @@ -615,6 +624,32 @@ function isExtensionActive ($ext_name) { return ($data['ext_active'] == 'Y'); } +// Sets extension cache row +function setExtensionCacheRow ($ext_name, &$data) { + // Add all + foreach ($data as $key => $value) { + // Is key=id? + if ($key == 'id') { + $data['ext_id'] = $value; + $key == 'ext_id'; + } // END - if + + // Is key=ext_has_css? + if ($key == 'ext_has_css') { + $data['ext_css'] = $value; + $key == 'ext_css'; + } // END - if + + // Set all entries + if ($key == 'ext_name') { + $GLOBALS['cache_array']['extension']['ext_name'][$data['id']] = $value; + } else { + // Add ordinary entry + $GLOBALS['cache_array']['extension'][$key][$ext_name] = $value; + } + } // END - foreach +} + // Get version from extensions function getExtensionVersion ($ext_name, $force = FALSE) { // By default no extension is found @@ -644,7 +679,7 @@ function getExtensionVersion ($ext_name, $force = FALSE) { incrementStatsEntry('cache_hits'); } elseif ((!isCacheInstanceValid()) || (isset($GLOBALS['cache_array']['extension'])) || (!isHtmlOutputMode())) { // Load from database - $result = SQL_QUERY_ESC("SELECT `ext_version` FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1", + $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1", array($ext_name), __FUNCTION__, __LINE__); //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ': DB - '.SQL_NUMROWS($result).''); @@ -654,7 +689,7 @@ function getExtensionVersion ($ext_name, $force = FALSE) { $data = SQL_FETCHARRAY($result); // Set cache - $GLOBALS['cache_array']['extension']['ext_version'][$ext_name] = $data['ext_version']; + setExtensionCacheRow($ext_name, $data); } elseif (isDebugModeEnabled()) { // Not found, may happen while an extension is uninstalled logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot find extension %s in database!", $ext_name)); @@ -897,20 +932,20 @@ function getExtensionId ($ext_name) { incrementStatsEntry('cache_hits'); } else { // Load from database - $result = SQL_QUERY_ESC("SELECT `id` AS `ext_id` FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1", + $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1", array($ext_name), __FUNCTION__, __LINE__); // Is the entry there? if (SQL_NUMROWS($result) == 1) { // Get the extension's id from database $data = SQL_FETCHARRAY($result); + + // Set cache + setExtensionCacheRow($ext_name, $data); } // END - if // Free result SQL_FREERESULT($result); - - // Cache it - $GLOBALS['cache_array']['extension']['ext_id'][$ext_name] = $data['ext_id']; } // Return value @@ -1012,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 @@ -1035,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 (((is_null($taskId)) || ($taskId == '0')) && (!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 . '%}'; @@ -1073,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 (((is_null($taskId)) || ($taskId == '0')) && (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 @@ -1094,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? @@ -1116,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? @@ -1346,6 +1381,12 @@ function isExtensionUpdateDependenciesInitialized () { // Checks whether an update is already running for given extension function isExtensionUpdateRunning ($ext_name, $ignoreDependencies = FALSE) { + // 'ext_running_updates' must be there + if ((!isset($GLOBALS['ext_running_updates'])) || (!is_array($GLOBALS['ext_running_updates']))) { + // Is not there + reportBug(__FUNCTION__, __LINE__, 'Required array ext_running_updates not found. ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies)); + } // END - if + // Current and given extensions means whole array //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies) . ' - ENTERED!'); if ($ext_name == getCurrentExtensionName()) { @@ -1789,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 @@ -2092,32 +2145,20 @@ function addExtensionDropTableIndexSql ($tableName, $indexName) { // Add configuration entry if not found for actual extension function addConfigAddSql ($columnName, $columnSql) { - // Is the column there? - if (!ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_config', $columnName)) { - // Not found, so add it - addExtensionAddTableColumnSql('config', $columnName, $columnSql); - } elseif (isDebugModeEnabled()) { - // Add debug line - logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' already created. columnSql=' . $columnSql); - } + // Call inner function + addExtensionAddTableColumnSql('config', $columnName, $columnSql); } // Drop configuration entry if found for actual extension function addConfigDropSql ($columnName) { - // Is the column there? - if (ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_config', $columnName)) { - // Found, so add it - addExtensionDropTableColumnSql('config', $columnName); - } elseif (isDebugModeEnabled()) { - // Add debug line, reportBug() would cause some extenion updates fail - logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' not found.'); - } + // Call inner function + addExtensionDropTableColumnSql('config', $columnName); } // Change configuration entry for actual extension function addConfigChangeSql ($oldColumnName, $newColumnName, $columnSql) { // Add the SQL statement - addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `' . $oldColumnName . '` `' . $newColumnName . '` ' . $columnSql); + addExtensionChangeTableColumnSql('config', $oldColumnName, $newColumnName, $columnSql); } /** @@ -2129,27 +2170,40 @@ 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 ((isset($GLOBALS['previous_extension'][getCurrentExtensionName()])) && (!ifSqlTableExists('points_data'))) { + if ((!isInstallationPhase()) && (isset($GLOBALS['previous_extension'][getCurrentExtensionName()])) && (!ifSqlTableExists('points_data'))) { + // This may happen (but when?) + // @TODO Is this really neccessary? $dummy = $GLOBALS['previous_extension'][getCurrentExtensionName()]; reportBug(__FUNCTION__, __LINE__, 'previous_extension[' . gettype($dummy) . ']=' . $dummy . ',getCurrentExtensionName()=' . getCurrentExtensionName() . ' - Under development, please report this!'); } // END - if - // ... add an SQL query - addExtensionSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`) VALUES ('%s','%s','%s','%s')", - $subject, - $columnName, - $lockedMode, - $paymentMethod - )); + // With or without account_provider? + 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, + $columnName, + $lockedMode, + $paymentMethod + )); + } else { + // ... add an SQL query + addExtensionSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`) VALUES ('%s','%s','%s','%s')", + $subject, + $columnName, + $lockedMode, + $paymentMethod + )); + } } // END - if } @@ -2254,15 +2308,33 @@ function isExtensionLibraryLoaded ($ext_name) { // Copies the given extension's data to cache_array (USE THIS ONLY IN REGISTRATION PHASE!) function copyExtensionDataToCacheArray ($ext_name, $ext_id) { // Copy all data - $GLOBALS['cache_array']['extension']['ext_id'][$currentName] = $ext_id; - $GLOBALS['cache_array']['extension']['ext_name'][$ext_id] = $currentName; - $GLOBALS['cache_array']['extension']['ext_version'][$currentName] = getCurrentExtensionVersion(); - $GLOBALS['cache_array']['extension']['ext_active'][$currentName] = getThisExtensionAlwaysActive(); - $GLOBALS['cache_array']['extension']['ext_lang'][$currentName] = convertBooleanToYesNo(isExtensionLanguageFileReadable($currentName)); - $GLOBALS['cache_array']['extension']['ext_func'][$currentName] = convertBooleanToYesNo(isExtensionFunctionFileReadable($currentName)); - $GLOBALS['cache_array']['extension']['ext_menu'][$currentName] = convertBooleanToYesNo(ifModuleHasMenu($currentName)); - $GLOBALS['cache_array']['extension']['ext_css'][$currentName] = convertBooleanToYesNo(getExtensionHasCss()); - $GLOBALS['cache_array']['extension']['ext_deprecated'][$currentName] = 'N'; + $GLOBALS['cache_array']['extension']['ext_id'][$ext_name] = $ext_id; + $GLOBALS['cache_array']['extension']['ext_name'][$ext_id] = $ext_name; + $GLOBALS['cache_array']['extension']['ext_version'][$ext_name] = getCurrentExtensionVersion(); + $GLOBALS['cache_array']['extension']['ext_active'][$ext_name] = getThisExtensionAlwaysActive(); + $GLOBALS['cache_array']['extension']['ext_lang'][$ext_name] = convertBooleanToYesNo(isExtensionLanguageFileReadable($ext_name)); + $GLOBALS['cache_array']['extension']['ext_func'][$ext_name] = convertBooleanToYesNo(isExtensionFunctionFileReadable($ext_name)); + $GLOBALS['cache_array']['extension']['ext_menu'][$ext_name] = convertBooleanToYesNo(ifModuleHasMenu($ext_name, isInstallationPhase())); + $GLOBALS['cache_array']['extension']['ext_css'][$ext_name] = convertBooleanToYesNo(getExtensionHasCss()); + $GLOBALS['cache_array']['extension']['ext_deprecated'][$ext_name] = 'N'; +} + +// "Getter" for "checked="checked" from given session data +function getExtensionSelectedFromSession ($ext_name, $sessionName, $separator = ':') { + // Get the data and explode it + $selections = explode($separator, getSession($sessionName)); + + // Default is not checked + $checked = ''; + + // Is it there? + if (in_array($ext_name, $selections)) { + // It is, so mark it + $checked = ' checked="checked"'; + } // END - if + + // Return result + return $checked; } // [EOF]