home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / CMS / xoops-2.0.18.1.exe / xoops-2.0.18.1 / htdocs / class / logger_render.php < prev    next >
Encoding:
PHP Script  |  2006-09-04  |  6.3 KB  |  178 lines

  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. ?>