[ Index ] |
|
Code source de XOOPS 2.0.17.1 |
1 <?php 2 3 defined( 'XOOPS_ROOT_PATH' ) or die(); 4 5 $ret = ''; 6 7 if ( $mode == 'popup' ) { 8 $dump = $this->dump( '' ); 9 $content = ' 10 <html> 11 <head> 12 <meta http-equiv="content-type" content="text/html; charset='._CHARSET.'" /> 13 <meta http-equiv="content-language" content="'._LANGCODE.'" /> 14 <title>'.$xoopsConfig['sitename'].'</title> 15 <link rel="stylesheet" type="text/css" media="all" href="'.getcss($xoopsConfig['theme_set']).'" /> 16 </head> 17 <body>' . $dump . ' 18 <div style="text-align:center;"> 19 <input class="formButton" value="'._CLOSE.'" type="button" onclick="javascript:window.close();" /> 20 </div> 21 </body> 22 </html>'; 23 $ret .= ' 24 <script type="text/javascript"> 25 debug_window = openWithSelfMain("about:blank", "popup", 680, 450, true); 26 debug_window.document.clear(); 27 '; 28 $lines = preg_split("/(\r\n|\r|\n)( *)/", $content); 29 foreach ($lines as $line) { 30 $ret .= "\n" . 'debug_window.document.writeln("'.str_replace( array( '"', '</' ), array( '\"', '<\/' ), $line).'");'; 31 } 32 $ret .= ' 33 debug_window.focus(); 34 debug_window.document.close(); 35 </script>'; 36 } 37 38 if ( empty( $mode ) ) { 39 $views = array( 'errors', 'queries', 'blocks', 'extra' ); 40 $ret .= "\n<div id=\"xo-logger-output\">\n<div id='xo-logger-tabs'>\n"; 41 $ret .= "<a href='javascript:xoSetLoggerView(\"\")'>All</a>\n"; 42 foreach ( $views as $view ) { 43 $count = count( $this->$view ); 44 $ret .= "<a href='javascript:xoSetLoggerView(\"$view\")'>$view ($count)</a>\n"; 45 } 46 $count = count( $this->logstart ); 47 $ret .= "<a href='javascript:xoSetLoggerView(\"timers\")'>timers ($count)</a>\n"; 48 $ret .= "</div>\n"; 49 } 50 51 if ( empty($mode) || $mode == 'errors' ) { 52 $types = array( 53 E_USER_NOTICE => 'Notice', 54 E_USER_WARNING => 'Warning', 55 E_USER_ERROR => 'Error', 56 E_NOTICE => 'Notice', 57 E_WARNING => 'Warning', 58 E_STRICT => 'Strict', 59 ); 60 $class = 'even'; 61 $ret .= '<table id="xo-logger-errors" class="outer"><tr><th>Errors</th></tr>'; 62 foreach ( $this->errors as $error ) { 63 $ret .= "\n<tr><td class='$class'>"; 64 $ret .= isset( $types[ $error['errno'] ] ) ? $types[ $error['errno'] ] : 'Unknown'; 65 $ret .= sprintf( ": %s in file %s line %s<br />\n", $error['errstr'], $error['errfile'], $error['errline'] ); 66 $ret .= "</td></tr>"; 67 $class = ($class == 'odd') ? 'even' : 'odd'; 68 } 69 $ret .= "\n</table>\n"; 70 } 71 72 if ( empty($mode) || $mode == 'queries' ) { 73 $class = 'even'; 74 $ret .= '<table id="xo-logger-queries" class="outer"><tr><th>Queries</th></tr>'; 75 foreach ($this->queries as $q) { 76 if (isset($q['error'])) { 77 $ret .= '<tr class="'.$class.'"><td><span style="color:#ff0000;">'.htmlentities($q['sql']).'<br /><b>Error number:</b> '.$q['errno'].'<br /><b>Error message:</b> '.$q['error'].'</span></td></tr>'; 78 } else { 79 $ret .= '<tr class="'.$class.'"><td>'.htmlentities($q['sql']).'</td></tr>'; 80 } 81 $class = ($class == 'odd') ? 'even' : 'odd'; 82 } 83 $ret .= '<tr class="foot"><td>Total: <span style="color:#ff0000;">'.count($this->queries).'</span> queries</td></tr></table>'; 84 } 85 if ( empty($mode) || $mode == 'blocks' ) { 86 $class = 'even'; 87 $ret .= '<table id="xo-logger-blocks" class="outer"><tr><th colspan="2">Blocks</th></tr>'; 88 foreach ($this->blocks as $b) { 89 if ($b['cached']) { 90 $ret .= '<tr><td class="'.$class.'"><b>'.htmlspecialchars($b['name']).':</b> Cached (regenerates every '.intval($b['cachetime']).' seconds)</td></tr>'; 91 } else { 92 $ret .= '<tr><td class="'.$class.'"><b>'.htmlspecialchars($b['name']).':</b> No Cache</td></tr>'; 93 } 94 $class = ($class == 'odd') ? 'even' : 'odd'; 95 } 96 $ret .= '<tr class="foot"><td>Total: <span style="color:#ff0000;">'.count($this->blocks).'</span> blocks</td></tr></table>'; 97 } 98 if ( empty($mode) || $mode == 'extra' ) { 99 $this->addExtra( 'Included files', count ( get_included_files() ) . ' files' ); 100 $memory = 0; 101 if ( function_exists( 'memory_get_usage' ) ) { 102 $memory = memory_get_usage() . ' bytes'; 103 } else { 104 $os = isset( $_ENV['OS'] ) ? $_ENV['OS'] : $_SERVER['OS']; 105 if ( strpos( strtolower( $os ), 'windows') !== false ) { 106 $out = array(); 107 exec('tasklist /FI "PID eq ' . getmypid() . '" /FO LIST', $out ); 108 $memory = substr( $out[5], strpos( $out[5], ':') + 1) . ' [Estimated]'; 109 } 110 } 111 if ( $memory ) { 112 $this->addExtra( 'Memory usage', $memory ); 113 } 114 115 $class = 'even'; 116 $ret .= '<table id="xo-logger-extra" class="outer"><tr><th colspan="2">Extra</th></tr>'; 117 foreach ($this->extra as $ex) { 118 $ret .= '<tr><td class="'.$class.'"><b>'.htmlspecialchars($ex['name']).':</b> '.htmlspecialchars($ex['msg']).'</td></tr>'; 119 $class = ($class == 'odd') ? 'even' : 'odd'; 120 } 121 $ret .= '</table>'; 122 } 123 if ( empty($mode) || $mode == 'timers' ) { 124 $class = 'even'; 125 $ret .= '<table id="xo-logger-timers" class="outer"><tr><th colspan="2">Timers</th></tr>'; 126 foreach ( $this->logstart as $k => $v ) { 127 $ret .= '<tr><td class="'.$class.'"><b>'.htmlspecialchars($k).'</b> took <span style="color:#ff0000;">' . sprintf( "%.03f", $this->dumpTime($k) ) . '</span> seconds to load.</td></tr>'; 128 $class = ($class == 'odd') ? 'even' : 'odd'; 129 } 130 $ret .= '</table>'; 131 } 132 133 if ( empty( $mode ) ) { 134 $ret .= <<<EOT 135 </div> 136 <script type="text/javascript"> 137 function xoLogCreateCookie(name,value,days) { 138 if (days) { 139 var date = new Date(); 140 date.setTime(date.getTime()+(days*24*60*60*1000)); 141 var expires = "; expires="+date.toGMTString(); 142 } 143 else var expires = ""; 144 document.cookie = name+"="+value+expires+"; path=/"; 145 } 146 function xoLogReadCookie(name) { 147 var nameEQ = name + "="; 148 var ca = document.cookie.split(';'); 149 for(var i=0;i < ca.length;i++) { 150 var c = ca[i]; 151 while (c.charAt(0)==' ') c = c.substring(1,c.length); 152 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 153 } 154 return null; 155 } 156 function xoLogEraseCookie(name) { 157 createCookie(name,"",-1); 158 } 159 function xoSetLoggerView( name ) { 160 var log = document.getElementById( "xo-logger-output" ); 161 if ( !log ) return; 162 var i, elt; 163 for ( i=0; i!=log.childNodes.length; i++ ) { 164 elt = log.childNodes[i]; 165 if ( elt.tagName && elt.tagName.toLowerCase() != 'script' && elt.id != "xo-logger-tabs" ) { 166 elt.style.display = ( !name || elt.id == "xo-logger-" + name ) ? "block" : "none"; 167 } 168 } 169 xoLogCreateCookie( 'XOLOGGERVIEW', name, 1 ); 170 } 171 xoSetLoggerView( xoLogReadCookie( 'XOLOGGERVIEW' ) ); 172 </script> 173 174 EOT; 175 } 176 177 178 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Nov 25 11:44:32 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |