Refactoring: improve debug_mode, constants and other stuff

git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@168 b3834d28-1941-0410-a4f8-b48e95affb8f
This commit is contained in:
mensonge 2008-11-21 10:44:28 +00:00
parent 8ca4455dc7
commit 3c181054db
18 changed files with 97 additions and 77 deletions

View file

@ -15,6 +15,7 @@ $usecache = false; # use cache ? {true,false}
$dir_cache = dirname(__FILE__) .'/cache/'; # directory where cache files will be stored $dir_cache = dirname(__FILE__) .'/cache/'; # directory where cache files will be stored
$cleanurls = false; # Use mod_rewrite to hide PHP extensions {true,false[default]} $cleanurls = false; # Use mod_rewrite to hide PHP extensions {true,false[default]}
# be cautious, doesn't work for all hosts, you may need to modify the .htaccess file # be cautious, doesn't work for all hosts, you may need to modify the .htaccess file
$debugMode = false; # if true, show debug messages
#### Database #### #### Database ####
$dbtype = 'mysql4'; # Database driver {mysql, mysqli, mysql4, oracle, postgres, sqlite, db2, firebird, mssql, mssq-odbc} $dbtype = 'mysql4'; # Database driver {mysql, mysqli, mysql4, oracle, postgres, sqlite, db2, firebird, mssql, mssq-odbc}
@ -85,5 +86,5 @@ $menu2Tags = array('example', 'of', 'menu', 'tags'); # list of tags used by menu
$sizeSearchHistory = 10; # number of users' searches that are saved {1..10[Default]..-1[Unlimited]} $sizeSearchHistory = 10; # number of users' searches that are saved {1..10[Default]..-1[Unlimited]}
$enableGoogleCustomSearch = true; #Enable Google Search Engine into "gsearch/" folder $enableGoogleCustomSearch = true; #Enable Google Search Engine into "gsearch/" folder
include_once('debug.inc.php');
?> ?>

View file

@ -1,4 +1,30 @@
<?php <?php
/*
* Define constants use in all the application.
* Some constants are based on variables from configuration file.
*/
// Debug managament
if(isset($GLOBALS['debugMode'])) {
define('DEBUG_MODE', $GLOBALS['debugMode']);
define('DEBUG_EXTRA', $GLOBALS['debugMode']); // Constant used exclusively into db/ directory
}
// Determine the base URL as ROOT
if (!isset($GLOBALS['root'])) {
$pieces = explode('/', $_SERVER['SCRIPT_NAME']);
$rootTmp = '/';
foreach($pieces as $piece) {
if ($piece != '' && !strstr($piece, '.php')) {
$rootTmp .= $piece .'/';
}
}
if (($rootTmp != '/') && (substr($rootTmp, -1, 1) != '/')) {
$rootTmp .= '/';
}
define('ROOT', 'http://'. $_SERVER['HTTP_HOST'] . $rootTmp);
}
// Error codes // Error codes
define('GENERAL_MESSAGE', 200); define('GENERAL_MESSAGE', 200);
@ -19,7 +45,7 @@ define('INSTALLATION_ID', md5($GLOBALS['dbname'].$GLOBALS['tableprefix']));
// Correct bug with PATH_INFO (maybe for Apache 1) // Correct bug with PATH_INFO (maybe for Apache 1)
if(strlen($_SERVER["PATH_INFO"])<strlen($_SERVER["ORIG_PATH_INFO"])) { if(strlen($_SERVER["PATH_INFO"])<strlen($_SERVER["ORIG_PATH_INFO"])) {
$_SERVER["PATH_INFO"] = $_SERVER["ORIG_PATH_INFO"]; $_SERVER["PATH_INFO"] = $_SERVER["ORIG_PATH_INFO"];
} }
?> ?>

View file

