Comment added
[mailer.git] / modules.php
index bee4beae2c00a70d0f97698017f0e3292245c17d..ade12602091f1f9626d83c713a77fa6c401da7e8 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Hauptladedatei. Laedt alle benoetigten Dateien   *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $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                           *
  * For more information visit: http://www.mxchange.org                  *
 // XDEBUG call
 //xdebug_start_trace();
 
-// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
-require("inc/libs/security_functions.php");
+// Load security stuff here
+require('inc/libs/security_functions.php');
 
-// Init "action" and "what"
-global $what, $action, $startTime;
+// Init start time
 $GLOBALS['startTime'] = microtime(true);
-$CSS = 0;
-$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
-$GLOBALS['userid'] = 0;
-
-// Fix missing module to "index"
-if (empty($_GET['module'])) $_GET['module'] = "index";
-
-// Secure action/what if present
-if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
-if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
 
-// Secure the module name (very important line!)
-$GLOBALS['module'] = secureString($_GET['module']);
+// Init output mode and module
+$GLOBALS['output_mode'] = 0;
+$GLOBALS['module'] = '';
 
 // Needed include files
-require("inc/config.php");
-
-// 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($GLOBALS['userid']), __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
-               destroy_user_session();
-
-               // Kill userid
-               $GLOBALS['userid'] = 0;
-       }
+require('inc/config-global.php');
 
-       // 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 (!REQUEST_ISSET_GET('module')) REQUEST_SET_GET('module', 'index');
 
 // The header file
-LOAD_INC_ONCE("inc/header.php");
+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; $check = 'failed';
+
+// Is the maintenance mode active or goes all well?
+if ((getConfig('maintenance') == 'Y') && (!IS_ADMIN()) && (getModule() != 'admin')) {
        // Maintain mode is active and you are no admin
-       addFatalMessage(getMessage('LANG_DOWN_MAINTAINCE'));
-} elseif (($link) && ($db) && (getTotalFatalErrors() == 0)) {
+       addFatalMessage(__FILE__, __LINE__, getMessage('LANG_DOWN_MAINTAINCE'));
+} elseif ((SQL_IS_LINK_UP()) && (getTotalFatalErrors() == 0)) {
        // Construct module name
-       define('__MODULE', sprintf("inc/modules/%s.php", SQL_ESCAPE($GLOBALS['module'])));
+       $GLOBALS['module_inc'] =  sprintf("inc/modules/%s.php", SQL_ESCAPE(getModule()));
 
        // 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":
-               // Does the module exists on local file system?
-               if ((FILE_READABLE(__MODULE)) && (getTotalFatalErrors() == 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 (getTotalFatalErrors() == 0) {
-                       addFatalMessage(LANG_MOD_REG_404_1.$GLOBALS['module'].LANG_MOD_REG_404_2);
-               }
-               break;
-
-       case "404":
-               addFatalMessage(LANG_MOD_REG_404_1.$GLOBALS['module'].LANG_MOD_REG_404_2);
-               break;
-
-       case "locked":
-               if (!FILE_READABLE(__MODULE)) {
-                       // Module does addionally not exists
-                       addFatalMessage(LANG_MOD_REG_404_1.$GLOBALS['module'].LANG_MOD_REG_404_2);
-               } // END - if
-
-               // Add fatal message
-               addFatalMessage(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']));
-               addFatalMessage(LANG_MOD_UNKNOWN_1.$check.LANG_MOD_UNKNOWN_2);
-               break;
+       $check = checkModulePermissions(getModule());
+       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 ((isFileReadable($GLOBALS['module_inc'])) && (getTotalFatalErrors() == 0)) {
+                               // 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()));
+                       }
+                       break;
+
+               case '404':
+                       addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_404'), getModule()));
+                       break;
+
+               case 'locked':
+                       if (!isFileReadable($GLOBALS['module_inc'])) {
+                               // Module does addionally not exists
+                               addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_404'), getModule()));
+                       } // END - if
+
+                       // Add fatal message
+                       addFatalMessage(__FILE__, __LINE__, sprintf(getMessage('LANG_MOD_REG_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));
+                       break;
        }
 } elseif (getTotalFatalErrors() == 0) {
        // MySQL problems!
-       addFatalMessage(getMessage('MYSQL_ERRORS'));
+       addFatalMessage(__FILE__, __LINE__, getMessage('MYSQL_ERRORS'));
 }
 
-if (($MOD_VALID) && (defined('__MODULE'))) {
+if (($isModuleValid === true) && (isset($GLOBALS['module_inc']))) {
        /////////////////////////////////////////////
        // Main including line DO NOT REMOVE/EDIT! //
        /////////////////////////////////////////////
        //
        // Everything is okay so we can load the module
-       LOAD_INC_ONCE(__MODULE);
+       loadIncludeOnce($GLOBALS['module_inc']);
 } // END - if
 
 // Next-to-end add the footer
-LOAD_INC_ONCE("inc/footer.php");
+loadIncludeOnce('inc/footer.php');
 
 //
 ?>