* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
* Copyright (c) 2009 - 2011 by Mailer Developer Team *
- * For more information visit: http://www.mxchange.org *
+ * For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
// No name found
$data['title'] = '{%message,UNKNOWN_MODULE_DETECTED_TITLE=' . $module . '%}';
if ((is_resource($result)) && (SQL_HASZERONUMS($result))) {
- // Add module to database
- $dummy = checkModulePermissions($module);
+ // Add module to database and ignore return value
+ checkModulePermissions($module);
} // END - if
}
} // END - if
} elseif (!isExtensionActive('cache')) {
// Check for module in database
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using database.');
- $result = SQL_QUERY_ESC("SELECT `locked`, `hidden`, `admin_only`, `mem_only` FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='%s' LIMIT 1",
+ $result = SQL_QUERY_ESC("SELECT `locked`,`hidden`,`admin_only`,`mem_only` FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='%s' LIMIT 1",
array($module), __FUNCTION__, __LINE__);
if (SQL_NUMROWS($result) == 1) {
// Read data
$data = SQL_FETCHARRAY($result);
// Set all entries
- foreach ($data as $key=>$value) {
+ foreach ($data as $key => $value) {
$GLOBALS['cache_array']['modules'][$key][$module] = $value;
} // END - foreach
$extension = ''; $module_chk = $module;
//* DEBUG: */ debugOutput(__LINE__.'*'.count($modSplit).'/'.$module.'*');
if (count($modSplit) == 2) {
- // Okay, there is a seperator (_) in the name so is the first part a module?
+ // Okay, there is a separator (_) in the name so is the first part a module?
//* DEBUG: */ debugOutput(__LINE__.'*'.$modSplit[0].'*');
if (isExtensionActive($modSplit[0])) {
// The prefix is an extension's name, so let's set it
* hour to find a loop here... *sigh*
*/
SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_mod_reg`
-(`module`, `locked`, `hidden`, `mem_only`, `admin_only`, `has_menu`)
+(`module`,`locked`,`hidden`,`mem_only`,`admin_only`,`has_menu`)
VALUES
('%s','Y','N','N','N','N')", array($module_chk), __FUNCTION__, __LINE__);
} else {
// Wrong/missing sql_patches!
SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_mod_reg`
-(`module`, `locked`, `hidden`, `mem_only`, `admin_only`)
+(`module`,`locked`,`hidden`,`mem_only`,`admin_only`)
VALUES
('%s','Y','N','N','N')", array($module_chk), __FUNCTION__, __LINE__);
}
}
// Debug log
- logDebugMessage(__FUNCTION__, __LINE__, sprintf("module=%s, status=%s", $module_chk, getModuleStatus($module_chk)));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("module=%s, status=%s", $module_chk, getModuleStatus($module_chk)));
// Return the value
return getModuleStatus($module_chk);
// Is the module already registered?
if (!isModuleRegistered($module)) {
// Add it
- addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_mod_reg` (`module`, `locked`, `hidden`, `admin_only`, `mem_only`) VALUES ('" . $module . "','" . $locked . "','" . $hidden . "','" . $adminOnly . "','" . $memOnly . "')");
+ addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_mod_reg` (`module`,`locked`,`hidden`,`admin_only`,`mem_only`) VALUES ('" . $module . "','" . $locked . "','" . $hidden . "','" . $adminOnly . "','" . $memOnly . "')");
} else {
// Already registered
logDebugMessage(__FUNCTION__, __LINE__, sprintf("Already registered: module=%s,locked=%s,hidden=%s,admin=%s,mem=%s",
}
}
+// Load the currently set module
+function loadModule () {
+ // By default all modules are invalid
+ $isModuleValid = false;
+
+ // Init module state as 'failed' (always failed first)
+ $moduleState = 'failed';
+
+ // Construct module name
+ $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 ((isIncludeReadable($GLOBALS['module_inc'])) && (!ifFatalErrorsDetected())) {
+ // Module is valid, active and located on the local disk...
+ $isModuleValid = true;
+ } elseif (!ifFatalErrorsDetected()) {
+ // Set HTTP status
+ setHttpStatus('404');
+
+ // Module not found
+ addFatalMessage(__FUNCTION__, __LINE__, '{--MODULE_REGISTRY_404--}');
+
+ // Set module to error module (non-existent!)
+ setModule('error');
+ }
+ break;
+
+ case '404':
+ // Set HTTP status
+ setHttpStatus('404');
+
+ // Add fatal message
+ addFatalMessage(__FUNCTION__, __LINE__, '{--MODULE_REGISTRY_404--}');
+ break;
+
+ case 'locked':
+ // 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(__FUNCTION__, __LINE__, '{--MODULE_REGISTRY_404--}');
+ } // END - if
+
+ // Add fatal message
+ addFatalMessage(__FUNCTION__, __LINE__, '{--MODULE_REGISTRY_IS_LOCKED--}');
+ break;
+
+ default:
+ // Unknown module status
+ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown status %s return from module check. Module=%s", $moduleState, getModule()));
+ addFatalMessage(__FUNCTION__, __LINE__, '{%message,UNKNOWN_MODULE_STATUS=' . $moduleState . '%}');
+ break;
+ } // END - switch
+
+ // Return status
+ return $isModuleValid;
+}
+
+// Include module
+function doIncludeModule () {
+ // Set content type
+ setContentType('text/html');
+
+ // The header file
+ loadIncludeOnce('inc/header.php');
+
+ // Modules are by default not valid!
+ $isModuleValid = false;
+
+ // By default NULL is used
+ $GLOBALS['module_inc'] = NULL;
+
+ // 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(__FUNCTION__, __LINE__, '{--MAILER_DOWN_FOR_MAINTENANCE--}');
+ } elseif ((SQL_IS_LINK_UP()) && (!ifFatalErrorsDetected())) {
+ // Do the small "load module" call
+ $isModuleValid = loadModule();
+ } elseif (!ifFatalErrorsDetected()) {
+ // SQL problems detected
+ addFatalMessage(__FUNCTION__, __LINE__, '{--MYSQL_ERRORS--}');
+ }
+
+ if (($isModuleValid === true) && (!is_null($GLOBALS['module_inc']))) {
+ // Everything is okay so we can load the module
+ loadIncludeOnce($GLOBALS['module_inc']);
+ } // END - if
+
+ // Add the footer (this will call shutdown())
+ loadIncludeOnce('inc/footer.php');
+}
+
// [EOF]
?>