QA_Peardoc_Coverage
[ class tree: QA_Peardoc_Coverage ] [ index: QA_Peardoc_Coverage ] [ all elements ]

Source for file SimplePackageList.php

Documentation is available at SimplePackageList.php

  1. <?php
  2. require_once 'QA/Peardoc/Coverage/Renderer.php';
  3.  
  4. /**
  5. * Renders the coverage result in a simple
  6. * list of packages with their documentation state.
  7. *
  8. @category QA
  9. @package  QA_Peardoc_Coverage
  10. @author   Christian Weiske <cweiske@php.net>
  11. @license  http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
  12. @version  CVS: $Id: SimplePackageList.php,v 1.6 2007/07/18 18:52:44 cweiske Exp $
  13. @link     http://pear.php.net/package/QA_Peardoc_Coverage
  14. */
  15.     implements QA_Peardoc_Coverage_Renderer
  16. {
  17.     public static $colNotDocumented '#F00';
  18.     public static $colDocumented    '#0F0';
  19.  
  20.  
  21.  
  22.     /**
  23.     * Returns the color code matching the number.
  24.     *
  25.     * @param float $flNumber Number (x/y), !no! percentage
  26.     *
  27.     * @return string  HTML color #0AF
  28.     */
  29.     public static function getColor($flNumber)
  30.     {
  31.         if ($flNumber == 1{
  32.             return '#0F0';
  33.         else if ($flNumber >= 0.9{
  34.             return '#dfff00';
  35.         else if ($flNumber >= 0.5{
  36.             return '#FF0';
  37.         else if ($flNumber >= 0.3{
  38.             return '#F70';
  39.         else {
  40.             return '#F00';
  41.         }
  42.     }//public static function getColor($flNumber)
  43.  
  44.  
  45.  
  46.     /**
  47.     * Returns the manual url (deep link) for
  48.     * the given documentation id.
  49.     *
  50.     * @param string $strDocId Documentation id=""
  51.     *
  52.     * @return string URL to the manual
  53.     */
  54.     public static function getDocUrl($strDocId)
  55.     {
  56.         return 'http://pear.php.net/manual/en/'
  57.             . $strDocId '.php';
  58.     }//public static function getDocUrl($strDocId)
  59.  
  60.  
  61.  
  62.     /**
  63.     * Renders the given coverage array and
  64.     * returns the HTML.
  65.     *
  66.     * @param array $arDoc     Documentation coverage analysis results
  67.     * @param array $arOptions Options
  68.     *
  69.     * @return string HTML
  70.     */
  71.     public function render($arDoc$arOptions = null)
  72.     {
  73.         $n    "\n";
  74.         $out  '';
  75.         $out .= '<?xml version="1.0" encoding="utf-8" ?>' $n
  76.             . '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" '
  77.             . '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
  78.  
  79.         $out .= '<html><head><title>Simple PEAR Documentation coverage analysis</title></head><body>';
  80.         $out .= '<table border="1"><caption>'
  81.             . 'Simple PEAR Documentation coverage analysis as of '
  82.             . date('Y-m-d H:i:s'$arDoc['*date*'])
  83.             . '</caption>' $n;
  84.  
  85.         $nPackages       = 0;
  86.         $nDoccedPackages = 0;
  87.         $nCategories     = 0;
  88.  
  89.         foreach ($arDoc as $strCategory => $arCategoryPackages{
  90.             if ($strCategory[0== '*'{
  91.                 continue;
  92.             }
  93.  
  94.             $out .= '<tr><th colspan="3">' ucfirst($strCategory'</th></tr>' $n;
  95.             ++$nCategories;
  96.             $nCategoryPackages       = 0;
  97.             $nCategoryDoccedPackages = 0;
  98.  
  99.             foreach ($arCategoryPackages as $strPackageName => $arPackageCoverage{
  100.                 ++$nCategoryPackages;
  101.                 ++$nPackages;
  102.  
  103.                 $out .= '<tr><td></td><td>'
  104.                      . '<a href="http://pear.php.net/package/' $strPackageName '" name="' $strPackageName '">'
  105.                      . $strPackageName
  106.                      . '</a>'
  107.                      . '</td>';
  108.                 if ($arPackageCoverage['*docid*'=== null{
  109.                     //not documented
  110.                     $out .= '<td style="background-color:'
  111.                          . self::$colNotDocumented
  112.                          . '">not documented</td>';
  113.                 else {
  114.                     //documented
  115.                     ++$nDoccedPackages;
  116.                     ++$nCategoryDoccedPackages;
  117.                     $out .= '<td style="background-color:'
  118.                          . self::$colDocumented
  119.                          . '"><a href="'
  120.                          . self::getDocUrl($arPackageCoverage['*docid*'])
  121.                          . '">documented</a></td>';
  122.                 }
  123.                 $out .= '</tr>' $n;
  124.             }//foreach package in category
  125.  
  126.             $col  = self::getColor($nCategoryDoccedPackages/$nCategoryPackages);
  127.             $out .= '<tr>'
  128.                     . '<td>Sum</td>'
  129.                     . '<td>' $nCategoryPackages '</td>'
  130.                     . '<td style="text-align:right; font-weight:bold; background-color:' $col '">'
  131.                         . $nCategoryDoccedPackages '/' $nCategoryPackages '</td>'
  132.                     . '</tr>' $n;
  133.         }//foreach category
  134.  
  135.         $col  = self::getColor($nDoccedPackages/$nPackages);
  136.         $out .= '<tr style="font-weight:bold; background-color:' $col '">'
  137.               . '<td rowspan="2">All in all</td>'
  138.               . '<td rowspan="2">' $nCategories ' categories</td>'
  139.               . '<td style="text-align:right;">' $nDoccedPackages '/' $nPackages '</td>'
  140.               . '</tr>' $n;
  141.         $out .= '<tr style="font-weight:bold; background-color:' $col '">'
  142.               . '<td style="text-align:right;">' number_format($nDoccedPackages/$nPackages * 1002'%</td>'
  143.               . '</tr>' $n;
  144.  
  145.         $out .= '</table>';
  146.  
  147.         $out .= '</body></html>';
  148.  
  149.         return $out;
  150.     }//public function render($arDoc)
  151.  
  152. }//class QA_Peardoc_Coverage_Renderer_SimplePackageList
  153. ?>

Documentation generated on Mon, 11 Mar 2019 15:10:40 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.