3 * pre.php - Automatically prepend to every page.
5 * SourceForge: Breaking Down the Barriers to Open Source Development
6 * Copyright 1999-2001 (c) VA Linux Systems
7 * http://sourceforge.net
13 require_once('common/include/escapingUtils.php');
15 // Just say no to link prefetching (Moz prefetching, Google Web Accelerator, others)
16 // http://www.google.com/webmasters/faq.html#prefetchblock
17 if (getStringFromServer('HTTP_X_moz') === 'prefetch'){
18 header(getStringFromServer('SERVER_PROTOCOL') . ' 404 Prefetch Forbidden');
19 trigger_error('Prefetch request forbidden.');
23 $no_gz_buffer = getStringFromRequest('no_gz_buffer');
24 if (!isset($no_gz_buffer) || !$no_gz_buffer) {
25 ob_start("ob_gzhandler");
28 // get constants used for flags or status
29 require('common/include/constants.php');
34 redirect to proper hostname to get around certificate problem on IE 5
36 if (getStringFromServer('HTTP_HOST') != $GLOBALS['sys_default_domain'] && getStringFromServer('HTTP_HOST') != $GLOBALS['sys_fallback_domain']) {
37 if (strtoupper(getStringFromServer('HTTPS')) == 'ON') {
38 header ("Location: https://".$GLOBALS['sys_default_domain'].getStringFromServer('REQUEST_URI'));
40 header ("Location: http://".$GLOBALS['sys_default_domain'].getStringFromServer('REQUEST_URI'));
46 if ($sys_use_jabber) {
47 require_once('common/include/Jabber.class');
50 //library to determine browser settings
51 require_once('www/include/browser.php');
53 //base error library for new objects
54 require_once('common/include/Error.class');
56 // HTML layout class, may be overriden by the Theme class
57 require_once('www/include/Layout.class');
60 //various html utilities
61 require_once('common/include/utils.php');
63 //database abstraction
64 require_once('common/include/database.php');
67 require_once('common/include/session.php');
70 require_once('common/include/System.class');
71 if (!$sys_account_manager_type) {
72 $sys_account_manager_type='UNIX';
74 require_once('common/include/system/'.$sys_account_manager_type.'.class');
75 $SYS=new $sys_account_manager_type();
77 //user functions like get_name, logged_in, etc
78 require_once('common/include/User.class');
80 //group functions like get_name, etc
81 require_once('common/include/Group.class');
83 //permission functions
84 require_once('common/include/Permission.class');
86 //library to set up context help
87 require_once('www/include/help.php');
90 require_once('www/include/exit.php');
92 //various html libs like button bar, themable
93 require_once('www/include/html.php');
100 print "$sys_name Could Not Connect to Database: ".db_error();
105 require_once('common/include/Plugin.class') ;
106 require_once('common/include/PluginManager.class') ;
108 // SCM-specific plugins subsystem
109 require_once('common/include/SCM.class') ;
111 setup_plugin_manager () ;
113 //determine if they're logged in
116 plugin_hook('after_session_set');
119 if (!session_loggedin() && $sys_force_login == 1 ) {
120 $expl_pathinfo = explode('/',getStringFromServer('REQUEST_URI'));
121 if (getStringFromServer('REQUEST_URI')!='/' && $expl_pathinfo[1]!='account' && $expl_pathinfo[1]!='export' ) exit_not_logged_in();
122 // Show proj* export even if not logged in when force login
123 // If not default web project page would be broken
124 if ($expl_pathinfo[1]=='export' && !ereg("^proj", $expl_pathinfo[2])) exit_not_logged_in();
127 //insert this page view into the database
128 require_once('www/include/logger.php');
131 // If logged in, set up a $LUSER var referencing
132 // the logged in user's object
134 if (session_loggedin()) {
135 //set up the user's timezone if they are logged in
136 $LUSER =& session_get_user();
137 $LUSER->setUpTheme();
138 header('Cache-Control: private');
142 // Include user Theme
144 require_once($sys_themeroot.$sys_theme.'/Theme.class');
150 Timezone must come after logger to prevent messups
155 if (session_loggedin()) {
156 //set up the user's timezone if they are logged in
157 putenv('TZ='. $LUSER->getTimeZone());
159 //just use pacific time as always
164 Now figure out what language file to instantiate
168 require_once('www/include/BaseLanguage.class');
173 if (session_loggedin()) {
174 $Language=new BaseLanguage();
175 $Language->loadLanguageID($LUSER->getLanguage());
177 //if you aren't logged in, check your browser settings
178 //and see if we support that language
179 //if we don't support it, just use default language
180 if (getStringFromServer('HTTP_ACCEPT_LANGUAGE')) {
181 $classname = getLanguageClassName(getStringFromServer('HTTP_ACCEPT_LANGUAGE'));
184 $classname=$sys_lang;
186 $Language=new BaseLanguage();
187 $Language->loadLanguage($classname);
190 setlocale (LC_TIME, $Language->getText('system','locale'));
191 $sys_strftimefmt = $Language->getText('system','strftimefmt');
192 $sys_datefmt = $Language->getText('system','datefmt');
193 $sys_shortdatefmt = $Language->getText('system','shortdatefmt');
203 $LUSER - Logged in user object