<?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 *
* $Date:: $ *
* $Tag:: 0.2.1-FINAL $ *
* $Author:: $ *
- * Needs to be in all Files and every File needs "svn propset *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
* -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder *
+ * 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 *
************************************************************************/
// XDEBUG call
-//xdebug_start_trace();
+//* DEBUG: */ xdebug_start_trace();
// Load security stuff here
require('inc/libs/security_functions.php');
$GLOBALS['startTime'] = microtime(true);
// Init output mode and module
-$GLOBALS['output_mode'] = 0;
-$GLOBALS['module'] = '';
+$GLOBALS['output_mode'] = '0';
+$GLOBALS['module'] = 'unknown';
// Needed include files
require('inc/config-global.php');
-// Fix missing module to 'index'
-if (!REQUEST_ISSET_GET('module')) REQUEST_SET_GET('module', 'index');
-
-// Check if logged in
-if (IS_MEMBER()) {
- // Is still logged in so we welcome him with his name
- $result = SQL_QUERY_ESC("SELECT `surname`, `family` FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `userid`=%s LIMIT 1",
- array(getUserId()), __FILE__, __LINE__);
- if (SQL_NUMROWS($result) == 1) {
- // Load surname and family's name and build the username
- list($s, $f) = SQL_FETCHROW($result);
- $username = $s . ' ' . $f;
-
- // Additionally admin?
- if (IS_ADMIN()) {
- // Add it
- $username .= ' ({--_ADMIN_SHORT--})';
- } // END - if
- } else {
- // Hmmm, logged in and no valid userid?
- $username = '<em>{--_UNKNOWN--}</em>';
-
- // Destroy session
- destroyUserSession();
-
- // Kill userid
- setUserId(0);
- }
-
- // Free memory
- SQL_FREERESULT($result);
-} elseif (IS_ADMIN()) {
- // Admin is there
- $username = getMessage('_ADMIN');
-} else {
- // He's a guest, hello there... ;-)
- $username = getMessage('_GUEST');
-}
+// Set content type
+setContentType('text/html');
// The header file
loadIncludeOnce('inc/header.php');
// Modules are by default not valid!
-$isModuleValid = false; $check = 'failed';
-if ((getConfig('maintenance') == 'Y') && (!IS_ADMIN()) && (getModule() != 'admin')) {
+$isModuleValid = false;
+$URL = '';
+
+// Init module state as 'failed' (always failed first)
+$moduleState = 'failed';
+
+// Is the maintenance mode active or goes all well?
+if ((isExtensionActive('maintenance')) && (isMaintenanceEnabled()) && (!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__, '{--MAILER_DOWN_FOR_MAINTENANCE--}');
+} elseif ((SQL_IS_LINK_UP()) && (!ifFatalErrorsDetected())) {
// Construct module name
- $GLOBALS['module_inc'] = sprintf("inc/modules/%s.php", SQL_ESCAPE(getModule()));
+ $GLOBALS['module_inc'] = sprintf("inc/modules/%s.php", getModule());
- // Did we found the module listed in allowed modules and are we successfully connected?
- $check = checkModulePermissions(getModule());
- switch ($check) {
+ // Check module permission (again)
+ $moduleState = checkModulePermissions();
+
+ // Which permission/error state do we have?
+ switch ($moduleState) {
case 'cache_miss': // The cache is gone
case 'admin_only': // Admin-only access
case 'mem_only': // Member-only access
case 'done': // All fine!
// Does the module exists on local file system?
- if ((isFileReadable($GLOBALS['module_inc'])) && (getTotalFatalErrors() == 0)) {
+ if ((isIncludeReadable($GLOBALS['module_inc'])) && (!ifFatalErrorsDetected())) {
// Module is valid, active and located on the local disc...
$isModuleValid = true;
- } elseif (!empty($URL)) {
- // An URL was specified so we load the de-referrer module
- redirectToUrl(DEREFERER($URL));
- } elseif (getTotalFatalErrors() == 0) {
- addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_404'), getModule()));
+ } elseif (!ifFatalErrorsDetected()) {
+ // Set HTTP status
+ setHttpStatus('404');
+
+ // Module not found!
+ addFatalMessage(__FILE__, __LINE__, getMaskedMessage('MODULE_REGISTRY_404', getModule()));
+
+ // Set module to error module (non-existent!)
+ setModule('error');
}
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':
- if (!isFileReadable($GLOBALS['module_inc'])) {
+ // Set HTTP status
+ setHttpStatus('403 FORBIDDEN');
+
+ if (!isIncludeReadable($GLOBALS['module_inc'])) {
+ // Set HTTP status again
+ setHttpStatus('404 NOT FOUND');
+
// 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:
- DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown status %s return from module check. Module=%s", $check, getModule()));
- addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_UNKNOWN'), $check));
+ // Unknown module status
+ logDebugMessage(__FILE__, __LINE__, sprintf("Unknown status %s return from module check. Module=%s", $moduleState, getModule()));
+ addFatalMessage(__FILE__, __LINE__, getMaskedMessage('UNKNOWN_MODULE_STATUS', $moduleState));
break;
- }
-} elseif (getTotalFatalErrors() == 0) {
- // MySQL problems!
- addFatalMessage(__FILE__, __LINE__, getMessage('MYSQL_ERRORS'));
+ } // END - switch
+} elseif (!ifFatalErrorsDetected()) {
+ // SQL problems detected
+ addFatalMessage(__FILE__, __LINE__, '{--MYSQL_ERRORS--}');
}
if (($isModuleValid === true) && (isset($GLOBALS['module_inc']))) {
- /////////////////////////////////////////////
- // Main including line DO NOT REMOVE/EDIT! //
- /////////////////////////////////////////////
- //
// Everything is okay so we can load the module
loadIncludeOnce($GLOBALS['module_inc']);
} // END - if
-// Next-to-end add the footer
+// Add the footer (this will call shutdown())
loadIncludeOnce('inc/footer.php');
-//
+// [EOF]
?>