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');
95 //forms key generation
96 require_once('common/include/forms.php');
103 print "$sys_name Could Not Connect to Database: ".db_error();
108 require_once('common/include/Plugin.class') ;
109 require_once('common/include/PluginManager.class') ;
111 // SCM-specific plugins subsystem
112 require_once('common/include/SCM.class') ;
114 setup_plugin_manager () ;
116 //determine if they're logged in
119 plugin_hook('after_session_set');
122 if (!session_loggedin() && $sys_force_login == 1 ) {
123 $expl_pathinfo = explode('/',getStringFromServer('REQUEST_URI'));
124 if (getStringFromServer('REQUEST_URI')!='/' && $expl_pathinfo[1]!='account' && $expl_pathinfo[1]!='export' ) exit_not_logged_in();
125 // Show proj* export even if not logged in when force login
126 // If not default web project page would be broken
127 if ($expl_pathinfo[1]=='export' && !ereg("^proj", $expl_pathinfo[2])) exit_not_logged_in();
130 //insert this page view into the database
131 require_once('www/include/logger.php');
134 // If logged in, set up a $LUSER var referencing
135 // the logged in user's object
137 if (session_loggedin()) {
138 //set up the user's timezone if they are logged in
139 $LUSER =& session_get_user();
140 $LUSER->setUpTheme();
141 header('Cache-Control: private');
145 // Include user Theme
147 require_once($sys_themeroot.$sys_theme.'/Theme.class');
153 Timezone must come after logger to prevent messups
158 if (session_loggedin()) {
159 //set up the user's timezone if they are logged in
160 putenv('TZ='. $LUSER->getTimeZone());
162 //just use pacific time as always
167 Now figure out what language file to instantiate
171 require_once('www/include/BaseLanguage.class');
176 if (session_loggedin()) {
177 $Language=new BaseLanguage();
178 $Language->loadLanguageID($LUSER->getLanguage());
180 //if you aren't logged in, check your browser settings
181 //and see if we support that language
182 //if we don't support it, just use default language
183 if (getStringFromServer('HTTP_ACCEPT_LANGUAGE')) {
184 $classname = getLanguageClassName(getStringFromServer('HTTP_ACCEPT_LANGUAGE'));
187 $classname=$sys_lang;
189 $Language=new BaseLanguage();
190 $Language->loadLanguage($classname);
193 setlocale (LC_TIME, $Language->getText('system','locale'));
194 $sys_strftimefmt = $Language->getText('system','strftimefmt');
195 $sys_datefmt = $Language->getText('system','datefmt');
196 $sys_shortdatefmt = $Language->getText('system','shortdatefmt');
206 $LUSER - Logged in user object