linea21-externals
[ class tree: linea21-externals ] [ index: linea21-externals ] [ all elements ]

Source for file Table.php

Documentation is available at Table.php

  1. <?php
  2.  
  3. /**
  4.  * Class of the HTML_Table renderer
  5.  */
  6. require_once 'PHP/Debug/Renderer/HTML/TableConfig.php';
  7.  
  8. /**
  9.  * A concrete renderer for Debug
  10.  *
  11.  * Returns a table-based representation of the debug infos in HTML 4
  12.  *
  13.  * @package    linea21.externals
  14.  * @subpackage PHP_DEBUG
  15.  * @author     Vernet Loïc <qrf_coil[at]yahoo.fr>, Fabien Potencier, François Zaninotto
  16.  * @since V2.0.0 - 10 Apr 2006
  17.  *
  18.  *
  19.  * @version    CVS: $Id: Table.php,v 1.2 2009/01/12 21:13:00 c0il Exp $
  20.  */
  21.  
  22. {
  23.   /**
  24.    * Debug_Renderer_HTML_Table class constructor
  25.    *
  26.    * @since V2.0.0 - 13 apr 2006
  27.    */
  28.   function __construct($DebugObject$options)
  29.   {
  30.     $this->DebugObject = $DebugObject;
  31.     $this->setOptions($options);
  32.  
  33.     // Now add in first the predefined debugline depending on the configuration
  34.     if ($this->options['HTML_TABLE_enable_search'== true)
  35.     $this->DebugObject->addDebugFirst(''PHP_DebugLine::TYPE_SEARCH);
  36.  
  37.     if ($this->options['HTML_TABLE_disable_credits'== false)
  38.     $this->DebugObject->addDebugFirst(
  39.     $this->options['HTML_TABLE_credits'],
  40.     PHP_DebugLine::TYPE_CREDITS);
  41.  
  42.     // Now add in last positions the others predefined debuglines
  43.  
  44.     // Add execution time
  45.     $this->DebugObject->addDebug(''PHP_DebugLine::TYPE_PROCESSPERF);
  46.  
  47.     // Add templates
  48.     if ($this->options['HTML_TABLE_show_templates'== true)
  49.     $this->DebugObject->addDebug(STR_NPHP_DebugLine::TYPE_TEMPLATES);
  50.  
  51.     // Add env variables
  52.     $this->addSuperArray();
  53.  
  54.   }
  55.  
  56.   /**
  57.    * This is the function to display the debug information
  58.    *
  59.    * @since V2.0.0 - 07 Apr 2006
  60.    * @see PHP_Debug::Render()
  61.    */
  62.   public function display()
  63.   {
  64.     $buffer '';
  65.  
  66.     // Header
  67.     $buffer .= $this->displayHeader();
  68.      
  69.     // Body
  70.     foreach ($this->DebugObject->getDebugBuffer(as $lvalue{
  71.  
  72.       // Check if the debug must be displayed
  73.       if ($this->checkType($lvalue== true{
  74.  
  75.         $tmpBuff $this->displayDebugLine($lvalue);
  76.  
  77.         // Check if we have a search criteria
  78.         if ($this->checkSearch($tmpBuff)) {
  79.  
  80.           // Pre-row
  81.           $buffer .= $this->options['HTML_TABLE_prerow'];
  82.  
  83.           // Row body
  84.           $buffer .= $this->highlight($tmpBuff);
  85.  
  86.           // Post-row
  87.           $buffer .= $this->options['HTML_TABLE_postrow'];
  88.  
  89.         }
  90.       }
  91.     }
  92.  
  93.     // Footer
  94.     $buffer .= $this->displayFooter();
  95.  
  96.     // Output Buffer
  97.     return $buffer;
  98.   }
  99.  
  100.   /**
  101.    * This function highligth the searched keyword
  102.    *
  103.    * @param string $debugLineStr The formatted debug line object to check
  104.    * @return string Formatted string with keyword highligthed
  105.    *
  106.    * @since V2.0.0 - 2 May 2006
  107.    */
  108.   protected function highlight($debugLineStr)
  109.   {
  110.     // Check if search is activated
  111.     if (!empty($_GET['PHPDEBUG_SEARCH']&&
  112.     trim($_GET['PHPDEBUG_SEARCH']!= ''{
  113.       if (!empty($_GET['PHPDEBUG_SEARCH_CS'])) {
  114.         $replaceFunction 'str_replace';
  115.       else {
  116.         $replaceFunction 'str_ireplace';
  117.       }
  118.       return $replaceFunction($_GET['PHPDEBUG_SEARCH'],
  119.                 '<span class="pd-search-hl">'$_GET['PHPDEBUG_SEARCH']
  120.                 '</span>' $debugLineStr);        
  121.     else {
  122.       return $debugLineStr;
  123.     }
  124.   }
  125.  
  126.   /**
  127.    * This function check if the user has chosen a search criteria and
  128.    * make the search on the formatted debug info
  129.    *
  130.    * @param string $debugLineStr The formatted debug line object to check
  131.    * @return boolean Search criteria has been found of search is disabled
  132.    *
  133.    * @since V2.0.0 - 2 May 2006
  134.    */
  135.   protected function checkSearch($debugLineStr)
  136.   {
  137.     // Check if search is activated
  138.     if (!empty($_GET['PHPDEBUG_SEARCH']&&
  139.     trim($_GET['PHPDEBUG_SEARCH']!= ''{
  140.        
  141.       if (!empty($_GET['PHPDEBUG_SEARCH_CS'])) {
  142.         $searchFunction 'strstr';
  143.       else {
  144.         $searchFunction 'stristr';
  145.       }
  146.       return $searchFunction($debugLineStrtrim($_GET['PHPDEBUG_SEARCH']));
  147.     else {
  148.       return true;
  149.     }
  150.   }
  151.  
  152.   /**
  153.    * This function check if the user has chosen a filter in the debug type
  154.    * combobox and it returns of the debug line is allowed to be output or no
  155.    *
  156.    * @param DebugLine $debugLine The debug line object to check
  157.    * @return boolean true type is allowed to be
  158.    *
  159.    * @since V2.0.0 - 26 Apr 2006
  160.    */
  161.   protected function checkType($debugLine)
  162.   {
  163.     $properties $debugLine->getProperties();
  164.      
  165.     // Check if we must only show debug information of a kind
  166.     if ($this->options['HTML_TABLE_search_forced_type'][$properties['type']] == false{
  167.       if (!empty($_GET['PHPDEBUG_SEARCH_TYPE'])) {
  168.         if ($properties['type'== $_GET['PHPDEBUG_SEARCH_TYPE']{
  169.           return true;
  170.         else {
  171.           return false;
  172.         }
  173.       else {
  174.         return true;
  175.       }
  176.     else {
  177.       return true;
  178.     }
  179.   }
  180.  
  181.   /**
  182.    * Default render function for HTML_Table renderer
  183.    *
  184.    * @since V2.0.0 - 11 Apr 2006
  185.    * @see Renderer
  186.    */
  187.   public function render()
  188.   {
  189.     return $this->display();
  190.   }
  191.  
  192.   /**
  193.    * Displays the header of the PHP_Debug object
  194.    *
  195.    * @since V2.0.0 - 08 Apr 2006
  196.    * @see PHP_Debug
  197.    */
  198.   protected function displayHeader()
  199.   {
  200.     return $this->options['HTML_TABLE_header'];
  201.   }
  202.  
  203.   /**
  204.    * Diplays the footer of the PHP_Debug object
  205.    *
  206.    * @since V2.0.0 - 08 Apr 2006
  207.    * @see PHP_Debug
  208.    */
  209.   protected function displayFooter()
  210.   {
  211.     return $this->options['HTML_TABLE_footer'];
  212.   }
  213.  
  214.   /**
  215.    * This is the function that displays a debug line, each step correspond
  216.    * to a new cell, actully there are 6 types :
  217.    * - File
  218.    * - Line
  219.    * - Function
  220.    * - Class
  221.    * - Debug main information
  222.    * - Execution time
  223.    *
  224.    * @param DebugLine DebugLine, the debug line to process
  225.    *
  226.    * @since V2.0.0 - 07 Apr 2006
  227.    */
  228.   protected function displayDebugLine($DebugLine)
  229.   {
  230.     // DebugLine properties
  231.     $properties $DebugLine->getProperties();
  232.  
  233.     // 1 - File
  234.     $buffer $this->processFile($properties);
  235.  
  236.     // 2 - Line
  237.     $buffer .= $this->processLine($properties);
  238.  
  239.     // 3 - Function
  240.     $buffer .= $this->processFunction($properties);
  241.  
  242.     // 4 - Class
  243.     $buffer .= $this->processClass($properties);
  244.  
  245.     // 5 - Type
  246.     $buffer .= $this->processType($properties);
  247.  
  248.     // 6 - Debug info
  249.     $buffer .= $this->processDebugInfo($properties);
  250.  
  251.     // 7 - Execution time
  252.     $buffer .= $this->processExecTime($properties);
  253.  
  254.     // Output display buffer
  255.     return $buffer;
  256.  
  257.   }
  258.  
  259.   /**
  260.    * process display of the execution time of debug information
  261.    *
  262.    * @param array $properties Properties of the debug line
  263.    * @return string Formatted string containing the main debug info
  264.    * @since V2.0.0 - 28 Apr 2006
  265.    */
  266.   protected function processExecTime($properties)
  267.   {
  268.     // Lang
  269.     $txtPHP 'PHP';
  270.     $txtSQL 'SQL';
  271.     $txtSECOND 's';
  272.     $buffer $this->options['HTML_TABLE_interrow_time'];
  273.  
  274.     if (!empty($properties['endTime'])) {
  275.       $buffer .=  $this->span(PHP_Debug::getElapsedTime(
  276.       $properties['startTime'],
  277.       $properties['endTime']),
  278.                 'time');
  279.     else {
  280.       $buffer .= '&nbsp;';
  281.     }
  282.  
  283.     return $buffer;
  284.   }
  285.  
  286.   /**
  287.    * process display of the main information of debug
  288.    *
  289.    * @param array $properties Properties of the debug line
  290.    * @return string Formatted string containing the main debug info
  291.    * @since V2.0.0 - 28 Apr 2006
  292.    */
  293.   protected function processDebugInfo($properties)
  294.   {
  295.  
  296.     switch($properties['type'])
  297.     {
  298.       // Case for each of the debug lines types
  299.       // 1 : Standard
  300.       case PHP_DebugLine::TYPE_STD:
  301.         $buffer $this->options['HTML_TABLE_interrow_info'];
  302.         $buffer .= $this->span($properties['info']'std');
  303.         break;
  304.  
  305.         // 2 : Query
  306.       case PHP_DebugLine::TYPE_QUERY:
  307.         $buffer $this->options['HTML_TABLE_interrow_info'];
  308.         $buffer .= $this->span($properties['info']'query');
  309.         break;
  310.  
  311.         // 3 : Query related
  312.       case PHP_DebugLine::TYPE_QUERYREL:
  313.         $buffer $this->options['HTML_TABLE_interrow_info'];
  314.         $buffer .= $this->span($properties['info']'query');
  315.         break;
  316.  
  317.         // 4 : Environment
  318.       case PHP_DebugLine::TYPE_ENV:
  319.         $buffer $this->options['HTML_TABLE_interrow_info'];
  320.         $buffer .= $this->showSuperArray($properties['info']);
  321.         break;
  322.  
  323.         // 6 : User app error
  324.       case PHP_DebugLine::TYPE_APPERROR:
  325.         $buffer $this->options['HTML_TABLE_interrow_info'];
  326.         $buffer .= $this->span('/!\\ User error : '.
  327.         $properties['info'' /!\\''app-error');
  328.         break;
  329.  
  330.         // 7
  331.       case PHP_DebugLine::TYPE_CREDITS:
  332.         $buffer $this->options['HTML_TABLE_interrow_info'];
  333.         $buffer .= $this->span($properties['info']'credits');
  334.         break;
  335.  
  336.         // 8
  337.       case PHP_DebugLine::TYPE_SEARCH:
  338.         $buffer $this->options['HTML_TABLE_interrow_info'];
  339.         $buffer .= $this->showSearch();
  340.         break;
  341.  
  342.         // 9
  343.       case PHP_DebugLine::TYPE_DUMP:
  344.         $buffer $this->options['HTML_TABLE_interrow_info'];
  345.         $buffer .= $this->showDump($properties);
  346.         break;
  347.  
  348.         // 10
  349.       case PHP_DebugLine::TYPE_PROCESSPERF:
  350.         $buffer $this->options['HTML_TABLE_interrow_info'];
  351.         $buffer .= $this->showProcessTime();
  352.         break;
  353.  
  354.         // 11
  355.       case PHP_DebugLine::TYPE_TEMPLATES:
  356.         $buffer $this->options['HTML_TABLE_interrow_info'];
  357.         $buffer .= $this->showTemplates();
  358.         break;
  359.  
  360.         // 12 : Main Page Action
  361.       case PHP_DebugLine::TYPE_PAGEACTION;
  362.       $buffer $this->options['HTML_TABLE_interrow_info'];
  363.       $txtPageAction 'Page Action';
  364.       $buffer .= $this->span("$txtPageAction : ".
  365.       $properties['info']' ]''pageaction');
  366.       break;
  367.  
  368.       // 14 : SQL parse
  369.       case PHP_DebugLine::TYPE_SQLPARSE:
  370.         $buffer $this->options['HTML_TABLE_interrow_info'];
  371.         $buffer .= $properties['info'];
  372.         break;
  373.  
  374.         // 15 : Watches
  375.       case PHP_DebugLine::TYPE_WATCH:
  376.         $buffer $this->options['HTML_TABLE_interrow_info'];
  377.         $infos $properties['info'];
  378.         $buffer .= 'Variable '$this->span($infos[0]'watch').
  379.                            ' changed from value '$this->span($infos[1]'watch-val').
  380.                            ' ('gettype($infos[1])
  381.                            ') to value '$this->span($infos[2]'watch-val')
  382.                            ' ('gettype($infos[2])')';
  383.         break;
  384.  
  385.         // 16 : PHP errors
  386.       case PHP_DebugLine::TYPE_PHPERROR:
  387.         $buffer $this->options['HTML_TABLE_interrow_info'];
  388.         $buffer .= $this->showError($properties['info']);
  389.         break;
  390.  
  391.       default:
  392.         $buffer $this->options['HTML_TABLE_interrow_info'];
  393.         $buffer .= "<b>Default("$properties['type'].
  394.                            ")</b>: TO IMPLEMENT OR TO CORRECT : >"
  395.         $properties['info']'<';
  396.         break;
  397.     }
  398.  
  399.     return $buffer;
  400.   }
  401.  
  402.   /**
  403.    * Return a string with applying a span style on it
  404.    *
  405.    * @param string $info String to apply the style
  406.    * @param string $class CSS style to apply to the string
  407.    * @return string Formatted string with style applied
  408.    * @since V2.0.0 - 05 May 2006
  409.    */
  410.   protected function span($info$class)
  411.   {
  412.     return '<span class="pd-'$class .'">'$info .'</span>';
  413.   }
  414.  
  415.   /**
  416.    * process display of the type of the debug information
  417.    *
  418.    * @param array $properties Properties of the debug line
  419.    * @return string Formatted string containing the debug type
  420.    * @since V2.0.0 - 26 Apr 2006
  421.    */
  422.   protected function processType($properties)
  423.   {
  424.     $buffer $this->options['HTML_TABLE_interrow_type'];
  425.     $buffer .= PHP_DebugLine::$debugLineLabels[$properties['type']];
  426.     return $buffer;
  427.   }
  428.  
  429.   /**
  430.    * process display of Class
  431.    *
  432.    * @param array $properties Properties of the debug line
  433.    * @return string Formatted string containing the class
  434.    * @since V2.0.0 - 26 Apr 2006
  435.    */
  436.   protected function processClass($properties)
  437.   {
  438.     $buffer '';
  439.  
  440.     switch ($properties['type'])
  441.     {
  442.       case PHP_DebugLine::TYPE_STD:
  443.       case PHP_DebugLine::TYPE_QUERY:
  444.       case PHP_DebugLine::TYPE_QUERYREL:
  445.       case PHP_DebugLine::TYPE_APPERROR:
  446.       case PHP_DebugLine::TYPE_PAGEACTION:
  447.       case PHP_DebugLine::TYPE_PHPERROR:
  448.       case PHP_DebugLine::TYPE_SQLPARSE:
  449.       case PHP_DebugLine::TYPE_WATCH:
  450.       case PHP_DebugLine::TYPE_DUMP:
  451.  
  452.         $buffer .= $this->options['HTML_TABLE_interrow_class'];
  453.         if (!empty($properties['class'])) {
  454.           $buffer .= $properties['class'];
  455.         else {
  456.           $buffer .= '&nbsp;';
  457.         }
  458.  
  459.         break;
  460.  
  461.       case PHP_DebugLine::TYPE_CREDITS:
  462.       case PHP_DebugLine::TYPE_SEARCH:
  463.       case PHP_DebugLine::TYPE_PROCESSPERF:
  464.       case PHP_DebugLine::TYPE_TEMPLATES:
  465.       case PHP_DebugLine::TYPE_ENV:
  466.  
  467.         $buffer .= $this->options['HTML_TABLE_interrow_class'];
  468.         $buffer .= '&nbsp;';
  469.  
  470.         break;
  471.  
  472.       default:
  473.         break;
  474.     }
  475.  
  476.     return $buffer;
  477.   }
  478.  
  479.   /**
  480.    * process display of function
  481.    *
  482.    * @param array $properties Properties of the debug line
  483.    * @return string Formatted string containing the function
  484.    * @since V2.0.0 - 26 Apr 2006
  485.    */
  486.   protected function processFunction($properties)
  487.   {
  488.     $buffer '';
  489.  
  490.     switch ($properties['type'])
  491.     {
  492.       case PHP_DebugLine::TYPE_STD:
  493.       case PHP_DebugLine::TYPE_QUERY:
  494.       case PHP_DebugLine::TYPE_QUERYREL:
  495.       case PHP_DebugLine::TYPE_APPERROR:
  496.       case PHP_DebugLine::TYPE_PAGEACTION:
  497.       case PHP_DebugLine::TYPE_PHPERROR:
  498.       case PHP_DebugLine::TYPE_SQLPARSE:
  499.       case PHP_DebugLine::TYPE_WATCH:
  500.       case PHP_DebugLine::TYPE_DUMP:
  501.  
  502.         $buffer .= $this->options['HTML_TABLE_interrow_function'];
  503.         if (!empty($properties['function'])) {
  504.           if ($properties['function'!= 'unknown'{
  505.             $buffer .= $properties['function']'()';
  506.           else {
  507.             $buffer .= '&nbsp;';
  508.           }
  509.         else {
  510.           $buffer .= '&nbsp;';
  511.         }
  512.  
  513.         break;
  514.  
  515.       case PHP_DebugLine::TYPE_CREDITS:
  516.       case PHP_DebugLine::TYPE_SEARCH:
  517.       case PHP_DebugLine::TYPE_PROCESSPERF:
  518.       case PHP_DebugLine::TYPE_TEMPLATES:
  519.       case PHP_DebugLine::TYPE_ENV:
  520.  
  521.         $buffer .= $this->options['HTML_TABLE_interrow_function'];
  522.         $buffer .= '&nbsp;';
  523.  
  524.         break;
  525.  
  526.       default:
  527.         break;
  528.     }
  529.  
  530.     return $buffer;
  531.   }
  532.  
  533.  
  534.   /**
  535.    * process display of line number
  536.    *
  537.    * @param array $properties Properties of the debug line
  538.    * @return string Formatted string containing the line number
  539.    * @since V2.0.0 - 26 Apr 2006
  540.    */
  541.   protected function processLine($properties)
  542.   {
  543.     $buffer '';
  544.  
  545.     switch ($properties['type'])
  546.     {
  547.       case PHP_DebugLine::TYPE_STD:
  548.       case PHP_DebugLine::TYPE_QUERY:
  549.       case PHP_DebugLine::TYPE_QUERYREL:
  550.       case PHP_DebugLine::TYPE_APPERROR:
  551.       case PHP_DebugLine::TYPE_PAGEACTION:
  552.       case PHP_DebugLine::TYPE_PHPERROR:
  553.       case PHP_DebugLine::TYPE_SQLPARSE:
  554.       case PHP_DebugLine::TYPE_WATCH:
  555.       case PHP_DebugLine::TYPE_DUMP:
  556.  
  557.         $buffer.= $this->options['HTML_TABLE_interrow_line'];
  558.         if (!empty($properties['line'])) {
  559.           $buffer.= '<span class="pd-line">'$properties['line']'</span>';
  560.         else {
  561.           $buffer.= '&nbsp;';
  562.         }
  563.  
  564.         break;
  565.  
  566.       case PHP_DebugLine::TYPE_CREDITS:
  567.       case PHP_DebugLine::TYPE_SEARCH:
  568.       case PHP_DebugLine::TYPE_PROCESSPERF:
  569.       case PHP_DebugLine::TYPE_TEMPLATES:
  570.       case PHP_DebugLine::TYPE_ENV:
  571.  
  572.         $buffer.= $this->options['HTML_TABLE_interrow_line'];
  573.         $buffer.= '&nbsp;';
  574.  
  575.         break;
  576.  
  577.       default:
  578.         break;
  579.     }
  580.  
  581.     return $buffer;
  582.   }
  583.  
  584.   /**
  585.    * process display of file name
  586.    *
  587.    * @param array $properties Properties of the debug line
  588.    * @return string Formatted string containing the file
  589.    * @since V2.0.0 - 26 Apr 2006
  590.    */
  591.   protected function processFile($properties)
  592.   {
  593.     $buffer '';
  594.  
  595.     switch ($properties['type'])
  596.     {
  597.       case PHP_DebugLine::TYPE_STD:
  598.       case PHP_DebugLine::TYPE_QUERY:
  599.       case PHP_DebugLine::TYPE_QUERYREL:
  600.       case PHP_DebugLine::TYPE_APPERROR:
  601.       case PHP_DebugLine::TYPE_PAGEACTION:
  602.       case PHP_DebugLine::TYPE_PHPERROR:
  603.       case PHP_DebugLine::TYPE_SQLPARSE:
  604.       case PHP_DebugLine::TYPE_WATCH:
  605.       case PHP_DebugLine::TYPE_DUMP:
  606.  
  607.         $buffer .= $this->options['HTML_TABLE_interrow_file'];
  608.  
  609.         if (!empty($properties['file'])) {
  610.           if (!empty($this->options['HTML_TABLE_view_source_script_path']&&
  611.           !empty($this->options['HTML_TABLE_view_source_script_name'])) {
  612.             $buffer .= '<a href="'$this->options['HTML_TABLE_view_source_script_path']
  613.             . '/'$this->options['HTML_TABLE_view_source_script_name']
  614.             .'?file='urlencode($properties['file']);
  615.  
  616.             $buffer .= '">'basename($properties['file'])'</a>';
  617.  
  618.           else {
  619.             $buffer .= basename($properties['file']);
  620.           }
  621.         else {
  622.           $buffer .=  '&nbsp;';
  623.         }
  624.  
  625.         break;
  626.  
  627.       case PHP_DebugLine::TYPE_CREDITS:
  628.       case PHP_DebugLine::TYPE_SEARCH:
  629.       case PHP_DebugLine::TYPE_PROCESSPERF:
  630.       case PHP_DebugLine::TYPE_TEMPLATES:
  631.       case PHP_DebugLine::TYPE_ENV:
  632.  
  633.         $buffer .= $this->options['HTML_TABLE_interrow_file'];
  634.         $buffer .=  '&nbsp;';
  635.  
  636.         break;
  637.  
  638.       default:
  639.         break;
  640.     }
  641.  
  642.     return $buffer;
  643.   }
  644.  
  645.   /**
  646.    * Dump a variable
  647.    *
  648.    * @since V2.0.0 - 26 Apr 2006
  649.    */
  650.   protected function showDump($properties)
  651.   {
  652.     $buffer '';
  653.  
  654.     // Check display with a <pre> design
  655.     if (is_array($properties['info'][1])) {
  656.       $preDisplay true;
  657.     elseif (is_object($properties['info'][1])) {
  658.       $preDisplay true;
  659.     else {
  660.       $preDisplay false;
  661.     }
  662.  
  663.     // Check var name
  664.     if (empty($properties['info'][0])) {
  665.       if (is_array($properties['info'][1])) {
  666.         $varName 'Array';
  667.       elseif (is_object($properties['info'][1])) {
  668.         $varName get_class($properties['info'][1]);
  669.       else {
  670.         $varName 'Variable';
  671.       }
  672.     else {
  673.       $varName $properties['info'][0];
  674.     }
  675.  
  676.     // Output
  677.     if ($properties['type'!= PHP_DebugLine::TYPE_ENV{
  678.       $title "dump of '";
  679.     }
  680.  
  681.     $title .= $varName"' (".  gettype($properties['info'][1].") : ";
  682.  
  683.     $buffer .= $this->span($title 'dump-title');
  684.  
  685.     if ($preDisplay == true){
  686.       $buffer .= '<pre>';
  687.       $buffer .= PHP_Debug::dumpVar($properties['info'][1],
  688.                 ''falsePHP_Debug::DUMP_STR);
  689.     else {
  690.       $buffer .= $this->span(PHP_Debug::dumpVar(
  691.       $properties['info'][1],
  692.                 ''
  693.       false,
  694.       PHP_Debug::DUMP_STR)'dump-val');
  695.     }
  696.  
  697.     if ($preDisplay == true){
  698.       $buffer .= '</pre>';
  699.     }
  700.  
  701.     return $buffer;
  702.   }
  703.  
  704.   /**
  705.    * Process the search combo box
  706.    *
  707.    * @since V2.0.0 - 26 Apr 2006
  708.    */
  709.   protected function showSearch()
  710.   {
  711.     // Repost all posted data
  712.     $txtGo             'Go !';
  713.     $txtStringToSearch 'Search for';
  714.     $txtCaseSensitive  'Case sensitive';
  715.     $txtSelectByType   'Select only info of type';
  716.     $buffer '';
  717.  
  718.     $debugSearchVal   = isset($_REQUEST["PHPDEBUG_SEARCH"])    trim($_REQUEST["PHPDEBUG_SEARCH"]'';
  719.     $debugSearchCSVal = isset($_REQUEST["PHPDEBUG_SEARCH_CS"]' checked="checked"' '';
  720.  
  721.     $buffer .= '
  722.         <form id="phpDebugForm" action="'$_SERVER['PHP_SELF']'">
  723.         <table>
  724.         <tr>
  725.           <td class="pd-search">'$txtStringToSearch .'</td>
  726.           <td class="pd-search">:</td>
  727.           <td class="pd-search">
  728.             <input class="pd-search" type="text" name="PHPDEBUG_SEARCH" value="'$debugSearchVal'" />
  729.           </td>
  730.           <td class="pd-search">'$txtCaseSensitive .'</td>
  731.           <td class="pd-search">:</td>
  732.           <td class="pd-search">
  733.             <input class="pd-search" type="checkbox" name="PHPDEBUG_SEARCH_CS" '$debugSearchCSVal .' />
  734.           </td>
  735.         </tr>
  736.         <tr>
  737.           <td class="pd-search">'$txtSelectByType'</td>
  738.           <td class="pd-search">:</td>
  739.           <td class="pd-search">
  740.             <select class="pd-search" name="PHPDEBUG_SEARCH_TYPE">';
  741.     foreach (PHP_DebugLine::$debugLineLabels as $lkey => $lvalue{
  742.       $debugSearchTypeVal (!empty($_REQUEST["PHPDEBUG_SEARCH_TYPE"])
  743.       $lkey == $_REQUEST["PHPDEBUG_SEARCH_TYPE"]' selected="selected"' '';
  744.       $buffer .= "              <option value=\"$lkey\"$debugSearchTypeVal>&raquo; $lvalue</option>"CR;
  745.     }
  746.     $buffer .= '
  747.             </select>
  748.           </td>
  749.           <td class="pd-search">&nbsp;</td>
  750.           <td class="pd-search">&nbsp;</td>        
  751.           <td class="pd-search">
  752.             <input class="pd-search" type="submit" value="'$txtGo'" />
  753.           </td>
  754.         </tr>
  755.         </table>
  756.         </form>';
  757.  
  758.     return $buffer;
  759.   }
  760.  
  761.   /**
  762.    * Process the templates
  763.    *
  764.    * @since V2.0.0 - 26 Apr 2006
  765.    */
  766.   protected function showTemplates()
  767.   {
  768.     $txtMainFile 'MAIN File';
  769.     $idx 1;
  770.     $buffer '<br />';
  771.  
  772.     foreach($this->DebugObject->getRequiredFiles(as $lvalue{
  773.        
  774.       $isToDisplay true;
  775.        
  776.       if ($this->options['HTML_TABLE_view_source_excluded_template']{
  777.         foreach ($this->options['HTML_TABLE_view_source_excluded_template'as $template{
  778.           if (stristr($lvalue$template)) {
  779.             $isToDisplay false;
  780.           }
  781.         }
  782.       }
  783.        
  784.       if ($isToDisplay == true{
  785.          
  786.         $buffer .= $this->span($lvalue'files');
  787.         $buffer .= ' <a href="'$this->options['HTML_TABLE_view_source_script_path']
  788.         . '/'$this->options['HTML_TABLE_view_source_script_name']
  789.         .'?file='urlencode($lvalue)'">View source</a> ';
  790.          
  791.         // Mark main file
  792.         if ($idx == 1{
  793.           $buffer .= $this->span('&laquo; '$txtMainFile'main-file');
  794.         }
  795.         $idx++;
  796.         $buffer .= '<br />'CR;
  797.       }
  798.     }
  799.  
  800.     $buffer .= '<br />'CR;
  801.     return $buffer;
  802.   }
  803.  
  804.   /**
  805.    * Process an error info
  806.    *
  807.    * @param array $info Array containing information about the error
  808.    *
  809.    * @since V2.0.0 - 25 Apr 2006
  810.    * @see PHP_DEBUGLINE_PHPERROR
  811.    */
  812.   protected function showError($infos)
  813.   {
  814.     $buffer '';
  815.     $infos[1str_replace("'"'"'$infos[1]);
  816.     $infos[1str_replace('href="function.'' href="http://www.php.net/'$this->options['lang']'/'$infos[1]);
  817.  
  818.     switch ($infos[0])
  819.     {
  820.       case E_WARNING:
  821.         $errorlevel 'PHP WARNING : ';
  822.         $buffer .= '<span class="pd-php-warning"> /!\\ '.
  823.         $errorlevel$infos[1' /!\\ </span>';
  824.         break;
  825.  
  826.       case E_NOTICE:
  827.         $errorlevel 'PHP notice : ';
  828.         $buffer .= '<span class="pd-php-notice">'.
  829.         $errorlevel$infos[1'</span>';
  830.         break;
  831.  
  832.       case E_USER_ERROR:
  833.         $errorlevel 'PHP User error : ';
  834.         $buffer .= '<span class="pd-php-user-error"> /!\\ '.
  835.         $errorlevel$infos[1' /!\\ </span>';
  836.         break;
  837.  
  838.       case E_STRICT:
  839.  
  840.         $errorlevel 'PHP STRICT error : ';
  841.         $buffer .= '<span class="pd-php-user-error"> /!\\ '.
  842.         $errorlevel$infos[1' /!\\ </span>';
  843.         break;
  844.  
  845.       default:
  846.         $errorlevel 'PHP errorlevel = '$infos[0]' : ';
  847.         $buffer .= $errorlevel' is not implemented in PHP_Debug ('.
  848.         __FILE__. ','. __LINE__. ')';
  849.         break;
  850.     }
  851.     return $buffer;
  852.   }
  853.  
  854.   /**
  855.    * Show a super array
  856.    *
  857.    * @param string $SuperArrayType Type of super en array to add
  858.    * @since V2.0.0 - 07 Apr 2006
  859.    */
  860.   protected function showSuperArray($SuperArrayType)
  861.   {
  862.     // Lang
  863.     $txtVariable   'Var';
  864.     $txtNoVariable 'NO VARIABLE';
  865.     $NoVariable    =  ' -- '$txtNoVariable' -- ';
  866.     $SuperArray    null;
  867.     $buffer        '';
  868.  
  869.     $ArrayTitle PHP_Debug::$globalEnvConstantsCorresp[$SuperArrayType];
  870.     $SuperArray $GLOBALS[$ArrayTitle];
  871.     $Title $ArrayTitle' '$txtVariable;
  872.     $SectionBasetitle '<b>$Title ('count($SuperArray)') :';
  873.  
  874.     if (count($SuperArray)) {
  875.       $buffer .= $SectionBasetitle'</b>';
  876.       $buffer .= '<pre>'PHP_Debug::dumpVar(
  877.       $SuperArray,
  878.       $ArrayTitle,
  879.       false,
  880.       PHP_Debug::DUMP_STR)'</pre>';
  881.     }
  882.     else {
  883.       $buffer .= $SectionBasetitle"$NoVariable</b>";
  884.     }
  885.     return $buffer;
  886.   }
  887.  
  888.   /**
  889.    * Add the environment display depending on the current configuration
  890.    *
  891.    * @since V2.0.0 - 18 apr 2006
  892.    */
  893.   protected function addSuperArray()
  894.   {
  895.     if ($this->options['HTML_TABLE_show_super_array'== true{
  896.  
  897.       // Divide Request tab
  898.       if ($this->options['HTML_TABLE_use_request_arr'== false{
  899.         // Include Post Var
  900.         $this->DebugObject->addDebug(PHP_Debug::GLOBAL_POSTPHP_DebugLine::TYPE_ENV);
  901.  
  902.         // Include Get Var
  903.         $this->DebugObject->addDebug(PHP_Debug::GLOBAL_GETPHP_DebugLine::TYPE_ENV);
  904.  
  905.         // Include File Var
  906.         $this->DebugObject->addDebug(PHP_Debug::GLOBAL_FILESPHP_DebugLine::TYPE_ENV);
  907.  
  908.         // Include Cookie Var
  909.         $this->DebugObject->addDebug(PHP_Debug::GLOBAL_COOKIEPHP_DebugLine::TYPE_ENV);
  910.       }
  911.       else {
  912.         // Only display Request Tab
  913.         $this->DebugObject->addDebug(PHP_Debug::GLOBAL_REQUESTPHP_DebugLine::TYPE_ENV);
  914.       }
  915.  
  916.       // Include sessions variabmes, check if we have any
  917.       if (!empty($_SESSION)) {
  918.         $this->DebugObject->addDebug(PHP_Debug::GLOBAL_SESSIONPHP_DebugLine::TYPE_ENV);
  919.       }
  920.     }
  921.   }
  922.  
  923.   /**
  924.    * Add the process time information to the debug information
  925.    *
  926.    * @since V2.0.0 - 18 Apr 2006
  927.    */
  928.   protected function showProcessTime()
  929.   {
  930.     // Lang
  931.     $txtExecutionTime 'Global execution time ';
  932.     $txtPHP           'PHP';
  933.     $txtSQL           'SQL';
  934.     $txtSECOND        's';
  935.     $txtOneQry        ' query';
  936.     $txtMultQry       ' queries';
  937.     $queryCount       $this->DebugObject->getQueryCount();
  938.     $txtQuery         $queryCount $txtMultQry $txtOneQry;
  939.     $buffer           '';
  940.  
  941.     // Performance Debug
  942.     $processTime $this->DebugObject->getProcessTime();
  943.     $sqlTime    $this->DebugObject->getQueryTime();
  944.     $phpTime    $processTime $sqlTime;
  945.  
  946.     $sqlPercent round(($sqlTime $processTime1002);
  947.     $phpPercent round(($phpTime $processTime1002);
  948.  
  949.     $buffer .= '<div><table class="pd-perf-table"><tr><td class="pd-perf" align="center">'$txtExecutionTime;
  950.     $buffer .= '</td><td class="pd-perf" align="center">'$processTime $txtSECOND;
  951.     $buffer .= '</td><td class="pd-perf" align="center">100%';
  952.     $buffer .= '</td><td class="pd-perf" align="center">&nbsp;</td></tr>';
  953.  
  954.     $buffer .= '<tr><td class="pd-perf" align="center">'$txtPHP;
  955.     $buffer .= '</td><td class="pd-perf" align="center">'$phpTime $txtSECOND;
  956.     $buffer .= '</td><td class="pd-perf" align="center">'$phpPercent .'%';
  957.     $buffer .= '</td><td class="pd-perf" align="center">&nbsp;</td></tr>';
  958.  
  959.     $buffer .= '<tr><td class="pd-perf" align="center">'$txtSQL;
  960.     $buffer .= '</td><td class="pd-perf" align="center">'$sqlTime$txtSECOND;
  961.     $buffer .= '</td><td class="pd-perf" align="center">'$sqlPercent '%';
  962.     $buffer .= '</td><td class="pd-perf" align="center">'$queryCount$txtQuery'</td></tr>';
  963.  
  964.     $buffer .= '</table></div>';
  965.  
  966.     return $buffer;
  967.   }
  968. }

Documentation generated on Thu, 03 May 2012 15:07:45 +0200 by phpDocumentor 1.4.1