X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=include%2Finit.php;h=c39db07a2dd93fbd3fe026d7de88c1c3c7c23506;hp=53cebad214d7bf98d324108531c20d273165f80b;hb=4ffcf13aec3bc91137b542a83f19cc249e17f448;hpb=b37e457fda0baaf0253ba69f0e5cbdd4845ce242 diff --git a/include/init.php b/include/init.php index 53cebad2..c39db07a 100644 --- a/include/init.php +++ b/include/init.php @@ -49,9 +49,6 @@ if ((bool) ini_get('register_globals') && case 'key': case 'value': break; - case 'sInitLocation': - // FIXME: variable must be set only in src/login.php - break; default: unset($GLOBALS[$key]); } @@ -63,7 +60,8 @@ if ((bool) ini_get('register_globals') && /** * Used as a dummy value, e.g., for passing as an empty - * hook argument. + * hook argument (where the value is passed by reference, + * and therefore NULL itself is not acceptable). */ global $null; $null = NULL; @@ -141,6 +139,7 @@ $color[15] = '#002266'; /* (dark blue) Unselectable folders */ $color[16] = '#ff9933'; /* (orange) Highlight color */ require(SM_PATH . 'functions/global.php'); +require(SM_PATH . 'functions/strings.php'); require(SM_PATH . 'functions/arrays.php'); /* load default configuration */ @@ -227,10 +226,23 @@ sqsession_is_active(); * SquirrelMail internal version number -- DO NOT CHANGE * $sm_internal_version = array (release, major, minor) */ -$SQM_INTERNAL_VERSION = preg_split('/\./', SM_VERSION, 3); +$SQM_INTERNAL_VERSION = explode('.', SM_VERSION, 3); $SQM_INTERNAL_VERSION[2] = intval($SQM_INTERNAL_VERSION[2]); +/* load prefs system; even when user not logged in, should be OK to do this here */ +require(SM_PATH . 'functions/prefs.php'); + +$prefs_backend = do_hook('prefs_backend', $null); +if (isset($prefs_backend) && !empty($prefs_backend) && file_exists(SM_PATH . $prefs_backend)) { + require(SM_PATH . $prefs_backend); +} elseif (isset($prefs_dsn) && !empty($prefs_dsn)) { + require(SM_PATH . 'functions/db_prefs.php'); +} else { + require(SM_PATH . 'functions/file_prefs.php'); +} + + /* if plugins are disabled only for one user and * the current user is NOT that user, turn them * back on @@ -296,13 +308,11 @@ if (! sqgetGlobalVar('squirrelmail_language',$squirrelmail_language,SQ_COOKIE)) /** - * @var $sInitlocation From where do we include. + * Do something special for some pages. This is based on the PAGE_NAME constand + * set at the top of every page. */ -if (!isset($sInitLocation)) { - $sInitLocation=NULL; -} - -switch ($sInitLocation) { +if ( !defined('PAGE_NAME') ) define('PAGE_NAME', NULL); +switch (PAGE_NAME) { case 'style': // need to get the right template set up @@ -336,22 +346,9 @@ switch ($sInitLocation) { break; case 'redirect': - /** - * directory hashing functions are needed for all setups in case - * plugins use own pref files. - */ - require(SM_PATH . 'functions/prefs.php'); require(SM_PATH . 'functions/auth.php'); - /* hook loads custom prefs backend plugins */ - $prefs_backend = do_hook('prefs_backend', $null); - if (isset($prefs_backend) && !empty($prefs_backend) && file_exists(SM_PATH . $prefs_backend)) { - require(SM_PATH . $prefs_backend); - } elseif (isset($prefs_dsn) && !empty($prefs_dsn)) { - require(SM_PATH . 'functions/db_prefs.php'); - } else { - require(SM_PATH . 'functions/file_prefs.php'); - } //nobreak; + case 'login': require(SM_PATH . 'functions/display_messages.php' ); require(SM_PATH . 'functions/page_header.php'); @@ -394,7 +391,6 @@ switch ($sInitLocation) { require(SM_PATH . 'functions/display_messages.php' ); require(SM_PATH . 'functions/page_header.php'); require(SM_PATH . 'functions/html.php'); - require(SM_PATH . 'functions/strings.php'); /** @@ -417,8 +413,8 @@ switch ($sInitLocation) { // signout page will deal with users who aren't logged // in on its own; don't show error here // - if (strpos($PHP_SELF, 'signout.php') !== FALSE) { - return; + if ( PAGE_NAME == 'signout' ) { + return; } /** @@ -454,18 +450,6 @@ switch ($sInitLocation) { $prefs_cache = false; //array(); } - /* see 'redirect' case */ - require(SM_PATH . 'functions/prefs.php'); - - $prefs_backend = do_hook('prefs_backend', $null); - if (isset($prefs_backend) && !empty($prefs_backend) && file_exists(SM_PATH . $prefs_backend)) { - require(SM_PATH . $prefs_backend); - } elseif (isset($prefs_dsn) && !empty($prefs_dsn)) { - require(SM_PATH . 'functions/db_prefs.php'); - } else { - require(SM_PATH . 'functions/file_prefs.php'); - } - /** * initializing user settings */ @@ -568,7 +552,9 @@ if (empty($oTemplate)) { } // We want some variables to always be available to the template -$oTemplate->assign('javascript_on', checkForJavascript()); +$oTemplate->assign('javascript_on', + (sqGetGlobalVar('user_is_logged_in', $user_is_logged_in, SQ_SESSION) + ? checkForJavascript() : 0)); $oTemplate->assign('base_uri', sqm_baseuri()); $always_include = array('sTemplateID', 'icon_theme_path'); foreach ($always_include as $var) { @@ -601,12 +587,8 @@ function checkForJavascript($reset = FALSE) { if ( !$reset && sqGetGlobalVar('javascript_on', $javascript_on, SQ_SESSION) ) return $javascript_on; - if ( ( $reset || !isset($javascript_setting) ) - // getPref() not defined (nor is it meaningful) when user not - // logged in, but that begs the question if $javascript_on is - // not in the session in that case, where do we get it from? - && ( sqGetGlobalVar('user_is_logged_in', $user_is_logged_in, SQ_SESSION) - && $user_is_logged_in) ) + $user_is_logged_in = FALSE; + if ( $reset || !isset($javascript_setting) ) $javascript_setting = getPref($data_dir, $username, 'javascript_setting', SMPREF_JS_AUTODETECT); if ( !sqGetGlobalVar('new_js_autodetect_results', $js_autodetect_results) &&