Subversion Repositories bysoftdeveloper

[/] [kernel/] [ezdebug.php] - Diff between revs 31 and 32

Show entire file | Ignore whitespace | Details | Blame | View Log

Rev 31 Rev 32
Line 1413... Line 1413...
echo <<<EOT
echo <<<EOT
<script type="text/javascript">
<script type="text/javascript">
        //
        //
        // author cavin.deng, alva.wu
        // author cavin.deng, alva.wu
        //
        //
 
        if(!Array.indexOf){
 
            Array.prototype.indexOf = function(obj){
 
                for(var i=0; i<this.length; i++){
 
                    if(this[i]==obj){
 
                        return i;
 
                    }
 
                }
 
                return -1;
 
            }
 
        }
        String.prototype.trim = function() {
        String.prototype.trim = function() {
                return this.replace(/^\s+|\s+$/g,"");
                return this.replace(/^\s+|\s+$/g,"");
        }
        }
        String.prototype.ltrim = function() {
        String.prototype.ltrim = function() {
                return this.replace(/^\s+/,"");
                return this.replace(/^\s+/,"");
        }
        }
        String.prototype.rtrim = function() {
        String.prototype.rtrim = function() {
                return this.replace(/\s+$/,"");
                return this.replace(/\s+$/,"");
        }
        }
        var _get = function(v, i, t){
       
 
        var _get = function(v, i, t, o){
 
                var parent = o || document;
                switch(i){
                switch(i){
                case 'id':
                case 'id':
                        return document.getElementById(v);
                        return parent.getElementById(v);
                case 'name':
                case 'name':
                        if(t == 'list')
                        if(t == 'list')
                                return document.getElementsByName(v);
                                return parent.getElementsByName(v);
                        else
                        else
                                return document.getElementByName(v);
                                return parent.getElementByName(v);
 
                       
                default:
                default:
                        return document.getElementById(v);
                        return parent.getElementById(v);
            }
            }
        }
        }
        function bysoftdeveloperAjax(options){
        function bysoftdeveloperAjax(options){
               
               
                var isOpera = navigator.userAgent.indexOf('Opera') > -1;
                var isOpera = navigator.userAgent.indexOf('Opera') > -1;
Line 1544... Line 1557...
                                result = callback( result );
                                result = callback( result );
                        }
                        }
                }
                }
                return result;
                return result;
        }
        }
 
var goX=_get('debug').style.left;
 
var goY=_get('debug').style.top;
 
