157 lines
4.5 KiB
PHP
157 lines
4.5 KiB
PHP
<?php
|
||
/**
|
||
* This file is part of XNova:Legacies
|
||
*
|
||
* @license http://www.gnu.org/licenses/gpl-3.0.txt
|
||
* @see http://www.xnova-ng.org/
|
||
*
|
||
* Copyright (c) 2009-Present, XNova Support Team <http://www.xnova-ng.org>
|
||
* All rights reserved.
|
||
*
|
||
* This program is free software: you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation, either version 3 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* This program is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* You should have received a copy of the GNU General Public License
|
||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
*
|
||
* --> NOTICE <--
|
||
* This file is part of the core development branch, changing its contents will
|
||
* make you unable to use the automatic updates manager. Please refer to the
|
||
* documentation for further information about customizing XNova.
|
||
*
|
||
*/
|
||
|
||
/**
|
||
* Debug class
|
||
*
|
||
* @todo Clean up source code
|
||
*/
|
||
class Nova_Core_Debug
|
||
{
|
||
const CRITICAL = 0x80;
|
||
const ERROR = 0x40;
|
||
const WARNING = 0x20;
|
||
const INFO = 0x10;
|
||
const MESSAGE = 0x08;
|
||
const AUDIT_FAILED = 0x04;
|
||
const AUDIT_SUCCESS = 0x02;
|
||
const DEBUG = 0x01;
|
||
|
||
const DEFAULT_LOGFILE = 'var/log/system.log';
|
||
|
||
protected $_logLevelNames = array(
|
||
self::CRITICAL => 'CRITICAL',
|
||
self::ERROR => 'ERROR',
|
||
self::WARNING => 'WARNING',
|
||
self::INFO => 'INFO',
|
||
self::MESSAGE => 'MESSAGE',
|
||
self::AUDIT_FAILED => 'AUDIT_FAILED',
|
||
self::AUDIT_SUCCESS => 'AUDIT_SUCCESS',
|
||
self::DEBUG => 'DEBUG'
|
||
);
|
||
|
||
/**
|
||
* Clean logging method
|
||
*
|
||
* @param string $message
|
||
* @param string $resource
|
||
* @param int $level
|
||
* @return unknown_type
|
||
*/
|
||
public function log($message, $resource = self::DEFAULT_LOGFILE, $level = self::DEBUG)
|
||
{
|
||
if(!($fp = fopen($resource, 'a'))) {
|
||
trigger_error('Unable to open logs.', E_USER_ERROR);
|
||
trigger_error($message, E_USER_ERROR);
|
||
return false;
|
||
}
|
||
fprintf($fp, '[%s] | %s - %s', $this->_logLevelNames[$level], date('r'), $message);
|
||
fclose($fp);
|
||
return true;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @deprecated
|
||
* @todo Clean up source code
|
||
*/
|
||
class Debug
|
||
extends Nova_Core_Debug
|
||
{
|
||
protected $_logMessages = array();
|
||
|
||
/**
|
||
* @deprecated
|
||
* @param string $message
|
||
* @return void
|
||
*/
|
||
function add($message)
|
||
{
|
||
$this->log($message);
|
||
$this->_logMessages[] = $message;
|
||
}
|
||
|
||
/**
|
||
* @deprecated
|
||
* @return void
|
||
*/
|
||
function echo_log()
|
||
{
|
||
$messages = implode(PHP_EOL, $this->_logMessages);
|
||
echo <<<EOF
|
||
<dl class="k">
|
||
<dt>
|
||
<a href="admin/settings.php">Debug Log</a>:
|
||
</dt>
|
||
<dd>
|
||
<pre><code>{$messages}</code></pre>
|
||
</dd>
|
||
</dl>
|
||
EOF;
|
||
die();
|
||
}
|
||
|
||
/**
|
||
* @deprecated
|
||
* @todo Clean up source code
|
||
* @param $message
|
||
* @param $title
|
||
* @return unknown_type
|
||
*/
|
||
function error($message, $title)
|
||
{
|
||
global $link, $gameConfig;
|
||
|
||
if($gameConfig['debug']==1){
|
||
echo "<h2>$title</h2><br><font color=red>$message</font><br><hr>";
|
||
echo "<table>".$this->log."</table>";
|
||
}
|
||
|
||
global $user;
|
||
$config = include ROOT_PATH . 'config.' . PHPEXT;
|
||
if(!$link) die('La base de donnee n est pas disponible pour le moment, desole pour la gene occasionnee...');
|
||
$query = "INSERT INTO {{table}} SET
|
||
`error_sender` = '{$user['id']}' ,
|
||
`error_time` = '".time()."' ,
|
||
`error_type` = '{$title}' ,
|
||
`error_text` = '".mysql_escape_string($message)."';";
|
||
$sqlquery = mysql_query(str_replace("{{table}}", $dbsettings["prefix"].'errors',$query))
|
||
or die('error fatal');
|
||
$query = "explain select * from {{table}}";
|
||
$q = mysql_fetch_array(mysql_query(str_replace("{{table}}", $dbsettings["prefix"].
|
||
'errors', $query))) or die('error fatal: ');
|
||
|
||
if (!function_exists('message')) {
|
||
echo "Erreur, merci de contacter l'admin. Erreur n<>: <b>".$q['rows']."</b>";
|
||
} else {
|
||
message("Erreur, merci de contacter l'admin. Erreur n<>: <b>".$q['rows']."</b>", "Erreur");
|
||
}
|
||
}
|
||
}
|