Introduced 'per-what-word-wrapping
[mailer.git] / inc / extensions-functions.php
index 74144af2fdd3bcc5b055d22a26893b7cbc7c4687..08346b041b6902e74af124f24eaa3e73ba26ec6c 100644 (file)
@@ -594,21 +594,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!');
@@ -622,6 +621,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
@@ -651,7 +676,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).'');
 
@@ -661,7 +686,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));
@@ -904,20 +929,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