Complete rewrite and debug message surpressed:
[mailer.git] / inc / functions.php
index d157a7ed00344842431105feecb76d2b92f85811..d7a327592143bbfefa1a2c89601faf9ff7c9228d 100644 (file)
@@ -2655,7 +2655,7 @@ function convertCodeToMessage ($code) {
 
                case getCode('EXTENSION_PROBLEM'):
                        if (REQUEST_ISSET_GET('ext')) {
-                               $msg = generateExtensionInactiveMessage(REQUEST_GET('ext'));
+                               $msg = generateExtensionInactiveNotInstalledMessage(REQUEST_GET('ext'));
                        } else {
                                $msg = getMessage('EXTENSION_PROBLEM_UNSET_EXT');
                        }
@@ -3296,26 +3296,73 @@ function isExtraTitleSet () {
 }
 
 // Generates a 'extension foo inactive' message
-function generateExtensionInactiveMessage ($ext) {
+function generateExtensionInactiveMessage ($ext_name) {
        // Is the extension empty?
-       if (empty($ext)) {
+       if (empty($ext_name)) {
                // This should not happen
                trigger_error(__FUNCTION__ . ': Parameter ext is empty. This should not happen.');
        } // END - if
 
        // Default message
-       $msg = sprintf(getMessage('EXTENSION_PROBLEM_EXT_INACTIVE'), $ext);
+       $msg = sprintf(getMessage('EXTENSION_PROBLEM_EXT_INACTIVE'), $ext_name);
 
        // Is an admin logged in?
        if (IS_ADMIN()) {
                // Then output admin message
-               $msg = sprintf(getMessage('ADMIN_EXTENSION_PROBLEM_EXT_INACTIVE'), $ext);
+               $msg = sprintf(getMessage('ADMIN_EXTENSION_PROBLEM_EXT_INACTIVE'), $ext_name);
        } // END - if
 
        // Return prepared message
        return $msg;
 }
 
+// Generates a 'extension foo not installed' message
+function generateExtensionNotInstalledMessage ($ext_name) {
+       // Is the extension empty?
+       if (empty($ext_name)) {
+               // This should not happen
+               trigger_error(__FUNCTION__ . ': Parameter ext is empty. This should not happen.');
+       } // END - if
+
+       // Default message
+       $msg = sprintf(getMessage('EXTENSION_PROBLEM_EXT_NOT_INSTALLED'), $ext_name);
+
+       // Is an admin logged in?
+       if (IS_ADMIN()) {
+               // Then output admin message
+               $msg = sprintf(getMessage('ADMIN_EXTENSION_PROBLEM_EXT_NOT_INSTALLED'), $ext_name);
+       } // END - if
+
+       // Return prepared message
+       return $msg;
+}
+
+// Generates a message depending on if the extension is not installed or not
+// just activated
+function generateExtensionInactiveNotInstalledMessage ($ext_name) {
+       // Init message
+       $message = '';
+
+       // Is the extension not installed or just deactivated?
+       switch (isExtensionInstalled($ext_name)) {
+               case true; // Deactivated!
+                       $message = generateExtensionInactiveMessage($ext_name);
+                       break;
+
+               case false; // Not installed!
+                       $message = generateExtensionNotInstalledMessage($ext_name);
+                       break;
+
+               default: // Should not happen!
+                       DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Invalid state of extension %s detected.", $ext_name));
+                       $message = sprintf("Invalid state of extension %s detected.", $ext_name);
+                       break;
+       } // END - switch
+
+       // Return the message
+       return $message;
+}
+
 //////////////////////////////////////////////////
 // AUTOMATICALLY RE-GENERATED MISSING FUNCTIONS //
 //////////////////////////////////////////////////