]> git.mxchange.org Git - mailer.git/blobdiff - inc/extensions-functions.php
Code moved to other include file:
[mailer.git] / inc / extensions-functions.php
index e6fcb897ee6fc3ea7ff75d0c544d1530da27cfda..3a5696cd6b90a77e1472341537133274bb0162fb 100644 (file)
@@ -120,7 +120,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $isDryRun = FA
        } // END - if
 
        // Load extension's own language file if not in test mode
-       if ((getExtensionMode() != 'test') && (ifExtensionHasLanguageFile($ext_name))) {
+       if ((getExtensionMode() != 'test') && (isExtensionLanguageFileReadable($ext_name))) {
                // Load it
                loadLanguageFile($ext_name);
        } // END - if
@@ -359,40 +359,45 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate
                                // 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();
+
                                // Register extension
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'insert=' . getCurrentExtensionName() . '/' . getCurrentExtensionVersion() . ' - INSERT!');
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'insert=' . $currentName . '/' . getCurrentExtensionVersion() . ' - INSERT!');
                                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());
+                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $currentName . ',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')",
                                                array(
-                                                       getCurrentExtensionName(),
+                                                       $currentName,
                                                        getThisExtensionAlwaysActive(),
                                                        getCurrentExtensionVersion(),
                                                        getExtensionHasCss()
                                                ), __FUNCTION__, __LINE__);
                                } else {
                                        // Old way, no CSS
-                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',always_active=' . getThisExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion());
+                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $currentName . ',always_active=' . getThisExtensionAlwaysActive() . ', ext_ver=' . getCurrentExtensionVersion());
                                        SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_extensions` (`ext_name`, `ext_active`, `ext_version`) VALUES ('%s','%s','%s')",
                                                array(
-                                                       getCurrentExtensionName(),
+                                                       $currentName,
                                                        getThisExtensionAlwaysActive(),
                                                        getCurrentExtensionVersion()
                                                ), __FUNCTION__, __LINE__);
                                }
 
-                               // Use the insert id as extension id and cache it for early usage
-                               $GLOBALS['cache_array']['extension']['ext_id'][getCurrentExtensionName()] = SQL_INSERTID();
-                               $GLOBALS['cache_array']['extension']['ext_name'][SQL_INSERTID()] = getCurrentExtensionName();
+                               /*
+                                * Use the insert id as extension id and "cache" all data for
+                                * this extension for early usage.
+                                */
+                               copyCurrentExtensionDataToCacheArray($ext_name, SQL_INSERTID());
 
                                // Mark it as installed
-                               $GLOBALS['ext_is_installed'][getCurrentExtensionName()] = TRUE;
+                               $GLOBALS['ext_is_installed'][$currentName] = TRUE;
 
                                // Remove cache file(s) if extension is active
                                runFilterChain('post_extension_installed', array(
                                        'pool'     => 'extension',
-                                       'ext_name' => getCurrentExtensionName(),
+                                       'ext_name' => $currentName,
                                        'task_id'  => $taskId
                                ));
 
@@ -1754,8 +1759,8 @@ function getExtensionHasCss () {
        return $GLOBALS[__FUNCTION__][getCurrentExtensionName()][getCurrentTheme()];
 }
 
-// Checks whether the given extension has a language file
-function ifExtensionHasLanguageFile ($ext_name) {
+// Checks whether the given extension's language file is readable
+function isExtensionLanguageFileReadable ($ext_name) {
        // Is there cache?
        if (isset($GLOBALS['cache_array']['extension']['ext_lang'][$ext_name])) {
                // Count cache hits
@@ -2246,5 +2251,19 @@ function isExtensionLibraryLoaded ($ext_name) {
        return ((isset($GLOBALS['ext_loaded']['library'][$ext_name])) && ($GLOBALS['ext_loaded']['library'][$ext_name] === TRUE));
 }
 
+// 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';
+}
+
 // [EOF]
 ?>