* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+// Declare and init variables to store messages
+$feedback = '';
+$warning_msg = '';
+$error_msg = '';
+
require_once $gfcommon.'include/escapingUtils.php';
require_once $gfcommon.'include/config.php';
exit;
}
+// Use latest rendering engine for IE (bypass compatibility mode)
+if (isset($_SERVER['HTTP_USER_AGENT']) && stripos($_SERVER['HTTP_USER_AGENT'], "msie")) {
+ header("X-UA-Compatible: IE=edge");
+}
+
if (!isset($no_gz_buffer) || !$no_gz_buffer) {
ob_start("ob_gzhandler");
}
forge_define_config_item ($var, $sec,
$headers[$serv]) ;
return ;
- }
+ }
}
if (isset ($_ENV[$env])) {
forge_define_config_item ($var, $sec,
forge_set_config_item_bool ('sysdebug_backtraces', 'core') ;
forge_define_config_item ('sysdebug_ignored', 'core', 'false') ;
forge_set_config_item_bool ('sysdebug_ignored', 'core') ;
+forge_define_config_item ('sysdebug_dbquery', 'core', 'false') ;
+forge_set_config_item_bool ('sysdebug_dbquery', 'core') ;
forge_define_config_item ('sysdebug_xmlstarlet', 'core', 'false') ;
forge_set_config_item_bool ('sysdebug_xmlstarlet', 'core') ;
forge_define_config_item ('sysdebug_akelos', 'core', 'false') ;
forge_set_config_item_bool ('sysdebug_akelos', 'core') ;
// Load extra func to add extras func like debug
$sysdebug_enable = forge_get_config('sysdebug_enable');
-if ($sysdebug_enable) {
+
+$sysDTDs = array(
+ /*
+ * we could use xhtml-rdfa-1.dtd but would need to
+ * mirror the entire XHTML/1.1 shebang then, too
+ */
+ 'strict' => array(
+ 'dtdfile' => 'xhtml1-strict.dtd',
+ 'doctype' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
+ ),
+ /* the original XHTML/1.0 Transitional */
+ 'transitional-orig' => array(
+ 'dtdfile' => 'xhtml1-transitional.dtd',
+ 'doctype' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
+ ),
+ /* XHTML/1.0 Transitional + RDFa 1.0 */
+ 'transitional' => array(
+ 'dtdfile' => 'xhtml10t-rdfa10.dtd',
+ 'doctype' => '<!DOCTYPE html SYSTEM "http://evolvis.org/DTD/xhtml10t-rdfa10.dtd">'
+ ),
+);
+
+$sysXMLNSs = 'xmlns="http://www.w3.org/1999/xhtml"';
+if (!$sysdebug_enable || !forge_get_config('sysdebug_xmlstarlet')) {
+ foreach (array(
+ 'dc' => 'http://purl.org/dc/elements/1.1/',
+ 'doap' => 'http://usefulinc.com/ns/doap#',
+ 'foaf' => 'http://xmlns.com/foaf/0.1/',
+ 'planetforge' => 'http://coclico-project.org/ontology/planetforge#',
+ 'sioc' => 'http://rdfs.org/sioc/ns#',
+ ) as $key => $value) {
+ $sysXMLNSs .= ' xmlns:' . $key . '="' . $value . '"';
+ }
+}
+
+if ($sysdebug_enable && getenv('SERVER_SOFTWARE')) {
require $gfcommon.'include/extras-debug.php';
+} else {
+ $sysdebug_dbquery = false;
+
+ function sysdebug_off($hdr=false, $replace=true, $resp=false) {
+ if ($hdr !== false) {
+ if ($resp === false) {
+ header($hdr, $replace);
+ } else {
+ header($hdr, $replace, $resp);
+ }
+ }
+
+ return false;
+ }
+ function sysdebug_lazymode($enable) {
+ /* nothing */
+ }
+ function sysdebug_ajaxbody($enable=true) {
+ /* nothing */
+ }
}
// Get constants used for flags or status
require $gfcommon.'include/constants.php';
-// Declare and init variables to store messages
-$feedback = '';
-$warning_msg = '';
-$error_msg = '';
// Base error library for new objects
require_once $gfcommon.'include/Error.class.php';
// Database abstraction
-require_once $gfcommon.'include/database-pgsql.php';
-db_connect();
-if (!$GLOBALS['gfconn']) {
- print forge_get_config ('forge_name')." Could Not Connect to Database: ".db_error();
- exit;
-}
+// From here database is required
+if (forge_get_config('database_name')!=""){
+ require_once $gfcommon.'include/database-pgsql.php';
-// Authentication and access control
-require_once $gfcommon.'include/session.php';
-require_once $gfcommon.'include/RBACEngine.class.php';
+ // Authentication and access control
+ require_once $gfcommon.'include/session.php';
+ require_once $gfcommon.'include/RBACEngine.class.php';
-// System library
-require_once $gfcommon.'include/System.class.php';
-forge_define_config_item('account_manager_type', 'core', 'UNIX') ;
-require_once $gfcommon.'include/system/'.forge_get_config('account_manager_type').'.class.php';
-$amt = forge_get_config('account_manager_type') ;
-$SYS = new $amt();
+ // System library
+ require_once $gfcommon.'include/System.class.php';
+ forge_define_config_item('account_manager_type', 'core', 'UNIX') ;
+ require_once $gfcommon.'include/system/'.forge_get_config('account_manager_type').'.class.php';
+ $amt = forge_get_config('account_manager_type') ;
+ $SYS = new $amt();
-// User-related classes and functions
-require_once $gfcommon.'include/User.class.php';
+ // User-related classes and functions
+ require_once $gfcommon.'include/User.class.php';
-// Project-related classes and functions
-require_once $gfcommon.'include/Group.class.php';
+ // Project-related classes and functions
+ require_once $gfcommon.'include/Group.class.php';
-// Permission-related functions
-require_once $gfcommon.'include/Permission.class.php';
+ // Permission-related functions
+ require_once $gfcommon.'include/Permission.class.php';
-// Plugins subsystem
-require_once $gfcommon.'include/Plugin.class.php' ;
-require_once $gfcommon.'include/PluginManager.class.php' ;
+ // Plugins subsystem
+ require_once $gfcommon.'include/Plugin.class.php' ;
+ require_once $gfcommon.'include/PluginManager.class.php' ;
-// SCM-specific plugins subsystem
-require_once $gfcommon.'include/SCMPlugin.class.php' ;
+ // SCM-specific plugins subsystem
+ require_once $gfcommon.'include/SCMPlugin.class.php' ;
-setup_plugin_manager () ;
+ // Authentication-specific plugins subsystem
+ require_once $gfcommon.'include/AuthPlugin.class.php' ;
-// Jabber subsystem
-if (forge_get_config('use_jabber')) {
- require_once $gfcommon.'include/Jabber.class.php';
-}
+ if (getenv ('FUSIONFORGE_NO_PLUGINS') != 'true') {
+ setup_plugin_manager () ;
+ }
-ini_set('date.timezone', forge_get_config ('default_timezone'));
+ // Jabber subsystem
+ if (forge_get_config('use_jabber')) {
+ require_once $gfcommon.'include/Jabber.class.php';
+ }
+
+ ini_set('date.timezone', forge_get_config ('default_timezone'));
+
+ if (isset($_SERVER['SERVER_SOFTWARE'])) { // We're on the web
+ // Detect upload larger that upload allowed size.
+ if ( $_SERVER['REQUEST_METHOD'] == 'POST' && empty($_POST) &&
+ empty($_FILES) && $_SERVER['CONTENT_LENGTH'] > 0 )
+ {
+ $displayMaxSize = ini_get('post_max_size');
+
+ switch ( substr($displayMaxSize,-1) )
+ {
+ case 'G':
+ $displayMaxSize = $displayMaxSize * 1024;
+ case 'M':
+ $displayMaxSize = $displayMaxSize * 1024;
+ case 'K':
+ $displayMaxSize = $displayMaxSize * 1024;
+ }
+
+ $error_msg = sprintf(_('Posted data is too large. %1$s exceeds the maximum size of %2$s'),
+ human_readable_bytes($_SERVER['CONTENT_LENGTH']), human_readable_bytes($displayMaxSize));
+ }
-if (isset($_SERVER['SERVER_SOFTWARE'])) { // We're on the web
- // exit_error() and variants (for the web)
- require_once $gfcommon.'include/exit.php';
+ // exit_error() and variants (for the web)
+ require_once $gfcommon.'include/exit.php';
- // Library to determine browser settings
- require_once $gfwww.'include/browser.php';
+ // Library to determine browser settings
+ require_once $gfwww.'include/browser.php';
- // HTML layout class, may be overriden by the Theme class
- require_once $gfwww.'include/Layout.class.php';
+ // HTML layout class, may be overriden by the Theme class
+ require_once $gfwww.'include/Layout.class.php';
- // Various HTML utilities
- require_once $gfcommon.'include/utils.php';
+ // Various HTML utilities
+ require_once $gfcommon.'include/utils.php';
- // Library to set up context help
- require_once $gfwww.'include/help.php';
+ // Various HTML libs like button bar, themable
+ require_once $gfwww.'include/html.php';
- // Various HTML libs like button bar, themable
- require_once $gfwww.'include/html.php';
+ // Forms key generation
+ require_once $gfcommon.'include/forms.php';
- // Forms key generation
- require_once $gfcommon.'include/forms.php';
+ // Determine if there's a web session running
+ session_set();
- // Determine if there's a web session running
- session_set();
-
- plugin_hook('after_session_set');
-
- // Mandatory login
- if (!session_loggedin() && forge_get_config ('force_login') == 1 ) {
- $expl_pathinfo = explode('/',getStringFromServer('REQUEST_URI'));
- if (getStringFromServer('REQUEST_URI')!='/' && $expl_pathinfo[1]!='account' && $expl_pathinfo[1]!='export' ) exit_not_logged_in();
- // Show proj* export even if not logged in when force login
- // If not default web project page would be broken
- if ($expl_pathinfo[1]=='export' && !ereg("^proj", $expl_pathinfo[2])) exit_not_logged_in();
- }
+ plugin_hook('after_session_set');
- // Insert this page view into the database
- require_once $gfwww.'include/logger.php';
+ // Mandatory login
+ if (!session_loggedin() && forge_get_config ('force_login') == 1 ) {
+ $expl_pathinfo = explode('/',getStringFromServer('REQUEST_URI'));
+ if (getStringFromServer('REQUEST_URI')!='/' && $expl_pathinfo[1]!='account' && $expl_pathinfo[1]!='export' ) exit_not_logged_in();
+ // Show proj* export even if not logged in when force login
+ // If not default web project page would be broken
+ if ($expl_pathinfo[1]=='export' && !preg_match('/^proj/', $expl_pathinfo[2])) exit_not_logged_in();
+ }
- // If logged in, set up a $LUSER var referencing
- // the logged in user's object
- if (session_loggedin()) {
- $LUSER =& session_get_user();
- $LUSER->setUpTheme();
- putenv ('TZ='. $LUSER->getTimeZone());
- header ('Cache-Control: private');
+ // Insert this page view into the database
+ require_once $gfwww.'include/logger.php';
+
+ // If logged in, set up a $LUSER var referencing
+ // the logged in user's object
+ // and setup theme
+ if (session_loggedin()) {
+ $LUSER =& session_get_user();
+ $use_tooltips = $LUSER->usesTooltips();
+ putenv ('TZ='. $LUSER->getTimeZone());
+ header ('Cache-Control: private');
+ require_once forge_get_config('themes_root').'/'.$LUSER->setUpTheme().'/Theme.class.php';
+ } else {
+ $use_tooltips = 1;
+ require_once forge_get_config('themes_root').'/'.forge_get_config('default_theme').'/Theme.class.php';
+ }
+ $HTML = new Theme () ;
+ } else { // Script run from cron or a command line
+ require_once $gfcommon.'include/squal_exit.php';
}
- require_once forge_get_config('themes_root').'/'.forge_get_config('default_theme').'/Theme.class.php';
- $HTML = new Theme () ;
-} else { // Script run from cron or a command line
- require_once $gfcommon.'include/squal_exit.php';
+ // Determine locale
+ require_once $gfcommon.'include/gettext.php';
+ require_once $gfcommon.'include/group_section_texts.php';
+
+ setup_gettext_from_context();
}
-// Determine locale
-require_once $gfcommon.'include/gettext.php';
-require_once $gfcommon.'include/group_section_texts.php';
-setup_gettext_from_context();
+$feedback = htmlspecialchars(getStringFromRequest('feedback', $feedback));
+$error_msg = htmlspecialchars(getStringFromRequest('error_msg', $error_msg));
+$warning_msg = htmlspecialchars(getStringFromRequest('warning_msg', $warning_msg));
/*
RESERVED VARIABLES