[ Index ]
 

Code source de XOOPS 2.0.17.1

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/htdocs/class/ -> logger_render.php (source)

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


Généré le : Sun Nov 25 11:44:32 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics