title( __('Notices / Warnings', 'debug-bar') ); $this->real_error_handler = set_error_handler( array( &$this, 'error_handler' ) ); } function is_visible() { return count( $this->notices ) || count( $this->warnings ); } function debug_bar_classes( $classes ) { if ( count( $this->warnings ) ) $classes[] = 'debug-bar-php-warning-summary'; elseif ( count( $this->notices ) ) $classes[] = 'debug-bar-php-notice-summary'; return $classes; } function error_handler( $type, $message, $file, $line ) { $_key = md5( $file . ':' . $line . ':' . $message ); switch ( $type ) { case E_WARNING : case E_USER_WARNING : $this->warnings[$_key] = array( $file.':'.$line, $message ); break; case E_NOTICE : case E_USER_NOTICE : $this->notices[$_key] = array( $file.':'.$line, $message ); break; case E_STRICT : // TODO break; case E_DEPRECATED : case E_USER_DEPRECATED : // TODO break; case 0 : // TODO break; } if ( null != $this->real_error_handler ) return call_user_func( $this->real_error_handler, $type, $message, $file, $line ); else return false; } function render() { echo "
"; echo '

Total Warnings:' . number_format( count( $this->warnings ) ) . "

\n"; echo '

Total Notices:' . number_format( count( $this->notices ) ) . "

\n"; if ( count( $this->warnings ) ) { echo '
    '; foreach ( $this->warnings as $location_message) { list( $location, $message) = $location_message; echo "
  1. WARNING: ".str_replace(ABSPATH, '', $location) . ' - ' . strip_tags($message). "
  2. "; } echo '
'; } if ( count( $this->notices ) ) { echo '
    '; foreach ( $this->notices as $location_message) { list( $location, $message) = $location_message; echo "
  1. NOTICE: ".str_replace(ABSPATH, '', $location) . ' - ' . strip_tags($message). "
  2. "; } echo '
'; } echo "
"; } }