X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=modules.php;h=796b1e8128191000cc04810ef640d0afc45390f7;hp=da08bc735fc55e67f139b873c7f193345796a599;hb=04b69ac9f33369cbf654396c4a42cb1fff710ff4;hpb=d798a412acb8c1263933bd7f7a0fd9aa251495a7 diff --git a/modules.php b/modules.php index da08bc735f..796b1e8128 100644 --- a/modules.php +++ b/modules.php @@ -1,7 +1,7 @@ "._UNKNOWN.""; - - // Destroy session - destroy_user_session(); - - // Kill userid - $GLOBALS['userid'] = 0; - } - - // Free memory - SQL_FREERESULT($result); -} elseif (IS_ADMIN()) { - // Admin is there - $username = _ADMIN; -} else { - // He's a guest, hello there... ;-) - $username = _GUEST; -} +// Fix missing module to 'index' +if (!isGetRequestParameterSet('module')) { + // Set element + setGetRequestParameter('module', 'index'); + + // ... and module + setModule('index'); +} // END - if // The header file -include (PATH."inc/header.php"); +loadIncludeOnce('inc/header.php'); // Modules are by default not valid! -$MOD_VALID = false; $check = "failed"; -if ((!empty($_CONFIG['maintenance'])) && ($_CONFIG['maintenance'] == "Y") && (!IS_ADMIN()) && ($GLOBALS['module'] != "admin")) { +$isModuleValid = false; +$URL = ''; +$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 - ADD_FATAL(LANG_DOWN_MAINTAINCE); -} elseif (($link) && ($db) && (sizeof($FATAL) == 0)) { - // Did we found the module listed in allowed modules and are we successfully connected? - $check = CHECK_MODULE($GLOBALS['module']); - switch ($check) - { - case "admin_only": - case "mem_only": - case "done": - // Construct module name - define('__MODULE', sprintf("%sinc/modules/%s.php", PATH, SQL_ESCAPE($GLOBALS['module']))); - - // Does the module exists on local file system? - if ((FILE_READABLE(__MODULE)) && (sizeof($FATAL) == 0)) { - // 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 - LOAD_URL(DEREFERER($URL)); - } elseif (sizeof($FATAL) == 0) { - ADD_FATAL(LANG_MOD_REG_404_1.$GLOBALS['module'].LANG_MOD_REG_404_2); - } - break; - - case "404": - ADD_FATAL(LANG_MOD_REG_404_1.$GLOBALS['module'].LANG_MOD_REG_404_2); - break; - - case "locked": - if (!FILE_READABLE(PATH."inc/modules/".$GLOBALS['module'].".php")) { - // Module does addionally not exists - ADD_FATAL(LANG_MOD_REG_404_1.$GLOBALS['module'].LANG_MOD_REG_404_2); - } // END - if - - // Add fatal message - ADD_FATAL(LANG_MOD_LOCKED_1.$GLOBALS['module'].LANG_MOD_LOCKED_2); - break; - - default: - DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown status %s return from module check. Module=%s", $check, $GLOBALS['module'])); - ADD_FATAL(LANG_MOD_UNKNOWN_1.$check.LANG_MOD_UNKNOWN_2); - break; - } -} elseif (sizeof($FATAL) == 0) { - // MySQL problems! - ADD_FATAL(MYSQL_ERRORS); + 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()); + + // Check module permission (again) + $check = checkModulePermissions(); + switch ($check) { + 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 ((isIncludeReadable($GLOBALS['module_inc'])) && (!ifFatalErrorsDetected())) { + // Module is valid, active and located on the local disc... + $isModuleValid = true; + } elseif (!ifFatalErrorsDetected()) { + // Set HTTP status + setHttpStatus('404'); + + // Module not found! + addFatalMessage(__FILE__, __LINE__, getMaskedMessage('MODULE_REGISTRY_404', getModule())); + } + break; + + case '404': + // 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__, getMaskedMessage('MODULE_REGISTRY_404', getModule())); + } // END - if + + // Add fatal message + 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__, getMaskedMessage('UNKNOWN_MODULE_STATUS', $check)); + break; + } // END - switch +} elseif (!ifFatalErrorsDetected()) { + // MySQL problems detected + addFatalMessage(__FILE__, __LINE__, getMessage('MYSQL_ERRORS')); } -if ($MOD_VALID) { - ///////////////////////////////////////////// - // Main including line DO NOT REMOVE/EDIT! // - ///////////////////////////////////////////// - // +if (($isModuleValid === true) && (isset($GLOBALS['module_inc']))) { // Everything is okay so we can load the module - include (__MODULE); + loadIncludeOnce($GLOBALS['module_inc']); } // END - if -// Next-to-end add the footer -include (PATH."inc/footer.php"); +// Add the footer (this will call shutdown()) +loadIncludeOnce('inc/footer.php'); -// +// [EOF] ?>