Skip to content

Commit 935df26

Browse files
committed
Updates
* Better error handling * Patterns: correct processing for IS_LAST attribute for context
1 parent 5e0b333 commit 935df26

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

Diff for: lib/errors.class.php

+20-9
Original file line numberDiff line numberDiff line change
@@ -107,43 +107,54 @@ function majordomoExceptionHandler($e)
107107
} else {
108108
$url = 'commandline';
109109
}
110-
majordomoSaveError($url . "\nPHP exception: " . $e->getMessage() . " in " . $e->getFile() . " on line " . $e->getLine() . "\nBacktrace: " . $e->getTraceAsString(), 'exceptions');
110+
$message = $url . "\nPHP exception: " . $e->getMessage() . "\nBacktrace: " . $e->getTraceAsString();
111+
DebMes($message,'php_exceptions');
112+
majordomoSaveError($message, 'exceptions');
111113
return true;
112114
}
113115

114-
function majordomoErrorHandler($errno, $errmsg, $filename, $linenum, $errcontext = 0)
116+
function majordomoErrorHandler($errno, $errmsg, $filename, $linenum)
115117
{
118+
if (in_array($errno, array(E_NOTICE, E_DEPRECATED))) return;
119+
116120
if (isset($_SERVER['REQUEST_URI'])) {
117121
$url = $_SERVER['REQUEST_URI'];
118122
} else {
119123
$url = 'commandline';
120124
}
121-
majordomoSaveError($url . "\nPHP error in $filename (line $linenum): " . $errmsg, 'errors', $filename);
125+
126+
$message = $url . "\nPHP error level $errno in $filename (line $linenum): " . $errmsg;
127+
if ($errno == E_WARNING) {
128+
//DebMes($message, 'php_warning');
129+
} else {
130+
DebMes($message, 'php_error');
131+
}
132+
majordomoSaveError($message, 'errors', $filename);
122133
}
123134

124135
function phpShutDownFunction()
125136
{
126137
$error = error_get_last();
127-
$e = new \Exception;
128-
$backtrace = $e->getTraceAsString();
129138
if (!is_array($error)) {
130139
return;
131140
}
132-
141+
$e = new \Exception;
142+
$backtrace = $e->getTraceAsString();
133143
if (isset($_SERVER['REQUEST_URI'])) {
134144
$url = $_SERVER['REQUEST_URI'];
135145
} else {
136146
$url = 'commandline';
137147
}
138148
if ($error['type'] === E_ERROR) {
139-
majordomoSaveError($url . "\nPHP error: " . $error['message'] . "\nBacktrace: " . $backtrace, 'errors');
149+
$message = $url . "\nPHP error: " . $error['message'] . "\nBacktrace: " . $backtrace;
150+
DebMes($message, 'php_errors');
151+
majordomoSaveError($message, 'errors');
140152
$err = new custom_error(nl2br($error['message']));
141153
} elseif ($error['type'] === E_WARNING) {
142154
majordomoSaveError($url . "\nPHP warning: " . $error['message'] . "\nBacktrace: " . $backtrace, 'warnings');
143-
//dprint($error, false);
144155
}
145156
}
146157

147158
register_shutdown_function('phpShutDownFunction');
148159
set_error_handler("majordomoErrorHandler");
149-
set_exception_handler('majordomoExceptionHandler');
160+
set_exception_handler('majordomoExceptionHandler');

Diff for: modules/patterns/patterns.class.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -772,7 +772,7 @@ function checkPattern($id, $from_user_id = 0, $details = 0)
772772

773773
$sub_patterns_matched = 0;
774774

775-
if ($rec['IS_CONTEXT']) {
775+
if ($rec['IS_CONTEXT'] && !$rec['IS_LAST']) {
776776
$sub_patterns = SQLSelect("SELECT ID, IS_LAST FROM patterns WHERE PARENT_ID='" . $rec['ID'] . "' ORDER BY PRIORITY DESC, TITLE");
777777
$total = count($sub_patterns);
778778
for ($i = 0; $i < $total; $i++) {

0 commit comments

Comments
 (0)