Fixes for broken extension loader and language error. Resolves #87/#88
[mailer.git] / inc / language.php
index 89f7bba9ead15a2bc5e3e94dbc07acca0328f1ef..6814974eb49ef92a7b62e20d9999d7f456b04a83 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
+if (!defined('__SECURITY')) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
 
-if (empty($mx_lang)) $mx_lang = DEFAULT_LANG;
+// Try to get language from session
+$mx_lang = get_session('mx_lang');
+
+// Set default language if it is not (yet) set
+if (is_null($mx_lang)) $mx_lang = constant('DEFAULT_LANG');
+
+// Generate filename
+$INC = sprintf("inc/language/%s.php", SQL_ESCAPE($mx_lang));
+
+// Generate FQFN
+$FQFN = constant('PATH') . $INC;
 
 // Look for file
-$file = sprintf(PATH."inc/language/%s.php", $mx_lang);
-if (!file_exists($file))
-{
+if (!FILE_READABLE($FQFN)) {
        // Switch to default (DO NOT CHANGE!!!)
-       @setcookie("mx_lang", "de", (time() + $_CONFIG['online_timeout']), COOKIE_PATH);
-       $mx_lang = "de";
-       $file = sprintf(PATH."inc/language/%s.php", $mx_lang);
-}
+       $mx_lang = constant('DEFAULT_LANG');
+       set_session('mx_lang', $mx_lang);
+       $INC = sprintf("inc/language/%s.php", $mx_lang);
+} // END - if
 
 // Load language file
-require($file);
-unset($file);
+LOAD_INC($INC);
 
 // Check for installation mode
-if (!mxchange_installed)
-{
+if (isBooleanConstantAndTrue('mxchange_installing')) {
        // Load matching language file
-       require(PATH."inc/language/install_".$mx_lang.".php");
+       LOAD_INC("inc/language/install_".$mx_lang.".php");
 }
 
+// Remove no more needed variables
+unset($mx_lang);
+unset($INC);
+
 //
 ?>