X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=modules.php;h=2b1b2acf75497a78a4f8f9fa8c6bd4d1e2d6cf35;hp=71a861f0cd1b0be15ef48d4a2cfc81bd0f39ef7d;hb=3b7adf43576db24e516716bb13a2bd0bac677c8c;hpb=5071030af40e69ca4284642f44758964e18f5be8 diff --git a/modules.php b/modules.php index 71a861f0cd..2b1b2acf75 100644 --- a/modules.php +++ b/modules.php @@ -1,7 +1,7 @@ {--_UNKNOWN--}'; - - // 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! -$MOD_VALID = false; $check = 'failed'; -if ((getConfig('maintenance') == 'Y') && (!IS_ADMIN()) && ($GLOBALS['module'] != '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 - define('__MODULE', sprintf("inc/modules/%s.php", SQL_ESCAPE($GLOBALS['module']))); - - // Did we found the module listed in allowed modules and are we successfully connected? - $check = checkModulePermissions($GLOBALS['module']); - switch ($check) - { - case 'admin_only': - case 'mem_only': - case 'done': + $GLOBALS['module_inc'] = sprintf("inc/modules/%s.php", getModule()); + + // 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(constant('__MODULE'))) && (getTotalFatalErrors() == 0)) { + if ((isIncludeReadable($GLOBALS['module_inc'])) && (!ifFatalErrorsDetected())) { // Module is valid, active and located on the local disc... - $MOD_VALID = 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'), $GLOBALS['module'])); + $isModuleValid = true; + } elseif (!ifFatalErrorsDetected()) { + // Set HTTP status + setHttpStatus('404'); + + // Module not found + addFatalMessage(__FILE__, __LINE__, '{--MODULE_REGISTRY_404--}'); + + // Set module to error module (non-existent!) + setModule('error'); } break; case '404': - addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_404'), $GLOBALS['module'])); + // Set HTTP status + setHttpStatus('404'); + + // Add fatal message + addFatalMessage(__FILE__, __LINE__, '{--MODULE_REGISTRY_404--}'); break; case 'locked': - if (!isFileReadable(constant('__MODULE'))) { + // 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'), $GLOBALS['module'])); + addFatalMessage(__FILE__, __LINE__, '{--MODULE_REGISTRY_404--}'); } // END - if // Add fatal message - addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_LOCKED'), $GLOBALS['module'])); + addFatalMessage(__FILE__, __LINE__, '{--MODULE_REGISTRY_IS_LOCKED--}'); break; default: - DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown status %s return from module check. Module=%s", $check, $GLOBALS['module'])); - 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 (($MOD_VALID) && (defined('__MODULE'))) { - ///////////////////////////////////////////// - // Main including line DO NOT REMOVE/EDIT! // - ///////////////////////////////////////////// - // +if (($isModuleValid === true) && (isset($GLOBALS['module_inc']))) { // Everything is okay so we can load the module - loadIncludeOnce(constant('__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] ?>