function trace($debug, $message = null, $level = 0, $ret = false) { if (FUNC4::is_debug($debug) && is_string($message) && ($level == 0 || $level == 1 || $level == 2)) { if ($level == 0) { $mess = 'Error'; } else { if ($level == 1) { $mess = 'Warning'; } else { if ($level == 2) { $mess = 'Notice'; } } } $emsg = '<br /><b>' . $mess . '</b>: ' . $message . ' on ' . strtoupper($debug[0]['class']) . $debug[0]['type'] . $debug[0]['function'] . '()' . ' in <b>' . $debug[0]['file'] . '</b> on line <b>' . $debug[0]['line'] . '</b><br />' . "\r\n"; FUNC4::log_errors($emsg, true); if ($level == 0) { if (defined('DISPLAY_XPM4_ERRORS') && DISPLAY_XPM4_ERRORS == true) { die($emsg); } else { exit; } } else { if (defined('DISPLAY_XPM4_ERRORS') && DISPLAY_XPM4_ERRORS == true) { echo $emsg; } } } else { $emsg = 'invalid debug parameters'; FUNC4::log_errors(': ' . $emsg, true); if ($level == 0) { if (defined('DISPLAY_XPM4_ERRORS') && DISPLAY_XPM4_ERRORS == true) { trigger_error($emsg, E_USER_ERROR); } else { exit; } } else { if (defined('DISPLAY_XPM4_ERRORS') && DISPLAY_XPM4_ERRORS == true) { trigger_error($emsg, E_USER_WARNING); } } } return $ret; }