Rewrites/fixes for handling config entries in SQLs
[mailer.git] / modules.php
index 5437ef3e6ec225e67c9100d5f9fec57f3c3723f7..796b1e8128191000cc04810ef640d0afc45390f7 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 08/25/2003 *
- * ===============                              Last change: 07/01/2005 *
+ * Mailer v0.2.1-FINAL                                Start: 08/25/2003 *
+ * ===================                          Last change: 07/01/2005 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : modules.php                                      *
@@ -18,6 +18,7 @@
  * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -47,7 +48,7 @@ $GLOBALS['startTime'] = microtime(true);
 
 // Init output mode and module
 $GLOBALS['output_mode'] = '0';
-$GLOBALS['module'] = '';
+$GLOBALS['module'] = 'unknown';
 
 // Needed include files
 require('inc/config-global.php');
@@ -56,7 +57,13 @@ require('inc/config-global.php');
 setContentType('text/html');
 
 // Fix missing module to 'index'
-if (!isGetRequestElementSet('module')) setRequestGetElement('module', 'index');
+if (!isGetRequestParameterSet('module')) {
+       // Set element
+       setGetRequestParameter('module', 'index');
+
+       // ... and module
+       setModule('index');
+} // END - if
 
 // The header file
 loadIncludeOnce('inc/header.php');
@@ -69,8 +76,8 @@ $check = 'failed';
 // Is the maintenance mode active or goes all well?
 if ((isExtensionActive('maintenance')) && (getConfig('maintenance') == 'Y') && (!isAdmin()) && (getModule() != 'admin')) {
        // Maintain mode is active and you are no admin
-       addFatalMessage(__FILE__, __LINE__, getMessage('LANG_DOWN_MAINTAINCE'));
-} elseif ((SQL_IS_LINK_UP()) && (getTotalFatalErrors() == '0')) {
+       addFatalMessage(__FILE__, __LINE__, getMessage('MAILER_DOWN_FOR_MAINTENANCE'));
+} elseif ((SQL_IS_LINK_UP()) && (!ifFatalErrorsDetected())) {
        // Construct module name
        $GLOBALS['module_inc'] =  sprintf("inc/modules/%s.php", getModule());
 
@@ -82,36 +89,50 @@ if ((isExtensionActive('maintenance')) && (getConfig('maintenance') == 'Y') && (
                case 'mem_only': // Member-only access
                case 'done': // All fine!
                        // Does the module exists on local file system?
-                       if ((isIncludeReadable($GLOBALS['module_inc'])) && (getTotalFatalErrors() == '0')) {
+                       if ((isIncludeReadable($GLOBALS['module_inc'])) && (!ifFatalErrorsDetected())) {
                                // Module is valid, active and located on the local disc...
                                $isModuleValid = true;
-                       } elseif (getTotalFatalErrors() == '0') {
+                       } elseif (!ifFatalErrorsDetected()) {
+                               // Set HTTP status
+                               setHttpStatus('404');
+
                                // Module not found!
-                               addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_404'), getModule()));
+                               addFatalMessage(__FILE__, __LINE__, getMaskedMessage('MODULE_REGISTRY_404', getModule()));
                        }
                        break;
 
                case '404':
-                       addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_404'), getModule()));
+                       // Set HTTP status
+                       setHttpStatus('404');
+
+                       // Add fatal message
+                       addFatalMessage(__FILE__, __LINE__, getMaskedMessage('MODULE_REGISTRY_404', getModule()));
                        break;
 
                case 'locked':
+                       // Set HTTP status
+                       setHttpStatus('403');
+
                        if (!isIncludeReadable($GLOBALS['module_inc'])) {
+                               // Set HTTP status
+                               setHttpStatus('404');
+
                                // Module does addionally not exists
-                               addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_404'), getModule()));
+                               addFatalMessage(__FILE__, __LINE__, getMaskedMessage('MODULE_REGISTRY_404', getModule()));
                        } // END - if
 
                        // Add fatal message
-                       addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_LOCKED'), getModule()));
+                       addFatalMessage(__FILE__, __LINE__, getMaskedMessage('MODULE_IS_LOCKED', getModule()));
                        break;
 
                default:
+                       // Unknown module status
                        logDebugMessage(__FILE__, __LINE__, sprintf("Unknown status %s return from module check. Module=%s", $check, getModule()));
-                       addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_UNKNOWN'), $check));
+                       addFatalMessage(__FILE__, __LINE__, getMaskedMessage('UNKNOWN_MODULE_STATUS', $check));
                        break;
        } // END - switch
-} elseif (getTotalFatalErrors() == '0') {
-       // MySQL problems!
+} elseif (!ifFatalErrorsDetected()) {
+       // MySQL problems detected
        addFatalMessage(__FILE__, __LINE__, getMessage('MYSQL_ERRORS'));
 }