function goTo(a, t) {
 
        a = a || 0.1;
 
        t = t || 16;
 
 
 
        var x1 = 0;
 
        var y1 = 0;
 
        var x2 = 0;
 
        var y2 = 0;
 
        var x3 = 0;
 
        var y3 = 0;
 
 
 
        if (document.documentElement) {
 
                x1 = document.documentElement.scrollLeft || 0;
 
                y1 = document.documentElement.scrollTop || 0;
 
        }
 
        if (document.body) {
 
                x2 = document.body.scrollLeft || 0;
 
                y2 = document.body.scrollTop || 0;
 
        }
 
        var x3 = window.scrollX || 0;
 
        var y3 = window.scrollY || 0;
 
 
 
        var x = Math.max(x1, Math.max(x2, x3));
 
        var y = Math.max(y1, Math.max(y2, y3));
 
 
 
        var speed = 1 + a;
 
        window.scrollTo(Math.floor(x / speed), Math.floor(y / speed));
 
        if(x > goX || y > goY) {
 
                var f = "goTo(" + a + ", " + t + ")";
 
                window.setTimeout(f, t);
 
        }
 
}
/*
/*
Yetii - Yet (E)Another Tab Interface Implementation
Yetii - Yet (E)Another Tab Interface Implementation
version 1.6
version 1.6
http://www.kminek.pl/lab/yetii/
http://www.kminek.pl/lab/yetii/
Copyright (c) Grzegorz Wojcik
Copyright (c) Grzegorz Wojcik
Line 1756... Line 1803...
function bysoftdeveloperToggleDebugBox(){
function bysoftdeveloperToggleDebugBox(){
        bysoftdeveloperToggleById('bysoftdeveloper-wrapper');
        bysoftdeveloperToggleById('bysoftdeveloper-wrapper');
        bysoftdeveloperToggleById('bysoftdeveloper-clear-cache');
        bysoftdeveloperToggleById('bysoftdeveloper-clear-cache');
        //bysoftdeveloperToggleInlineById('bysoftdeveloper-clear-cache');
        //bysoftdeveloperToggleInlineById('bysoftdeveloper-clear-cache');
}
}
 
//var bysoftdeveloperDebugArray = _get('debug-row', 'name', 'list');
 
var bysoftdeveloperDebugArray = document.getElementsByTagName('dl');
 
var bysoftdeveloperDebugFilter = function(){
 
    var cb = _get('bysoftdeveloper-debug-filter', 'name', 'list');
 
    var checked_level = Array();
 
    for(var k = 0; k < cb.length; k++){
 
               
 
        if(cb[k].checked){
 
 
 
                checked_level.push(cb[k].value);
 
        }
 
    }
 
 
 
        for(k = 0; k < bysoftdeveloperDebugArray.length; k++){
 
               
 
                if(typeof(bysoftdeveloperDebugArray[k]) == 'object' && bysoftdeveloperDebugArray[k].getAttribute('name') == 'debug-row') {
 
                if(checked_level.indexOf(bysoftdeveloperDebugArray[k].className) == -1  ){
 
                        bysoftdeveloperDebugArray[k].style.display = 'none';
 
                }else{
 
                        bysoftdeveloperDebugArray[k].style.display = '';
 
                }
 
        }
 
    }
 
}
 
 
 
var bysoftdeveloperDebugTabAccordion = function(ah){
 
    var ctn = ah.nextSibling;
 
    if( ctn.style.display == 'none' ){
 
        ctn.style.display = 'block';
 
    }else{
 
        ctn.style.display = 'none';
 
    }
 
}
 
 
 
 
function bysoftdeveloperToggleInlineById(e, status) {
function bysoftdeveloperToggleInlineById(e, status) {
        if( typeof e == 'string' ) e = _get(e);
        if( typeof e == 'string' ) e = _get(e);
                               
                               
        if( status != undefined ){
        if( status != undefined ){
Line 1833... Line 1914...
</script>
</script>
 
 
<style type="text/css">
<style type="text/css">
pre{
pre{
        white-space: pre-line;
        white-space: pre-line;
 
}
 
#bysoftdeveloper-content h2{
 
        font-size: 120%;
 
        cursor: pointer;
 
        border: 1px solid #ccc;
 
        margin-bottom: 5px;
 
        background: #eee;
}
}
.bysoftdeveloper-tabs-container a{
.bysoftdeveloper-tabs-container a{
    color: #E55211;
    color: #E55211;
    text-decoration: none;
    text-decoration: none;
}
}
.bysoftdeveloper-tabs-container{
.bysoftdeveloper-tabs-container{
 
        font-family: monospace;
 
        font-size: 110%;
       
       
}
}
.bysoftdeveloper-ul-layout a.active{
.bysoftdeveloper-ul-layout a.active{
    background: none repeat scroll 0 0 #FFFFFF;
    background: none repeat scroll 0 0 #FFFFFF;
    color: #0000FF;
    color: #0000FF;
Line 1893... Line 1983...
        // dynamic generation of tabs caller
        // dynamic generation of tabs caller
        $tabloadfunction = $tabini->variable('Tab-' . $key, 'Tabload');
        $tabloadfunction = $tabini->variable('Tab-' . $key, 'Tabload');
        if(isset($tabloadfunction) && $tabloadfunction != '')
        if(isset($tabloadfunction) && $tabloadfunction != '')
        {
        {
                $tabsCallerHTML .=<<<EOT
                $tabsCallerHTML .=<<<EOT
                if (tabnumber == $tabsStartNum && $tabloadfunction instanceof Function )
                if (tabnumber == $tabsStartNum && typeof($tabloadfunction) == 'function' )
                {
                {
                        $tabloadfunction();
                        $tabloadfunction();
                }
                }
EOT;
EOT;
        }
        }
Line 1911... Line 2001...
 
 
 
 
 
 
                        echo <<<EOT
                        echo <<<EOT
        <div id="debug" style="position:absolute;left:$float_x;z-index:999;font-size:11px;font-family:Verdana,Arial,Tahoma,'Courier New';">
        <div id="debug" style="position:absolute;left:$float_x;z-index:999;font-size:11px;font-family:Verdana,Arial,Tahoma,'Courier New';">
                <div id="bysoftdeveloper-toggle" style="cursor:pointer;height:20px;background-color:green;color:white;" onclick="javascript:bysoftdeveloperToggleDebugBox();">
                <div id="bysoftdeveloper-toggle" style="cursor:pointer;height:20px;background-color:green;color:white;padding-left:3px;padding-right:3px;" onclick="javascript:bysoftdeveloperToggleDebugBox();">
                        <a style="color:white;float:left;">Debug Tool</a>
                        <a style="color:white;float:left;">Debug Tool</a>
 
                       
                        <a onclick="javascript:bysoftdeveloperClearCache(event);"
                        <a onclick="javascript:bysoftdeveloperClearCache(event);"
                        id="bysoftdeveloper-clear-cache"
                        id="bysoftdeveloper-clear-cache"
                        style="display:none;color:white;float:right;">
                        style="display:none;color:white;float:right;">
                        Clear Cache
                        Clear Cache
                </a>
                </a>
                </div>
                </div>
                <div id="bysoftdeveloper-message" style="padding-left:10px;padding-right:10px;background-color:green;color:white;text-align:center;">
                <div id="bysoftdeveloper-message" style="display:none;padding-left:10px;padding-right:10px;font-weight:bold;background-color:green;color:white;text-align:center;">
                </div>
                </div>
                <div id="bysoftdeveloper-wrapper"
                <div id="bysoftdeveloper-wrapper"
                        style="display:none;background-color:white;border:3px solid green;width:$width;">
                        style="display:none;background-color:white;border:3px solid green;">
               
               
                        <ul id="bysoftdeveloper-wrapper-nav" class="bysoftdeveloper-ul-layout">
                        <ul id="bysoftdeveloper-wrapper-nav" class="bysoftdeveloper-ul-layout">
                    <li><a href="#bysoftdeveloper-content">Debug</a></li>
                    <li><a href="#bysoftdeveloper-content">Debug</a></li>
                    <li><a href="#bysoftdeveloper-template">Templates</a></li>
                    <li><a href="#bysoftdeveloper-template">Templates</a></li>
                    <li><a href="#bysoftdeveloper-toolbar">Toolbar</a></li>
                    <li><a href="#bysoftdeveloper-toolbar">Toolbar</a></li>
Line 1978... Line 2069...
            // cavin.deng
            // cavin.deng
            // capture main debug output
            // capture main debug output
            if ($as_html) {
            if ($as_html) {
                ob_start();    
                ob_start();    
            }
            }
            echo "<table style='border: 1px lightgray;' cellspacing='0' summary='Table for actual debug output, shows notices, warnings and errors.'>";
            echo "<h2 onclick='javascript:bysoftdeveloperDebugTabAccordion(this);'>Debug Messages:</h2>";
 
            echo "<div style='width:$width;'><label style='display:inline;'><input type='checkbox' value='debuglevel-1' name='bysoftdeveloper-debug-filter' checked='checked' onclick='javascript:bysoftdeveloperDebugFilter();' /><b style='color: {$this->OutputFormat[self::LEVEL_NOTICE]['color']};'>Notice</b></label>
 
        <label style='display:inline;'><input type='checkbox' value='debuglevel-2' name='bysoftdeveloper-debug-filter' checked='checked' onclick='javascript:bysoftdeveloperDebugFilter();' /><b style='color: {$this->OutputFormat[self::LEVEL_WARNING]['color']};'>Warning</b></label>
 
        <label style='display:inline;'><input type='checkbox' value='debuglevel-3' name='bysoftdeveloper-debug-filter' checked='checked' onclick='javascript:bysoftdeveloperDebugFilter();' /><b style='color: {$this->OutputFormat[self::LEVEL_ERROR]['color']};'>Error</b></label>
 
        <label style='display:inline;'><input type='checkbox' value='debuglevel-4' name='bysoftdeveloper-debug-filter' checked='checked' onclick='javascript:bysoftdeveloperDebugFilter();' /><b style='color: {$this->OutputFormat[self::LEVEL_TIMING_POINT]['color']};'>Timing point</b></label>
 
        <label style='display:inline;'><input type='checkbox' value='debuglevel-5' name='bysoftdeveloper-debug-filter' checked='checked' onclick='javascript:bysoftdeveloperDebugFilter();' /><b style='color: {$this->OutputFormat[self::LEVEL_DEBUG]['color']};'>Debug</b></label>
 
        <label style='display:inline;'><input type='checkbox' value='debuglevel-6' name='bysoftdeveloper-debug-filter' checked='checked' onclick='javascript:bysoftdeveloperDebugFilter();' /><b style='color: {$this->OutputFormat[self::LEVEL_STRICT]['color']};'>Strict</b></label>";
        }
        }
 
 
       
       
        // cavin.deng capture output
        // cavin.deng capture output
        ob_start();
        ob_start();
Line 2030... Line 2127...
                    if ( extension_loaded( 'xdebug' ) && ( strncmp( self::XDEBUG_SIGNATURE, $debug['String'], strlen( self::XDEBUG_SIGNATURE ) ) === 0 ) )
                    if ( extension_loaded( 'xdebug' ) && ( strncmp( self::XDEBUG_SIGNATURE, $debug['String'], strlen( self::XDEBUG_SIGNATURE ) ) === 0 ) )
                        $contents = substr( $debug['String'], strlen( self::XDEBUG_SIGNATURE ) );
                        $contents = substr( $debug['String'], strlen( self::XDEBUG_SIGNATURE ) );
                    else
                    else
                        $contents = htmlspecialchars( $debug['String'] );
                        $contents = htmlspecialchars( $debug['String'] );
 
 
                    echo "<tr><td class='debugheader' valign='top'$identifierText><b><span style='color: $color'>$name:</span> $label</b></td>
             /*       echo "<tr class='debuglevel-{$debug['Level']}' name='debug-row'><td class='debugheader' valign='top'$identifierText><b><span style='color: $color'>$name:</span> $label</b></td>
                                    <td class='debugheader' valign='top'>$time</td></tr>
                                    <td class='debugheader' valign='top'>$time</td></tr>
                                    <tr><td colspan='2'><pre$pre>" .  $contents . "</pre></td></tr>";
                                    <tr class='debuglevel-{$debug['Level']}' name='debug-row'><td colspan='2'><pre$pre>" .  $contents . "</pre></td></tr>";*/
 
                    echo "<dl class='debuglevel-{$debug['Level']}' name='debug-row'><dt class='debugheader' valign='top'$identifierText><b><span style='color: $color'>$name:</span> $label</b></td>
 
                                    <span class='debugheader' style='float:right; margin-right:5px;'>$time</span></dt>
 
                                    <dd class='debuglevel-{$debug['Level']}'>";
 
                    if($debug['Level'] == self::LEVEL_NOTICE)
 
                        echo "<pre$pre style='width:$width;     overflow-x:scroll;'>  $contents </pre>";
 
                    else
 
                        echo $contents ;
 
                    echo "</dd></dl>";
                }
                }
                else
                else
                {
                {
                    echo $styles[$outputData['style']] . "$name:" . $styles[$outputData['style'].'-end'] . " ";
                    echo $styles[$outputData['style']] . "$name:" . $styles[$outputData['style'].'-end'] . " ";
                    echo $styles['bold'] . "($label)" . $styles['bold-end'] . "\n" . $debug["String"] . "\n\n";
                    echo $styles['bold'] . "($label)" . $styles['bold-end'] . "\n" . $debug["String"] . "\n\n";
Line 2044... Line 2149...
            }
            }
            flush();
            flush();
        }
        }
        if ( $as_html )
        if ( $as_html )
        {
        {
            echo "</table>";
   //         echo "</table>";
 
                        echo '</div>';
            echo "<h2>Timing points:</h2>";
            echo "<h2 onclick='javascript:bysoftdeveloperDebugTabAccordion(this);'>Timing points:</h2>";
            echo "<table id='timingpoints' style='border: 1px dashed black;' cellspacing='0' summary='Tabel of timingpoint stats.'><tr><th>Checkpoint</th><th>Elapsed</th><th>Rel. Elapsed</th><th>Memory</th><th>Rel. Memory</th></tr>";
            echo "<table id='timingpoints' style='border: 1px dashed black;' cellspacing='0' summary='Tabel of timingpoint stats.'><tr><th>Checkpoint</th><th>Elapsed</th><th>Rel. Elapsed</th><th>Memory</th><th>Rel. Memory</th></tr>";
        }
        }
        $startTime = false;
        $startTime = false;
        $elapsed = 0.00;
        $elapsed = 0.00;
        $relElapsed = 0.00;
        $relElapsed = 0.00;