@ -1,16 +0,0 @@
<?php
// Turn debugging on
define('SCUTTLE_DEBUG',true);
// generic debugging function
// Sample:
// pc_debug(__FILE__, __LINE__, "This is a debug message.");
function pc_debug($file, $line, $message) {
if (defined('SCUTTLE_DEBUG') && SCUTTLE_DEBUG) {
error_log("---DEBUG-". $sitename .": [$file][$line]: $message");
} else {
error_log("SCUTTLE_DEBUG disabled");
}
}
?>

View file

@ -85,11 +85,11 @@ function multi_array_search($needle, $haystack) {
} }
function createURL($page = '', $ending = '') { function createURL($page = '', $ending = '') {
global $cleanurls, $root; global $cleanurls;
if (!$cleanurls && $page != '') { if (!$cleanurls && $page != '') {
$page .= '.php'; $page .= '.php';
} }
return $root . $page .'/'. $ending; return ROOT . $page .'/'. $ending;
} }
/* Shorten a string like a URL for example by cutting the middle of it */ /* Shorten a string like a URL for example by cutting the middle of it */
@ -112,7 +112,7 @@ function message_die($msg_code, $msg_text = '', $msg_title = '', $err_line = '',
// Get SQL error if we are debugging. Do this as soon as possible to prevent // Get SQL error if we are debugging. Do this as soon as possible to prevent
// subsequent queries from overwriting the status of sql_error() // subsequent queries from overwriting the status of sql_error()
if (DEBUG && ($msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR)) { if (DEBUG_MODE && ($msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR)) {
$sql_error = is_null($db) ? '' : $db->sql_error(); $sql_error = is_null($db) ? '' : $db->sql_error();
$debug_text = ''; $debug_text = '';
@ -157,10 +157,10 @@ function message_die($msg_code, $msg_text = '', $msg_title = '', $err_line = '',
break; break;
} }
// Add on DEBUG info if we've enabled debug mode and this is an error. This // Add on DEBUG_MODE info if we've enabled debug mode and this is an error. This
// prevents debug info being output for general messages should DEBUG be // prevents debug info being output for general messages should DEBUG_MODE be
// set TRUE by accident (preventing confusion for the end user!) // set TRUE by accident (preventing confusion for the end user!)
if (DEBUG && ($msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR)) { if (DEBUG_MODE && ($msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR)) {
if ($debug_text != '') if ($debug_text != '')
$msg_text = $msg_text . '<br /><br /><strong>'. T_('DEBUG MODE') .'</strong>'. $debug_text; $msg_text = $msg_text . '<br /><br /><strong>'. T_('DEBUG MODE') .'</strong>'. $debug_text;
} }

View file

@ -14,7 +14,7 @@
</LookAndFeel> </LookAndFeel>
</CustomSearchEngine> </CustomSearchEngine>
<Include type="Annotations" href="<?php echo $GLOBALS['root'];?>api/export_gcs.php?xml=1" /> <Include type="Annotations" href="<?php echo ROOT;?>api/export_gcs.php?xml=1" />
</GoogleCustomizations> </GoogleCustomizations>

View file

@ -14,7 +14,7 @@ if($GLOBALS['enableGoogleCustomSearch']==false) {
<!-- Google CSE Search Box Begins --> <!-- Google CSE Search Box Begins -->
<form id="cref" action="http://www.google.com/cse"> <form id="cref" action="http://www.google.com/cse">
<input type="hidden" name="cref" value="<?php echo $GLOBALS['root']?>gsearch/context.php" /> <input type="hidden" name="cref" value="<?php echo ROOT;?>gsearch/context.php" />
<input type="text" name="q" size="40" /> <input type="text" name="q" size="40" />
<input type="submit" name="sa" value="Search" /> <input type="submit" name="sa" value="Search" />
</form> </form>

View file

@ -1,35 +1,31 @@
<?php <?php
ini_set('display_errors', '1');
ini_set('mysql.trace_mode', '0');
error_reporting(E_ALL ^ E_NOTICE);
//error_reporting(E_ALL);
define('DEBUG', true);
session_start();
if(!file_exists(dirname(__FILE__) .'/config.inc.php')) { if(!file_exists(dirname(__FILE__) .'/config.inc.php')) {
die("Please, create the 'config.inc.php' file. You can copy the 'config.inc.php.example' file."); die("Please, create the 'config.inc.php' file. You can copy the 'config.inc.php.example' file.");
} }
require_once(dirname(__FILE__) .'/services/servicefactory.php'); // First requirements part (before debug management)
require_once(dirname(__FILE__) .'/config.inc.php'); require_once(dirname(__FILE__) .'/config.inc.php');
require_once(dirname(__FILE__) .'/constants.inc.php'); require_once(dirname(__FILE__) .'/constants.inc.php'); // some constants are based on variables from config file
// Debug Management using constants
if(DEBUG_MODE) {
ini_set('display_errors', '1');
ini_set('mysql.trace_mode', '1');
error_reporting(E_ALL);
//error_reporting(E_ALL^E_NOTICE);
} else {
ini_set('display_errors', '0');
ini_set('mysql.trace_mode', '0');
error_reporting(0);
}
// Second requirements part which could display bugs (must come after debug management)
require_once(dirname(__FILE__) .'/services/servicefactory.php');
require_once(dirname(__FILE__) .'/functions.inc.php'); require_once(dirname(__FILE__) .'/functions.inc.php');
// Determine the base URL
if (!isset($root)) { session_start();
$pieces = explode('/', $_SERVER['SCRIPT_NAME']);
$root = '/';
foreach($pieces as $piece) {
if ($piece != '' && !strstr($piece, '.php')) {
$root .= $piece .'/';
}
}
if (($root != '/') && (substr($root, -1, 1) != '/')) {
$root .= '/';
}
$root = 'http://'. $_SERVER['HTTP_HOST'] . $root;
}
?> ?>

View file

@ -20,6 +20,7 @@
***************************************************************************/ ***************************************************************************/
require_once('header.inc.php'); require_once('header.inc.php');
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService'); $bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService'); $templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$userservice =& ServiceFactory::getServiceInstance('UserService'); $userservice =& ServiceFactory::getServiceInstance('UserService');

View file

@ -2,7 +2,7 @@
header('Content-Type: text/javascript'); header('Content-Type: text/javascript');
require_once('header.inc.php'); require_once('header.inc.php');
require_once('functions.inc.php'); require_once('functions.inc.php');
$player_root = $root .'includes/player/'; $player_root = ROOT .'includes/player/';
?> ?>
function _playerAdd(anchor) { function _playerAdd(anchor) {
@ -41,7 +41,7 @@ function deleteConfirmed(ele, input, response) {
post.style.display = 'none'; post.style.display = 'none';
deleted = false; deleted = false;
} else { } else {
loadXMLDoc('<?php echo $root; ?>ajaxDelete.php?id=' + input); loadXMLDoc('<?php echo ROOT; ?>ajaxDelete.php?id=' + input);
post.style.display = 'none'; post.style.display = 'none';
} }
@ -62,7 +62,7 @@ function isAvailable(input, response){
username = username.trim(); username = username.trim();
var availability = document.getElementById("availability"); var availability = document.getElementById("availability");
if (username != '') { if (username != '') {
usernameField.style.backgroundImage = 'url(<?php echo $root; ?>images/loading.gif)'; usernameField.style.backgroundImage = 'url(<?php echo ROOT; ?>images/loading.gif)';
if (response != '') { if (response != '') {
usernameField.style.backgroundImage = 'none'; usernameField.style.backgroundImage = 'none';
if (response == 'true') { if (response == 'true') {
@ -73,7 +73,7 @@ function isAvailable(input, response){
availability.innerHTML = '<?php echo T_('Not Available'); ?>'; availability.innerHTML = '<?php echo T_('Not Available'); ?>';
} }
} else { } else {
loadXMLDoc('<?php echo $root; ?>ajaxIsAvailable.php?username=' + username); loadXMLDoc('<?php echo ROOT; ?>ajaxIsAvailable.php?username=' + username);
} }
} }
} }
@ -92,12 +92,12 @@ function useAddress(ele) {
function getTitle(input, response){ function getTitle(input, response){
var title = document.getElementById('titleField'); var title = document.getElementById('titleField');
if (title.value == '') { if (title.value == '') {
title.style.backgroundImage = 'url(<?php echo $root; ?>images/loading.gif)'; title.style.backgroundImage = 'url(<?php echo ROOT; ?>images/loading.gif)';
if (response != null) { if (response != null) {
title.style.backgroundImage = 'none'; title.style.backgroundImage = 'none';
title.value = response; title.value = response;
} else if (input.indexOf('http') > -1) { } else if (input.indexOf('http') > -1) {
loadXMLDoc('<?php echo $root; ?>ajaxGetTitle.php?url=' + input); loadXMLDoc('<?php echo ROOT; ?>ajaxGetTitle.php?url=' + input);
} else { } else {
return false; return false;
} }

View file

@ -75,7 +75,7 @@ if ($cat) {
} }
$tplVars['feedtitle'] = filter($GLOBALS['sitename'] . (isset($pagetitle) ? $pagetitle : '')); $tplVars['feedtitle'] = filter($GLOBALS['sitename'] . (isset($pagetitle) ? $pagetitle : ''));
$tplVars['feedlink'] = $GLOBALS['root']; $tplVars['feedlink'] = ROOT;
$tplVars['feeddescription'] = sprintf(T_('Recent bookmarks posted to %s'), $GLOBALS['sitename']); $tplVars['feeddescription'] = sprintf(T_('Recent bookmarks posted to %s'), $GLOBALS['sitename']);
$bookmarks =& $bookmarkservice->getBookmarks(0, 15, $userid, $cat, NULL, getSortOrder(), $watchlist); $bookmarks =& $bookmarkservice->getBookmarks(0, 15, $userid, $cat, NULL, getSortOrder(), $watchlist);

View file

@ -23,8 +23,8 @@ class UserService {
function UserService(& $db) { function UserService(& $db) {
$this->db =& $db; $this->db =& $db;
$this->tablename = $GLOBALS['tableprefix'] .'users'; $this->tablename = $GLOBALS['tableprefix'] .'users';
$this->sessionkey = $GLOBALS['cookieprefix'].INSTALLATION_ID.'-currentuserid'; $this->sessionkey = INSTALLATION_ID.'-currentuserid';
$this->cookiekey = $GLOBALS['cookieprefix'].INSTALLATION_ID.'-login'; $this->cookiekey = INSTALLATION_ID.'-login';
$this->profileurl = createURL('profile', '%2$s'); $this->profileurl = createURL('profile', '%2$s');
} }
@ -124,10 +124,11 @@ class UserService {
if (!is_null($newval)) //internal use only: reset currentuser if (!is_null($newval)) //internal use only: reset currentuser
$currentuser = $newval; $currentuser = $newval;
else if ($refresh || !isset($currentuser)) { else if ($refresh || !isset($currentuser)) {
if ($id = $this->getCurrentUserId()) if ($id = $this->getCurrentUserId()) {
$currentuser = $this->getUser($id); $currentuser = $this->getUser($id);
else } else {
return null; $currentuser = null;
}
} }
return $currentuser; return $currentuser;
} }

View file

@ -257,7 +257,7 @@ window.onload = playerLoad;
$brss = ''; $brss = '';
$size = count($rsschannels); $size = count($rsschannels);
for ($i = 0; $i < $size; $i++) { for ($i = 0; $i < $size; $i++) {
$brss = '<a style="background:#FFFFFF" href="'. $rsschannels[$i][1] .'" title="'. $rsschannels[$i][0] .'"><img src="'. $GLOBALS['root'] .'images/rss.gif" width="16" height="16" alt="'. $rsschannels[$i][0] .'" /></a>'; $brss = '<a style="background:#FFFFFF" href="'. $rsschannels[$i][1] .'" title="'. $rsschannels[$i][0] .'"><img src="'. ROOT .'images/rss.gif" width="16" height="16" alt="'. $rsschannels[$i][0] .'" /></a>';
} }
echo '<p class="paging">'. $bfirst .'<span> / </span>'. $bprev .'<span> / </span>'. $bnext .'<span> / </span>'. $blast .'<span> / </span>'. sprintf(T_('Page %d of %d'), $page, $totalpages) ." ". $brss ." </p>\n"; echo '<p class="paging">'. $bfirst .'<span> / </span>'. $bprev .'<span> / </span>'. $bnext .'<span> / </span>'. $blast .'<span> / </span>'. sprintf(T_('Page %d of %d'), $page, $totalpages) ." ". $brss ." </p>\n";

View file

@ -43,7 +43,7 @@ switch ($row['bStatus']) {
<tr> <tr>
<th align="left"><?php echo T_('Tags'); ?></th> <th align="left"><?php echo T_('Tags'); ?></th>
<td class="scuttletheme"> <td class="scuttletheme">
<span dojoType="dojo.data.ItemFileReadStore" jsId="memberTagStore" url="<?php echo $GLOBALS['root']?>ajax/gettags.php"></span> <span dojoType="dojo.data.ItemFileReadStore" jsId="memberTagStore" url="<?php echo ROOT?>ajax/gettags.php"></span>
<input type="text" dojoType="dojox.form.MultiComboBox" id="tags" name="tags" size="75" value="<?php echo filter(implode(', ', $row['tags']), 'xml'); ?>" store="memberTagStore" delimiter="," searchAttr="tag" hasDownArrow="false"/></td> <input type="text" dojoType="dojox.form.MultiComboBox" id="tags" name="tags" size="75" value="<?php echo filter(implode(', ', $row['tags']), 'xml'); ?>" store="memberTagStore" delimiter="," searchAttr="tag" hasDownArrow="false"/></td>
<td>&larr; <?php echo T_('Comma-separated'); ?></td> <td>&larr; <?php echo T_('Comma-separated'); ?></td>
</tr> </tr>

View file

@ -27,7 +27,7 @@ window.onload = function() {
<td></td> <td></td>
</tr> </tr>
</table> </table>
<p>&raquo; <a href="<?php echo $GLOBALS['root'] ?>password.php"><?php echo T_('Forgotten your password?') ?></p> <p>&raquo; <a href="<?php echo ROOT ?>password.php"><?php echo T_('Forgotten your password?') ?></p>
</form> </form>
<?php <?php

View file

@ -20,8 +20,9 @@ if ($recentTags && count($recentTags) > 0) {
<?php <?php
$contents = '<p class="tags">'; $contents = '<p class="tags">';
if(strlen($user)==0) { if(!isset($user)) {
$cat_url = createURL('tags', '%2$s'); $user = '';
$cat_url = createURL('tags', '%2$s');
} }
foreach ($recentTags as $row) { foreach ($recentTags as $row) {

View file

@ -13,7 +13,7 @@ if ($userservice->isLoggedOn()) {
<li><a href="<?php echo createURL('watchlist', $cUsername); ?>"><?php echo T_('Watchlist'); ?></a></li> <li><a href="<?php echo createURL('watchlist', $cUsername); ?>"><?php echo T_('Watchlist'); ?></a></li>
<li><a href="<?php echo $userservice->getProfileUrl($cUserId, $cUsername); ?>"><?php echo T_('Profile'); ?></a></li> <li><a href="<?php echo $userservice->getProfileUrl($cUserId, $cUsername); ?>"><?php echo T_('Profile'); ?></a></li>
<li><a href="<?php echo createURL('bookmarks', $cUsername . '?action=add'); ?>"><?php echo T_('Add a Bookmark'); ?></a></li> <li><a href="<?php echo createURL('bookmarks', $cUsername . '?action=add'); ?>"><?php echo T_('Add a Bookmark'); ?></a></li>
<li class="access"><?php echo $cUsername?><a href="<?php echo $GLOBALS['root']; ?>?action=logout">(<?php echo T_('Log Out'); ?>)</a></li> <li class="access"><?php echo $cUsername?><a href="<?php echo ROOT ?>?action=logout">(<?php echo T_('Log Out'); ?>)</a></li>
<li><a href="<?php echo createURL('about'); ?>"><?php echo T_('About'); ?></a></li> <li><a href="<?php echo createURL('about'); ?>"><?php echo T_('About'); ?></a></li>
<?php if($isAdmin): ?> <?php if($isAdmin): ?>
<li><a href="<?php echo createURL('admin', ''); ?>"><?php echo '['.T_('Admin').']'; ?></a></li> <li><a href="<?php echo createURL('admin', ''); ?>"><?php echo '['.T_('Admin').']'; ?></a></li>

View file

@ -5,9 +5,9 @@
<title><?php echo filter($GLOBALS['sitename'] . (isset($pagetitle) ? ': ' . $pagetitle : '')); ?></title> <title><?php echo filter($GLOBALS['sitename'] . (isset($pagetitle) ? ': ' . $pagetitle : '')); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" type="image/png" <link rel="icon" type="image/png"
href="<?php echo $GLOBALS['root']; ?>icon.png" /> href="<?php echo ROOT ?>icon.png" />
<link rel="stylesheet" type="text/css" <link rel="stylesheet" type="text/css"
href="<?php echo $GLOBALS['root']; ?>scuttle.css" /> href="<?php echo ROOT ?>scuttle.css" />
<?php <?php
if(isset($rsschannels)) { if(isset($rsschannels)) {
$size = count($rsschannels); $size = count($rsschannels);
@ -20,7 +20,7 @@ if(isset($rsschannels)) {
<?php if (isset($loadjs)) :?> <?php if (isset($loadjs)) :?>
<script type="text/javascript" <script type="text/javascript"
src="<?php echo $GLOBALS['root']; ?>jsScuttle.php"></script> src="<?php echo ROOT ?>jsScuttle.php"></script>
<link rel="stylesheet" type="text/css" <link rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dijit/themes/nihilo/nihilo.css"> href="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dijit/themes/nihilo/nihilo.css">
@ -50,7 +50,7 @@ if(isset($_GET['popup'])) {
?> ?>
<div id="header" <?php echo $headerstyle; ?>> <div id="header" <?php echo $headerstyle; ?>>
<h1><a href="<?php echo $GLOBALS['root']; ?>"><?php echo $GLOBALS['sitename']; ?></a></h1> <h1><a href="<?php echo ROOT ?>"><?php echo $GLOBALS['sitename']; ?></a></h1>
<?php <?php
if(!isset($_GET['popup'])) { if(!isset($_GET['popup'])) {
$this->includeTemplate('toolbar.inc'); $this->includeTemplate('toolbar.inc');

View file

@ -1,9 +1,19 @@
==== UPGRADE instructions ==== ==== UPGRADE instructions ====
=== From version 0.90 to 0.91 ===
- Backup you database
- Make a copy from your SemanticScuttle Web directory
- Upgrade your database by following instructions ONE after ONE (order is important) :
* No intructions
- Upgrade your current configuration file (config.inc.php) with respect to config.inc.php.example
* Delete last line : include_once('debug.inc.php');
* Add variable: $menu2Tags = array();
* Add variable: $debugMode = true; # if true, show debug messages
=== From version 0.89 to 0.90 === === From version 0.89 to 0.90 ===
- Backup you database - Backup you database
- Make a copy from your SemanticScuttle Web directory - Make a copy from your SemanticScuttle Web directory
- Upgrade your database by following instructions ONE after ONE (order is important) :
- Upgrade your current configuration file (config.inc.php) with respect to config.inc.php.example - Upgrade your current configuration file (config.inc.php) with respect to config.inc.php.example
# add these lines under $enableWebsiteThumbnails = false; # enableWebsiteThumbnails {true|false}: # add these lines under $enableWebsiteThumbnails = false; # enableWebsiteThumbnails {true|false}: