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
12 require_once $gfcommon.'include/escapingUtils.php';
14 if (isset($_SERVER) && array_key_exists('PHP_SELF', $_SERVER) && $_SERVER['PHP_SELF']) {
15 $_SERVER['PHP_SELF'] = htmlspecialchars($_SERVER['PHP_SELF']);
18 if (isset($GLOBALS) && array_key_exists('PHP_SELF', $GLOBALS) && $GLOBALS['PHP_SELF']) {
19 $GLOBALS['PHP_SELF'] = htmlspecialchars($GLOBALS['PHP_SELF']);
22 // Just say no to link prefetching (Moz prefetching, Google Web Accelerator, others)
23 // http://www.google.com/webmasters/faq.html#prefetchblock
24 if (getStringFromServer('HTTP_X_moz') === 'prefetch'){
25 header(getStringFromServer('SERVER_PROTOCOL') . ' 404 Prefetch Forbidden');
26 trigger_error('Prefetch request forbidden.');
30 if (!isset($no_gz_buffer) || !$no_gz_buffer) {
31 ob_start("ob_gzhandler");
35 require $gfcommon.'include/config.php';
37 forge_define_config_item ('forge_name', 'core', $GLOBALS['sys_name']) ;
38 forge_define_config_item ('user_registration_restricted', 'core', $GLOBALS['sys_user_reg_restricted']) ;
39 forge_define_config_item ('web_host', 'core', $GLOBALS['sys_default_domain']) ;
40 // forge_define_config_item ('', 'core', $GLOBALS['sys_']) ;
43 require_once $gfcommon.'include/FusionForge.class.php';
44 $forge = new FusionForge() ;
45 forge_define_config_item ('forge_name', 'core', $forge->software_name) ;
46 forge_define_config_item ('user_registration_restricted', 'core', false) ;
48 forge_read_config_file ($gfconfig.'/config.ini') ;
50 // get constants used for flags or status
51 require $gfcommon.'include/constants.php';
55 if ($sys_use_jabber) {
56 require_once $gfcommon.'include/Jabber.class.php';
59 //library to determine browser settings
60 require_once $gfwww.'include/browser.php';
62 //Codendi class for httpRequest
63 require_once $gfcommon.'include/HTTPRequest.class.php';
65 //base error library for new objects
66 require_once $gfcommon.'include/Error.class.php';
68 // HTML layout class, may be overriden by the Theme class
69 require_once $gfwww.'include/Layout.class.php';
72 //various html utilities
73 require_once $gfcommon.'include/utils.php';
75 //database abstraction
76 require_once $gfcommon.'include/database-'.$sys_database_type.'.php';
79 require_once $gfcommon.'include/session.php';
82 require_once $gfcommon.'include/System.class.php';
83 if (!$sys_account_manager_type) {
84 $sys_account_manager_type='UNIX';
86 require_once $gfcommon.'include/system/'.$sys_account_manager_type.'.class.php';
87 $SYS=new $sys_account_manager_type();
89 //user functions like get_name, logged_in, etc
90 require_once $gfcommon.'include/User.class.php';
91 require_once $gfcommon.'include/UserManager.class.php';
93 //group functions like get_name, etc
94 require_once $gfcommon.'include/Group.class.php';
96 //ProjectManager from Codendi
97 require_once $gfcommon.'include/ProjectManager.class.php';
99 //permission functions
100 require_once $gfcommon.'include/Permission.class.php';
102 //library to set up context help
103 require_once $gfwww.'include/help.php';
106 require_once $gfwww.'include/exit.php';
108 //various html libs like button bar, themable
109 require_once $gfwww.'include/html.php';
111 //forms key generation
112 require_once $gfcommon.'include/forms.php';
114 // #### Connect to db
118 if (!$GLOBALS['gfconn']) {
119 print forge_get_config ('forge_name')." Could Not Connect to Database: ".db_error();
124 require_once $gfcommon.'include/Plugin.class.php' ;
125 require_once $gfcommon.'include/PluginManager.class.php' ;
127 // SCM-specific plugins subsystem
128 require_once $gfcommon.'include/SCMPlugin.class.php' ;
130 setup_plugin_manager () ;
133 //determine if they're logged in
136 plugin_hook('after_session_set');
139 if (!session_loggedin() && $sys_force_login == 1 ) {
140 $expl_pathinfo = explode('/',getStringFromServer('REQUEST_URI'));
141 if (getStringFromServer('REQUEST_URI')!='/' && $expl_pathinfo[1]!='account' && $expl_pathinfo[1]!='export' ) exit_not_logged_in();
142 // Show proj* export even if not logged in when force login
143 // If not default web project page would be broken
144 if ($expl_pathinfo[1]=='export' && !ereg("^proj", $expl_pathinfo[2])) exit_not_logged_in();
147 //insert this page view into the database
148 require_once $gfwww.'include/logger.php';
151 // If logged in, set up a $LUSER var referencing
152 // the logged in user's object
154 if (session_loggedin()) {
155 //set up the user's timezone if they are logged in
156 $LUSER =& session_get_user();
157 $LUSER->setUpTheme();
158 header('Cache-Control: private');
162 // Include user Theme
164 require_once $sys_themeroot.$sys_theme.'/Theme.class.php';
170 Timezone must come after logger to prevent messups
175 if (session_loggedin()) {
176 //set up the user's timezone if they are logged in
177 putenv('TZ='. $LUSER->getTimeZone());
179 //just use pacific time as always
184 Now figure out what language file to instantiate
188 require_once $gfcommon.'include/gettext.php';
189 require_once $gfcommon.'include/group_section_texts.php';
191 setup_gettext_from_context();
200 $LUSER - Logged in user object
208 // c-file-style: "bsd"