This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
studentersamfundet.no/wp/wp-content/plugins/debug-bar/panels/class-debug-bar-php.php
T

83 lines
2.3 KiB
PHP

<?php
class Debug_Bar_PHP extends Debug_Bar_Panel {
var $warnings = array();
var $notices = array();
var $real_error_handler = array();
function init() {
if ( ! WP_DEBUG )
return false;
$this->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 "<div id='debug-bar-php'>";
echo '<h2><span>Total Warnings:</span>' . number_format( count( $this->warnings ) ) . "</h2>\n";
echo '<h2><span>Total Notices:</span>' . number_format( count( $this->notices ) ) . "</h2>\n";
if ( count( $this->warnings ) ) {
echo '<ol class="debug-bar-php-list">';
foreach ( $this->warnings as $location_message) {
list( $location, $message) = $location_message;
echo "<li class='debug-bar-php-warning'>WARNING: ".str_replace(ABSPATH, '', $location) . ' - ' . strip_tags($message). "</li>";
}
echo '</ol>';
}
if ( count( $this->notices ) ) {
echo '<ol class="debug-bar-php-list">';
foreach ( $this->notices as $location_message) {
list( $location, $message) = $location_message;
echo "<li class='debug-bar-php-notice'>NOTICE: ".str_replace(ABSPATH, '', $location) . ' - ' . strip_tags($message). "</li>";
}
echo '</ol>';
}
echo "</div>";
}
}