/usr/share/php/SemanticScuttle/header.php is in semanticscuttle 0.98.5+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <?php
/**
* Base file that is used by shell scripts and www/www-header.php.
*
* SemanticScuttle - your social bookmark manager.
*
* PHP version 5.
*
* @category Bookmarking
* @package SemanticScuttle
* @author Benjamin Huynh-Kim-Bang <mensonge@users.sourceforge.net>
* @author Christian Weiske <cweiske@cweiske.de>
* @author Eric Dane <ericdane@users.sourceforge.net>
* @license GPL http://www.gnu.org/licenses/gpl.html
* @link http://sourceforge.net/projects/semanticscuttle
*/
if ('/usr/share/php/data' == '@' . 'data_dir@') {
//non pear-install
$datadir = dirname(__FILE__) . '/../../data/';
$wwwdir = dirname(__FILE__) . '/../../www/';
} else {
//pear installation; files are in include path
$datadir = '/usr/share/php/data/SemanticScuttle/';
//FIXME: when you have multiple installations, the www_dir will be wrong
$wwwdir = '/usr/share/semanticscuttle/www/SemanticScuttle/';
}
require_once dirname(__FILE__) . '/Environment.php';
require_once dirname(__FILE__) . '/Config.php';
$cfg = new SemanticScuttle_Config();
list($configfile, $defaultfile) = $cfg->findFiles();
if ($defaultfile === null) {
header('HTTP/1.0 500 Internal Server Error');
die(
'No default configuration file config.default.php found.'
. ' This is really, really strange'
. "\n"
);
}
if ($configfile === null) {
header('HTTP/1.0 500 Internal Server Error');
die(
'Please copy "config.php.dist" to "config.php" in data/ folder.'
. "\n"
);
}
set_include_path(
get_include_path() . PATH_SEPARATOR
. dirname(__FILE__) . '/../'
);
// 1 // First requirements part (before debug management)
require_once $defaultfile;
require_once $configfile;
if (isset($_GET['unittestMode']) && $_GET['unittestMode'] == 1
) {
if ($allowUnittestMode !== true) {
header('HTTP/1.0 400 Bad Request');
die("Unittestmode is not allowed\n");
}
define('HTTP_UNIT_TEST_MODE', true);
define('UNIT_TEST_MODE', true);
}
if (defined('UNIT_TEST_MODE')) {
//load configuration for unit tests
$testingConfigFile = $datadir . '/config.testing.php';
if (file_exists($testingConfigFile)) {
require_once $testingConfigFile;
}
//test-specific configuration file
$unittestConfigFile = $datadir . '/config.testing-tmp.php';
if (file_exists($unittestConfigFile)) {
require_once $unittestConfigFile;
}
//make local config vars global - needed for unit tests
//run with phpunit
foreach (get_defined_vars() as $var => $value) {
$GLOBALS[$var] = $value;
}
}
// some constants are based on variables from config file
require_once 'SemanticScuttle/constants.php';
// Debug Management using constants
if (DEBUG_MODE) {
ini_set('display_errors', '1');
ini_set('mysql.trace_mode', '1');
error_reporting(E_ALL);
} else {
ini_set('display_errors', '0');
ini_set('mysql.trace_mode', '0');
error_reporting(0);
}
// 2 // Second requirements part which could display bugs
// (must come after debug management)
require_once 'SemanticScuttle/Service.php';
require_once 'SemanticScuttle/DbService.php';
require_once 'SemanticScuttle/Service/Factory.php';
require_once 'SemanticScuttle/functions.php';
require_once 'SemanticScuttle/Model/Bookmark.php';
require_once 'SemanticScuttle/Model/UserArray.php';
require_once 'SemanticScuttle/Model/User/SslClientCert.php';
if (count($GLOBALS['serviceoverrides']) > 0
&& !defined('UNIT_TEST_MODE')
) {
SemanticScuttle_Service_Factory::$serviceoverrides
= $GLOBALS['serviceoverrides'];
}
// 3 // Third requirements part which import functions from includes/ directory
// UTF-8 functions
require_once 'SemanticScuttle/utf8.php';
// Translation
require_once 'php-gettext/gettext.inc';
$domain = 'messages';
T_setlocale(LC_MESSAGES, $locale);
T_bindtextdomain($domain, realpath($datadir . 'locales/'));
T_bind_textdomain_codeset($domain, 'UTF-8');
T_textdomain($domain);
// 4 // Session
if (isset($_SERVER['REMOTE_ADDR'])) {
session_start();
if ($GLOBALS['enableVoting']) {
if (isset($_SESSION['lastUrl'])) {
$GLOBALS['lastUrl'] = $_SESSION['lastUrl'];
}
//this here is hacky, but currently the only way to
// differentiate between css/js php files and normal
// http files
if (!isset($GLOBALS['saveInLastUrl'])
|| $GLOBALS['saveInLastUrl']
) {
$_SESSION['lastUrl'] = $_SERVER['REQUEST_URI'];
}
}
}
// 5 // Create mandatory services and objects
$userservice = SemanticScuttle_Service_Factory::get('User');
$currentUser = $userservice->getCurrentObjectUser();
$templateservice = SemanticScuttle_Service_Factory::get('Template');
$tplVars = array();
$tplVars['currentUser'] = $currentUser;
$tplVars['userservice'] = $userservice;
// 6 // Force UTF-8 behaviour for server (cannot be moved into top.inc.php which is not included into every file)
if (!defined('UNIT_TEST_MODE') || defined('HTTP_UNIT_TEST_MODE')) {
//API files define that, so we need a way to support both of them
if (!isset($httpContentType)) {
if (DEBUG_MODE) {
//using that mime type makes all javascript nice in Chromium
// it also serves as test base if the pages really validate
$httpContentType = 'application/xhtml+xml';
} else {
//until we are sure that all pages validate, we
// keep the non-strict mode on for normal installations
$httpContentType = 'text/html';
}
}
if ($httpContentType !== false) {
header('Content-Type: ' . $httpContentType . '; charset=utf-8');
}
}
?>
|