From e1c11ad019aa36c977c1bbe8678d74794bafd612 Mon Sep 17 00:00:00 2001 From: Cameron Date: Sat, 16 May 2015 19:06:13 -0700 Subject: [PATCH] Improved handling of CRITICAL ERROR messages. --- class2.php | 4 +- e107_handlers/message_handler.php | 179 +++++++++++++++++++++--------- 2 files changed, 128 insertions(+), 55 deletions(-) diff --git a/class2.php b/class2.php index 2411f06b1..3a6dc3c31 100644 --- a/class2.php +++ b/class2.php @@ -1835,9 +1835,9 @@ function session_set($name, $value, $expire='', $path = e_HTTP, $domain = '', $s //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// function message_handler($mode, $message, $line = 0, $file = '') { - if(defined('e_DEBUG') && e_DEBUG === true) + if(!defined('e_HANDLER')) { - echo $message; + echo $message; return; } diff --git a/e107_handlers/message_handler.php b/e107_handlers/message_handler.php index cec2ecbe7..a3807d434 100644 --- a/e107_handlers/message_handler.php +++ b/e107_handlers/message_handler.php @@ -982,81 +982,154 @@ class eMessage function show_emessage($mode, $message, $line = 0, $file = "") { global $tp; + + // For critical errors where no theme is available. + $errorHead = ' + + + + + Error + + + + + +
'; + + + $errorFoot = "
"; + + + if(is_numeric($message)) { - include_lan(e_LANGUAGEDIR.e_LANGUAGE."/lan_error.php"); - $emessage[1] = "".LAN_ERROR_25.""; - $emessage[2] = "".LAN_ERROR_26.""; - $emessage[3] = "".LAN_ERROR_27.""; - $emessage[4] = "".LAN_ERROR_28.""; - $emessage[5] = LAN_ERROR_29; - $emessage[6] = "".LAN_ERROR_30.""; - $emessage[7] = "".LAN_ERROR_31.""; - $emessage[8] = " -
".LAN_ERROR_32."

- ".chr(36)."ADMIN_DIRECTORY = \"e107_admin/\";
- ".chr(36)."FILES_DIRECTORY = \"e107_files/\";
- ".chr(36)."IMAGES_DIRECTORY = \"e107_images/\";
- ".chr(36)."THEMES_DIRECTORY = \"e107_themes/\";
- ".chr(36)."PLUGINS_DIRECTORY = \"e107_plugins/\";
- ".chr(36)."HANDLERS_DIRECTORY = \"e107_handlers/\";
- ".chr(36)."LANGUAGES_DIRECTORY = \"e107_languages/\";
- ".chr(36)."HELP_DIRECTORY = \"e107_docs/help/\";
- ".chr(36)."DOWNLOADS_DIRECTORY = \"e107_files/downloads/\";\n -
"; + if(!defined('e_LANGUAGE')) + { + define('e_LANGUAGE', 'English'); + } + + if(!defined('e_LANGUAGEDIR')) + { + define('e_LANGUAGEDIR','e107_languages/'); + } + + $path = e_LANGUAGEDIR.e_LANGUAGE."/lan_error.php"; + + if(is_readable($path)) + { + include($path); + } + + // include_lan(e_LANGUAGEDIR.e_LANGUAGE."/lan_error.php"); + + $emessage[1] = "".LAN_ERROR_25.""; + $emessage[2] = "".LAN_ERROR_26.""; + $emessage[3] = "".LAN_ERROR_27.""; + $emessage[4] = "".LAN_ERROR_28.""; + $emessage[5] = LAN_ERROR_29; + $emessage[6] = "".LAN_ERROR_30.""; + $emessage[7] = "".LAN_ERROR_31.""; + /*$emessage[8] = " +
".LAN_ERROR_32."

+ ".chr(36)."ADMIN_DIRECTORY = \"e107_admin/\";
+ ".chr(36)."FILES_DIRECTORY = \"e107_files/\";
+ ".chr(36)."IMAGES_DIRECTORY = \"e107_images/\";
+ ".chr(36)."THEMES_DIRECTORY = \"e107_themes/\";
+ ".chr(36)."PLUGINS_DIRECTORY = \"e107_plugins/\";
+ ".chr(36)."HANDLERS_DIRECTORY = \"e107_handlers/\";
+ ".chr(36)."LANGUAGES_DIRECTORY = \"e107_languages/\";
+ ".chr(36)."HELP_DIRECTORY = \"e107_docs/help/\";
+ ".chr(36)."DOWNLOADS_DIRECTORY = \"e107_files/downloads/\";\n +
";*/ + //v2.x + $emessage[8] = ''.LAN_ERROR_32.'

+$ADMIN_DIRECTORY     = "e107_admin/";
+$IMAGES_DIRECTORY    = "e107_images/";
+$THEMES_DIRECTORY    = "e107_themes/";
+$PLUGINS_DIRECTORY   = "e107_plugins/";
+$HANDLERS_DIRECTORY  = "e107_handlers/";
+$LANGUAGES_DIRECTORY = "e107_languages/";
+$HELP_DIRECTORY	     = "e107_docs/help/";
+$MEDIA_DIRECTORY     = "e107_media/";
+$SYSTEM_DIRECTORY    = "e107_system/";
+ + '; + } + if (class_exists('e107table')) { $ns = new e107table; } + switch($mode) { - case "CRITICAL_ERROR" : - $message = $emessage[$message] ? $emessage[$message] : $message; - //FIXME - this breaks class2 pref check!!! - if (is_readable(e_THEME.'index.html')) - { - require_once(e_THEME.'index.html'); - exit; - } - echo "
CRITICAL_ERROR:
Line $line $file

Error reported as: ".$message."
"; - break; + case "CRITICAL_ERROR" : - case "MESSAGE": - if(strstr(e_SELF, "forum_post.php")) //FIXME Shouldn't be here. - { - return; - } - $ns->tablerender("", "
{$message}
"); - break; + $message = !empty($emessage[$message]) ? $emessage[$message] : $message; + + //FIXME - this breaks class2 pref check!!! ? + + if (is_readable(e_THEME.'error.html')) + { + require_once(e_THEME.'error.html'); + exit; + } + + if(!defined('HEADERF')) + { + echo $errorHead; + } + + echo "

CRITICAL ERROR:

"; + echo (!empty($line)) ? "Line $line " : ""; + echo (!empty($file)) ? $file : ""; + echo "
Error reported as: ".$message."
"; + echo "
"; + + if(!defined('FOOTERF')) + { + echo $errorFoot; + } + + break; + + case "MESSAGE": + if(strstr(e_SELF, "forum_post.php")) //FIXME Shouldn't be here. + { + return; + } + $ns->tablerender("", "
{$message}
"); + break; case "ADMIN_MESSAGE": - $ns->tablerender("Admin Message", "
{$message}
"); - break; + $ns->tablerender("Admin Message", "
{$message}
"); + break; case "ALERT": - $message = $emessage[$message] ? $emessage[$message] : $message; - echo "\n"; exit; - break; + $message = $emessage[$message] ? $emessage[$message] : $message; + echo "\n"; exit; + break; case "P_ALERT": - echo "\n"; - break; + echo "\n"; + break; case 'POPUP': - $mtext = "Message
--- Message ---

".$message."

"; + $mtext = "Message
--- Message ---

".$message."

"; - echo " - "; + echo " + "; - break; + break; } }