diff --git a/application/MantisBT/Error.php b/application/MantisBT/Error.php index fd4848b7c6..3e8e25e5d9 100644 --- a/application/MantisBT/Error.php +++ b/application/MantisBT/Error.php @@ -36,8 +36,6 @@ class Error { private static $parameters = array(); - private static $proceedUrl = null; - public static function init(){ if( self::$handled === false ) { // first run @@ -95,7 +93,7 @@ public static function error_handler( $type, $error, $file, $line, $context ) { self::init(); } - if( $type == E_WARNING || $type == E_USER_WARNING || null !== self::$proceedUrl ) { + if( $type == E_WARNING || $type == E_USER_WARNING ) { switch( $type ) { case E_WARNING: @@ -109,9 +107,6 @@ public static function error_handler( $type, $error, $file, $line, $context ) { } $errorDescription = nl2br( $errorDescription ); echo '

', $errorType, ': ', $errorDescription, '

'; - if ( null !== self::$proceedUrl ) { - echo '', lang_get( 'proceed' ), ''; - } return true; // @todo true|false?? } @@ -148,7 +143,7 @@ public static function display_errors( $noHeader = false ) { } $oblen = ob_get_length(); - if( error_handled() && $oblen > 0 ) { + if( self::$handled === true && $oblen > 0 ) { $oldContents = ob_get_contents(); } @@ -296,8 +291,7 @@ public static function error_print_stack_trace( $stack ) { array_shift( $stack ); foreach( $stack as $frame ) { - echo ''; - echo '', ( isset( $frame['file'] ) ? htmlentities( $frame['file'], ENT_COMPAT, 'UTF-8' ) : '-' ), '', ( isset( $frame['line'] ) ? $frame['line'] : '-' ), '', ( isset( $frame['class'] ) ? $frame['class'] : '-' ), '', ( isset( $frame['type'] ) ? $frame['type'] : '-' ), '', ( isset( $frame['function'] ) ? $frame['function'] : '-' ), ''; + echo '', ( isset( $frame['file'] ) ? htmlentities( $frame['file'], ENT_COMPAT, 'UTF-8' ) : '-' ), '', ( isset( $frame['line'] ) ? $frame['line'] : '-' ), '', ( isset( $frame['class'] ) ? $frame['class'] : '-' ), '', ( isset( $frame['type'] ) ? $frame['type'] : '-' ), '', ( isset( $frame['function'] ) ? $frame['function'] : '-' ), ''; $args = array(); if( isset( $frame['args'] ) && !empty( $frame['args'] ) ) { @@ -373,30 +367,6 @@ public static function error_string( $error ) { return preg_replace( "/&(#[0-9]+|[a-z]+);/i", "&$1;", @htmlspecialchars( $string, ENT_COMPAT, 'UTF-8' ) ); } - - /** - * Simple version of helper_alternate_class for use by error api only. - * @access private - * @return string representing css class - */ - public static function error_alternate_class() { - static $errIndex = 1; - - if( 1 == $errIndex++ % 2 ) { - return 'class="row-1"'; - } else { - return 'class="row-2"'; - } - } - - public static function error_parameters( $args ) { - self::$parameters = $args; - } - - public static function error_proceed_url( $url ) { - self::$proceedUrl = $url(); - } - public static function error_handled() { return self::$handled; } diff --git a/application/core/access_api.php b/application/core/access_api.php index f0d99f6329..ca93c156af 100644 --- a/application/core/access_api.php +++ b/application/core/access_api.php @@ -30,7 +30,6 @@ * @uses constant_inc.php * @uses current_user_api.php * @uses database_api.php - * @uses error_api.php * @uses helper_api.php * @uses lang_api.php * @uses print_api.php @@ -48,7 +47,6 @@ require_api( 'constant_inc.php' ); require_api( 'current_user_api.php' ); require_api( 'database_api.php' ); -require_api( 'error_api.php' ); require_api( 'helper_api.php' ); require_api( 'lang_api.php' ); require_api( 'print_api.php' ); diff --git a/application/core/authentication_api.php b/application/core/authentication_api.php index 7e72d10cba..070c1e29f9 100644 --- a/application/core/authentication_api.php +++ b/application/core/authentication_api.php @@ -28,7 +28,6 @@ * @uses crypto_api.php * @uses current_user_api.php * @uses database_api.php - * @uses error_api.php * @uses gpc_api.php * @uses helper_api.php * @uses html_api.php @@ -50,7 +49,6 @@ require_api( 'crypto_api.php' ); require_api( 'current_user_api.php' ); require_api( 'database_api.php' ); -require_api( 'error_api.php' ); require_api( 'gpc_api.php' ); require_api( 'helper_api.php' ); require_api( 'html_api.php' ); diff --git a/application/core/category_api.php b/application/core/category_api.php index f76ea183f4..b8044065e0 100644 --- a/application/core/category_api.php +++ b/application/core/category_api.php @@ -26,7 +26,6 @@ * @uses config_api.php * @uses constant_inc.php * @uses database_api.php - * @uses error_api.php * @uses helper_api.php * @uses history_api.php * @uses lang_api.php @@ -43,7 +42,6 @@ require_api( 'config_api.php' ); require_api( 'constant_inc.php' ); require_api( 'database_api.php' ); -require_api( 'error_api.php' ); require_api( 'helper_api.php' ); require_api( 'history_api.php' ); require_api( 'lang_api.php' ); diff --git a/application/core/config_api.php b/application/core/config_api.php index 8c3cfdba23..a9d12d4de7 100644 --- a/application/core/config_api.php +++ b/application/core/config_api.php @@ -26,7 +26,6 @@ * @uses authentication_api.php * @uses constant_inc.php * @uses database_api.php - * @uses error_api.php * @uses helper_api.php * @uses utility_api.php */ @@ -36,7 +35,6 @@ require_api( 'authentication_api.php' ); require_api( 'constant_inc.php' ); require_api( 'database_api.php' ); -require_api( 'error_api.php' ); require_api( 'helper_api.php' ); require_api( 'utility_api.php' ); @@ -86,9 +84,6 @@ function config_get( $p_option, $p_default = null, $p_user = null, $p_project = } if( $g_cache_db_table_exists ) { - - # @@ debug @@ echo " lu db $p_option "; - # @@ debug @@ error_print_stack_trace(); # prepare the user's list $t_users = array(); if( null === $p_user ) { @@ -459,9 +454,6 @@ function config_delete( $p_option, $p_user = ALL_USERS, $p_project = ALL_PROJECT return; } - # @@ debug @@ echo "lu table=" . ( db_table_exists( 'config' ) ? "yes" : "no" ); - # @@ debug @@ error_print_stack_trace(); - $c_user = db_prepare_int( $p_user ); $c_project = db_prepare_int( $p_project ); $query = "DELETE FROM {config} diff --git a/application/core/custom_field_api.php b/application/core/custom_field_api.php index de7fc14c25..864c4022fd 100644 --- a/application/core/custom_field_api.php +++ b/application/core/custom_field_api.php @@ -30,7 +30,6 @@ * @uses constant_inc.php * @uses database_api.php * @uses email_api.php - * @uses error_api.php * @uses helper_api.php * @uses history_api.php * @uses project_api.php @@ -51,7 +50,6 @@ require_api( 'constant_inc.php' ); require_api( 'database_api.php' ); require_api( 'email_api.php' ); -require_api( 'error_api.php' ); require_api( 'helper_api.php' ); require_api( 'history_api.php' ); require_api( 'project_api.php' ); diff --git a/application/core/email_queue_api.php b/application/core/email_queue_api.php index 88f006cc73..f7ee010feb 100644 --- a/application/core/email_queue_api.php +++ b/application/core/email_queue_api.php @@ -25,7 +25,6 @@ * * @uses constant_api.php * @uses database_api.php - * @uses error_api.php * @uses lang_api.php * @uses utility_api.php */ @@ -34,7 +33,6 @@ require_api( 'constant_inc.php' ); require_api( 'database_api.php' ); -require_api( 'error_api.php' ); require_api( 'lang_api.php' ); require_api( 'utility_api.php' ); diff --git a/application/core/error_api.php b/application/core/error_api.php deleted file mode 100644 index a63a7e76e9..0000000000 --- a/application/core/error_api.php +++ /dev/null @@ -1,145 +0,0 @@ -. - -use MantisBT\Error; -use MantisBT\Exception\Db; - -/** - * Error API - * - * @package CoreAPI - * @subpackage ErrorAPI - * @copyright Copyright (C) 2000 - 2002 Kenzaburo Ito - kenito@300baud.org - * @copyright Copyright (C) 2002 - 2011 MantisBT Team - mantisbt-dev@lists.sourceforge.net - * @link http://www.mantisbt.org - * - * @uses compress_api.php - * @uses config_api.php - * @uses constant_api.php - * @uses database_api.php - * @uses html_api.php - * @uses lang_api.php - */ - -require_api( 'compress_api.php' ); -require_api( 'config_api.php' ); -require_api( 'constant_inc.php' ); -require_api( 'database_api.php' ); -require_api( 'html_api.php' ); -require_api( 'lang_api.php' ); - -$g_error_parameters = array(); -$g_error_proceed_url = null; -$g_error_send_page_header = true; - -set_exception_handler(array('MantisBT\Error', 'exception_handler')); -set_error_handler(array('MantisBT\Error', 'error_handler')); -register_shutdown_function(array('MantisBT\Error', 'shutdown_error_handler')); - -function exception_handler($exception) { - global $g_error_parameters, $g_error_handled, $g_error_proceed_url; - global $g_lang_overrides; - global $g_error_send_page_header; - - $langPushed = false; - - $dbConnected = false; - if (!$exception instanceof Db ) { - if( function_exists( 'db_is_connected' ) ) { - if( db_is_connected() ) { - $dbConnected = true; - } - } - } - - # flush any language overrides to return to user's natural default - if( $dbConnected ) { - lang_push( lang_get_default() ); - $langPushed = true; - } - - if( $langPushed ) { - lang_pop(); - } - - $g_error_parameters = array(); - $g_error_proceed_url = null; - - //??? return false; -} - -function error_handler( $type, $error, $file, $line, $context ) { - global $g_error_parameters, $g_error_handled, $g_error_proceed_url; - global $g_lang_overrides; - global $g_error_send_page_header; - - $langPushed = false; - - $dbConnected = false; - if( function_exists( 'db_is_connected' ) ) { - if( db_is_connected() ) { - $dbConnected = true; - } - } - - # flush any language overrides to return to user's natural default - if( $dbConnected ) { - lang_push( lang_get_default() ); - $langPushed = true; - } - - if( $langPushed ) { - lang_pop(); - } - - $g_error_parameters = array(); - $g_error_proceed_url = null; - - return false; -} - -/** - * Check if we have handled an error during this page - * Return true if an error has been handled, false otherwise - * @return bool - */ -function error_handled() { - return Error::error_handled(); -} - -/** - * Set additional info parameters to be used when displaying the next error - * This function takes a variable number of parameters - * - * When writing internationalized error strings, note that you can change the - * order of parameters in the string. See the PHP manual page for the - * sprintf() function for more details. - * @access public - * @return null - */ -function error_parameters() { - Error::error_parameters( func_get_args() ); -} - -/** - * Set a url to give to the user to proceed after viewing the error - * @access public - * @param string url url given to user after viewing the error - * @return null - */ -function error_proceed_url( $url ) { - Error::error_proceed_url( $url ); -} diff --git a/application/core/html_api.php b/application/core/html_api.php index c3d26432a2..86005f6694 100644 --- a/application/core/html_api.php +++ b/application/core/html_api.php @@ -63,7 +63,6 @@ * @uses constant_inc.php * @uses current_user_api.php * @uses database_api.php - * @uses error_api.php * @uses event_api.php * @uses file_api.php * @uses filter_api.php @@ -88,7 +87,6 @@ require_api( 'constant_inc.php' ); require_api( 'current_user_api.php' ); require_api( 'database_api.php' ); -require_api( 'error_api.php' ); require_api( 'event_api.php' ); require_api( 'file_api.php' ); require_api( 'filter_api.php' ); @@ -109,9 +107,6 @@ $g_robots_meta = ''; -# flag for error handler to skip header menus -$g_error_send_page_header = true; - $g_stylesheets_included = array(); $g_scripts_included = array(); @@ -237,11 +232,8 @@ function html_page_top2() { * @return null */ function html_page_top2a() { - global $g_error_send_page_header; - html_head_end(); html_body_begin(); - $g_error_send_page_header = false; html_header(); html_top_banner(); } @@ -378,7 +370,6 @@ function html_css_link( $p_filename ) { * (6) Print an HTML meta tag to redirect to another page * This function is optional and may be called by pages that need a redirect. * $p_time is the number of seconds to wait before redirecting. - * If we have handled any errors on this page return false and don't redirect. * * @param string $p_url The page to redirect: has to be a relative path * @param integer $p_time seconds to wait for before redirecting @@ -386,10 +377,6 @@ function html_css_link( $p_filename ) { * @return boolean */ function html_meta_redirect( $p_url, $p_time = null, $p_sanitize = true ) { - if( error_handled() ) { - return false; - } - if( null === $p_time ) { $p_time = current_user_get_pref( 'redirect_delay' ); } diff --git a/application/core/print_api.php b/application/core/print_api.php index a3762ccebf..f1d1cda803 100644 --- a/application/core/print_api.php +++ b/application/core/print_api.php @@ -34,7 +34,6 @@ * @uses custom_field_api.php * @uses database_api.php * @uses email_api.php - * @uses error_api.php * @uses file_api.php * @uses form_api.php * @uses helper_api.php @@ -66,7 +65,6 @@ require_api( 'custom_field_api.php' ); require_api( 'database_api.php' ); require_api( 'email_api.php' ); -require_api( 'error_api.php' ); require_api( 'file_api.php' ); require_api( 'form_api.php' ); require_api( 'helper_api.php' ); @@ -88,7 +86,6 @@ # Print the headers to cause the page to redirect to $p_url # If $p_die is true (default), terminate the execution of the script # immediately -# If we have handled any errors on this page return false and don't redirect. # $p_sanitize - true/false - true in the case where the URL is extracted from GET/POST or untrusted source. # This would be false if the URL is trusted (e.g. read from config_inc.php). # @@ -97,10 +94,6 @@ # @param boolean apply string_sanitize_url to passed url # @return boolean function print_header_redirect( $p_url, $p_die = true, $p_sanitize = false, $p_absolute = false ) { - if( error_handled() ) { - return false; - } - # validate the url as part of this site before continuing if( $p_absolute ) { if( $p_sanitize ) { diff --git a/application/core/user_api.php b/application/core/user_api.php index 3983fedf8b..cf44872e7a 100644 --- a/application/core/user_api.php +++ b/application/core/user_api.php @@ -29,7 +29,6 @@ * @uses constant_inc.php * @uses database_api.php * @uses email_api.php - * @uses error_api.php * @uses filter_api.php * @uses helper_api.php * @uses lang_api.php @@ -56,7 +55,6 @@ require_api( 'constant_inc.php' ); require_api( 'database_api.php' ); require_api( 'email_api.php' ); -require_api( 'error_api.php' ); require_api( 'filter_api.php' ); require_api( 'helper_api.php' ); require_api( 'lang_api.php' ); diff --git a/application/core/user_pref_api.php b/application/core/user_pref_api.php index 1781cd755b..a20233df57 100644 --- a/application/core/user_pref_api.php +++ b/application/core/user_pref_api.php @@ -27,7 +27,6 @@ * @uses config_api.php * @uses constant_inc.php * @uses database_api.php - * @uses error_api.php * @uses lang_api.php * @uses user_api.php * @uses utility_api.php @@ -40,7 +39,6 @@ require_api( 'config_api.php' ); require_api( 'constant_inc.php' ); require_api( 'database_api.php' ); -require_api( 'error_api.php' ); require_api( 'lang_api.php' ); require_api( 'user_api.php' ); require_api( 'utility_api.php' ); diff --git a/docbook/Admin_Guide/en-US/Customizing.xml b/docbook/Admin_Guide/en-US/Customizing.xml index cb23532b50..f01c203b54 100644 --- a/docbook/Admin_Guide/en-US/Customizing.xml +++ b/docbook/Admin_Guide/en-US/Customizing.xml @@ -788,40 +788,5 @@ functions section. notify after an issue has been deleted - -
- Example Custom Function - - The following function is used to validate an issue before - it is resolved. - status == RESOLVED ) { -if ( $p_bug_data->resolution == OPEN ) { -error_parameters( 'the resolution cannot be open to resolve the issue' ); -trigger_error( ERROR_BUG_VALIDATE_FAILURE, ERROR ); -} -$t_version_count = count( version_get_all_rows( $p_bug_data->project_id ) ); -if ( ( $t_version_count > 0 ) && ( $p_bug_data->fixed_in_version == '' ) ) { -error_parameters( 'fixed in version must be set to resolve the issue' ); -trigger_error( ERROR_BUG_VALIDATE_FAILURE, ERROR ); -} -} -} -?>]]> - - The errors will also need to be defined by adding the following to custom_constants_inc.php - - define ( 'ERROR_VALIDATE_FAILURE', 2000 ); - To custom_strings_inc.php - $MANTIS_ERROR['ERROR_VALIDATE_FAILURE'] = 'This change cannot be made because %s'; - - -
diff --git a/public/bug_actiongroup_add_note_inc.php b/public/bug_actiongroup_add_note_inc.php index ecee8dcba5..df56908790 100644 --- a/public/bug_actiongroup_add_note_inc.php +++ b/public/bug_actiongroup_add_note_inc.php @@ -24,7 +24,6 @@ * @uses bug_api.php * @uses config_api.php * @uses constant_inc.php - * @uses error_api.php * @uses gpc_api.php * @uses helper_api.php * @uses lang_api.php @@ -42,7 +41,6 @@ require_api( 'bug_api.php' ); require_api( 'config_api.php' ); require_api( 'constant_inc.php' ); -require_api( 'error_api.php' ); require_api( 'gpc_api.php' ); require_api( 'helper_api.php' ); require_api( 'lang_api.php' ); diff --git a/public/core.php b/public/core.php index 0ece7fbce0..d16c174e14 100644 --- a/public/core.php +++ b/public/core.php @@ -206,13 +206,18 @@ function __autoload( $p_class_name ) { # Ensure that output is blank so far (output at this stage generally denotes # that an error has occurred) -# that an error has occurred) if ( ( $t_output = ob_get_contents() ) != '' ) { echo 'Possible Whitespace/Error in Configuration File - Aborting. Output so far follows:
'; echo var_dump( $t_output ); die; } +# Register exception handlers +use MantisBT\Error; +set_exception_handler(array('MantisBT\Error', 'exception_handler')); +set_error_handler(array('MantisBT\Error', 'error_handler')); +register_shutdown_function(array('MantisBT\Error', 'shutdown_error_handler')); + # Start HTML compression handler (if enabled) require_api( 'compress_api.php' ); compress_start_handler(); diff --git a/public/print_all_bug_options_reset.php b/public/print_all_bug_options_reset.php index b602deb63c..79a7cfb985 100644 --- a/public/print_all_bug_options_reset.php +++ b/public/print_all_bug_options_reset.php @@ -27,7 +27,6 @@ * @uses constant_inc.php * @uses current_user_api.php * @uses database_api.php - * @uses error_api.php * @uses form_api.php * @uses html_api.php * @uses lang_api.php @@ -42,7 +41,6 @@ require_api( 'constant_inc.php' ); require_api( 'current_user_api.php' ); require_api( 'database_api.php' ); -require_api( 'error_api.php' ); require_api( 'form_api.php' ); require_api( 'html_api.php' ); require_api( 'lang_api.php' ); diff --git a/public/print_all_bug_options_update.php b/public/print_all_bug_options_update.php index 02a360ca9b..40f6bac727 100644 --- a/public/print_all_bug_options_update.php +++ b/public/print_all_bug_options_update.php @@ -26,7 +26,6 @@ * @uses authentication_api.php * @uses constant_inc.php * @uses database_api.php - * @uses error_api.php * @uses form_api.php * @uses gpc_api.php * @uses html_api.php @@ -41,7 +40,6 @@ require_api( 'authentication_api.php' ); require_api( 'constant_inc.php' ); require_api( 'database_api.php' ); -require_api( 'error_api.php' ); require_api( 'form_api.php' ); require_api( 'gpc_api.php' ); require_api( 'html_api.php' ); diff --git a/public/proj_doc_add.php b/public/proj_doc_add.php index f6580d2b97..48dcd6f34e 100644 --- a/public/proj_doc_add.php +++ b/public/proj_doc_add.php @@ -24,7 +24,6 @@ * @uses access_api.php * @uses config_api.php * @uses constant_inc.php - * @uses error_api.php * @uses file_api.php * @uses form_api.php * @uses gpc_api.php @@ -41,7 +40,6 @@ require_api( 'access_api.php' ); require_api( 'config_api.php' ); require_api( 'constant_inc.php' ); -require_api( 'error_api.php' ); require_api( 'file_api.php' ); require_api( 'form_api.php' ); require_api( 'gpc_api.php' ); diff --git a/public/view_user_page.php b/public/view_user_page.php index 77cf33ebfa..4741e640bb 100644 --- a/public/view_user_page.php +++ b/public/view_user_page.php @@ -24,7 +24,6 @@ * @uses authentication_api.php * @uses config_api.php * @uses constant_inc.php - * @uses error_api.php * @uses gpc_api.php * @uses helper_api.php * @uses html_api.php @@ -42,7 +41,6 @@ require_api( 'authentication_api.php' ); require_api( 'config_api.php' ); require_api( 'constant_inc.php' ); -require_api( 'error_api.php' ); require_api( 'gpc_api.php' ); require_api( 'helper_api.php' ); require_api( 'html_api.php' );