Line 2182... Line 2287...
                echo "</table>";
                echo "</table>";
        }
        }
 
 
        if ( $as_html )
        if ( $as_html )
        {
        {
            echo "<h2>Time accumulators:</h2>";
            echo "<h2 onclick='javascript:bysoftdeveloperDebugTabAccordion(this);'>Time accumulators:</h2>";
            echo "<table id='timeaccumulators' style='border: 1px dashed black;' cellspacing='0' summary='Table with detailed list of time accumulators'><tr><th>&nbsp;Accumulator</th><th>&nbsp;Elapsed</th><th>&nbsp;Percent</th><th>&nbsp;Count</th><th>&nbsp;Average</th></tr>";
            echo "<table id='timeaccumulators' style='border: 1px dashed black;' cellspacing='0' summary='Table with detailed list of time accumulators'><tr><th>&nbsp;Accumulator</th><th>&nbsp;Elapsed</th><th>&nbsp;Percent</th><th>&nbsp;Count</th><th>&nbsp;Average</th></tr>";
            $i = 0;
            $i = 0;
        }
        }
 
 
        $scriptEndTime = microtime( true );
        $scriptEndTime = microtime( true );
Line 2401... Line 2506...
                e.stopPropagation();
                e.stopPropagation();
    }
    }
        var options = {url:'$bysoftdeveloperClearCacheUrl', callback:bysoftdeveloperClearCacheMessage};
        var options = {url:'$bysoftdeveloperClearCacheUrl', callback:bysoftdeveloperClearCacheMessage};
        function bysoftdeveloperClearCacheMessage(result){
        function bysoftdeveloperClearCacheMessage(result){
                _get('bysoftdeveloper-message').innerHTML = result;
                _get('bysoftdeveloper-message').innerHTML = result;
                _get('bysoftdeveloper-message').style.display = 'block';
                _get('bysoftdeveloper-message').style.display = '';
                bysoftdeveloperHiddenMessage(3000);
                bysoftdeveloperHiddenMessage(3000);
    }
    }
        bysoftdeveloperAjax(options);
        bysoftdeveloperAjax(options);
}
}