/**
* Einige häufug verwendete Funktionen und Konstanten
*
* \author Claus Muus
* \date 27/03/07
*/
abstract class Base
{
const MODE_NONE = 0; //< Kein Editierodus bzw. Keine Editierrechte gesetzt
const MODE_VIEW = 1; //<
const MODE_EDIT = 2;
const MODE_ONLINE = 4;
const STATUS_OFFLINE = 0;
const STATUS_ONLINE = 1;
const STATUS_ERASED = 2;
const STATUS_ARCHIVED = 4;
const STATUS_REMOVED = 8;
private static $session_level = 0; //< config cache
/**
* Prüft ob übergebenen Wert ein integer ist, also nur zalen und Vorzeichen enthält
*
* \param value Zu prüfender Wert
*
* \return true wenn übergebener Wert ein int ist, sonst false
*/
public static function is_int ($value)
{
return is_numeric($value) ? intval($value) == $value : false;
}
public static function session_init ()
{
if (!session_id ()) {
@session_start ();
session_write_close ();
}
}
public static function session_open ()
{
if (!self::$session_level) {
$_SESSION['cms']['reopen'] = true;
@session_start ();
}
self::$session_level++;
}
public static function session_close ()
{
self::$session_level--;
if (!self::$session_level) {
if (empty ($_SESSION['cms']['reopen'])) {
session_write_close ();
} else {
unset ($_SESSION['cms']['reopen']);
}
}
}
/**
* Gibt eine individuelle Fehlermeldung im php Stiel aus. Ausserdem wird die Zeile ausgegeben in der der Fehler aufgetrete ist und von wo die Fehlfunktion aufgerufen wurde
*
* \param message Auszugebende Meldung
* \param level Debug Level (php error level)
* \param offset Verschiebt die angegebene aufrufenden Funktion auf den Parent um 'offset' ebenen (optional)
*/
public static function error ($message, $level=E_USER_NOTICE, $offset=1)
{
$e = new Exception ();
$t = $e->getTrace();
if (ini_get ("html_errors")) {
trigger_error ("$message in ".((isset ($t[$offset+1]['class']) && $t[$offset+1]['class']) ? "{$t[$offset+1]['class']}::" : "").((isset ($t[$offset+1]['function']) && $t[$offset+1]['function'] && $t[$offset+1]['function']!='include') ? "{$t[$offset+1]['function']}() in" : "")." {$t[$offset]['file']} on line {$t[$offset]['line']}\nerror handler", $level);
} else {
trigger_error ("$message in ".((isset ($t[$offset+1]['class']) && $t[$offset+1]['class']) ? "{$t[$offset+1]['class']}::" : "").((isset ($t[$offset+1]['function']) && $t[$offset+1]['function'] && $t[$offset+1]['function']!='include') ? "{$t[$offset+1]['function']}() in" : "")." {$t[$offset]['file']} on line {$t[$offset]['line']} \nerror handler", $level);
}
}
/**
* Gibt eine Debugmeldung im php Stiel aus. Ausserdem wird die Klasse, funktion und Zeile ausgegeben in der die debug Funktion aufgerufen wurde
*
* \param message Auszugebende Debug Meldung (optional)
* \param level Debug Level ab dem die debug Meldung ausgegeben werden soll (optional)
* \param offset Verschiebt die angegebene aufrufenden Funktion auf den Parent um 'offset' ebenen (optional)
*/
public static function d ($message="", $level=0, $offset=0)
{
// if (!isset (self::$config['debugLevel']) || self::$config['debugLevel'] >= $level) {
$e = new Exception ();
$t = $e->getTrace();
echo "
\nDebug: $message in ".((isset ($t[$offset+1]['class']) && $t[$offset+1]['class']) ? "{$t[$offset+1]['class']}::" : "").((isset ($t[$offset+1]['function']) && $t[$offset+1]['function'] && $t[$offset+1]['function']!='include') ? "{$t[$offset+1]['function']}() in" : "")." {$t[$offset]['file']} on line {$t[$offset]['line']}
\n";
// }
}
// Debugmeldung in datei loggen:
public static function l ($message="", $level=0, $offset=0)
{
// if (!isset (self::$config['debugLevel']) || self::$config['debugLevel'] >= $level) {
$fp = fopen ("{$_SERVER['DOCUMENT_ROOT']}/../log/debug.log", "a");
if ($fp) {
$e = new Exception ();
$t = $e->getTrace();
fputs ($fp, date ("m.d.y H:i:s\t").((isset ($t[$offset+1]['class']) && $t[$offset+1]['class']) ? "{$t[$offset+1]['class']}::" : "").((isset ($t[$offset+1]['function']) && $t[$offset+1]['function'] && $t[$offset+1]['function']!='include') ? "{$t[$offset+1]['function']}() in" : "")." '{$t[$offset]['file']}' on line {$t[$offset]['line']}\n");
fputs ($fp, "$message\n");
fclose ($fp);
}
// }
}
}
// Debugmeldung ausgeben:
function d ($message="", $level=1)
{
Base::d ($message, 0, $level);
}
// Debugmeldung in datei loggen:
function l ($message="", $level=1)
{
Base::l ($message, 0, $level);
}
// Error messages ausgeben
function error ($message, $level=E_USER_NOTICE, $offset=2) {
Base::error ($message, $level, $offset);
}
?>