tom             Fri Nov  1 04:52:44 2002 EDT

  Modified files:              
    /phpdoc/scripts     revcheck.php 
  Log:
  speed up the stuff, let navbar only link to really shown sections, a small reduction 
of html-size
  
  
Index: phpdoc/scripts/revcheck.php
diff -u phpdoc/scripts/revcheck.php:1.31 phpdoc/scripts/revcheck.php:1.32
--- phpdoc/scripts/revcheck.php:1.31    Wed Oct 23 16:26:27 2002
+++ phpdoc/scripts/revcheck.php Fri Nov  1 04:52:43 2002
@@ -92,23 +92,14 @@
 // in cvs). We do need the trailing slash!
 $DOCDIR = "../";
 
-$navbar = "<p class=c><a href=\"#intro\">Introduction</a> | " .
-          "<a href=\"#translators\">Translators</a> | " .
-          "<a href=\"#filesummary\">File summary by type</a> | " .
-          "<a href=\"#files\">Files</a> | " .
-          "<a href=\"#wip\">Work in progress</a> | " .
-          "<a href=\"#misstags\">Missing revision numbers</a> | " .
-          "<a href=\"#missfiles\">Untranslated files</a></p>\n";
-
   
 // =========================================================================
 // Functions to get revision info and credits from a file
 // =========================================================================
 
-// Grabs the revision tag from the file given
-function get_tag($file, $val = "en-rev")
+// Grabs the revision tag and stores credits from the file given
+function get_tags($file, $val = "en-rev")
 {
-
     // Read the first 500 chars. The comment should be at
     // the begining of the file
     $fp = @fopen($file, "r") or die ("Unable to read $file.");
@@ -121,7 +112,27 @@
         preg_match("/<!-- .Revision: \d+\.(\d+) . -->/", $line, $match);
         return $match[1];
     }
+
+    // Handle credits (only if no maintainer is specified)
+    if ($val == "\\S*") {
     
+        global $files_by_maint;
+
+        // Find credits info, let more credits then one,
+        // using commas as list separator
+        if (preg_match("'<!--\s*CREDITS:\s*(.+)\s*-->'U", $line, $match_credit)) {
+          
+            // Explode with commas a separators
+            $credits = explode(",", $match_credit[1]);
+          
+            // Store all elements
+            foreach ($credits as $num => $credit) {
+                $files_by_maint[trim($credit)][REV_CREDIT]++;
+            }
+          
+        }
+    }
+
     // No match before the preg
     $match = array();
     
@@ -145,240 +156,117 @@
     // Return with found revision info (number, maint, status)
     return $match;
     
-} // get_tag() function end
-
-// Grab CREDITS tag, the place to store previous credits
-function get_credits ($file) {
-
-    // Read the first 500 chars, the comment should be at
-    // the begining of the file, if it is there
-    $fp = @fopen($file, "r") or die ("Unable to read $file.");
-    $line = fread($fp, 500);
-    fclose($fp);
-    
-    // Try to find credits info in file, let more credits
-    // then one, using commas as list separator
-    if (preg_match("'<!--\s*CREDITS:\s*(.+)\s*-->'U",
-                   $line,
-                   $match)) {
-      
-      // Explode with commas a separators
-      $credits = explode(",", $match[1]);
-      
-      // Trim all elements (let spaces to be
-      // between credit info)
-      foreach ($credits as $num => $credit) {
-          $credits[$num] = trim($credit);
-      }
-      
-      return $credits;
-
-    } else {
-
-      // No credits info in this file
-      return array();
-    }
+} // get_tags() function end
 
-} // get_credits() end
 
 // =========================================================================
 // Functions to check file status in translated directory, and store info
 // =========================================================================
 
-// Collect or return missing files depending on
-// the parameters passed to this function
-function missing_file()
-{
-    // Static var to store info, and return if asked
-    static $missing_files = array();
-    global $DOCDIR, $LANG;
-    
-    // Return with the missing files,
-    // in case of no parameters to this function
-    if (func_num_args() == 0) {
-        return $missing_files;
-    }
-    
-    // Get the parameters if we have them
-    list($en_file, $trans_file) = func_get_args();
-    
-    // Compute new index for missing file (name without language dir)
-    $index = substr($trans_file, strlen($DOCDIR) + strlen($LANG) + 1);
-    
-    // Compute new value for missing file (size and EN revision)
-    $value = array(
-        round(filesize($en_file)/1024, 1),
-        "1." . get_tag($en_file)
-    );
-    
-    // Push file into array
-    $missing_files[$index] = $value;
-
-} // missing_file() function end
-
-// Collect or return files with missing tags depending on
-// the parameters passed to this function
-function missing_tag()
-{
-    // Static var to store info, and return if asked
-    static $missing_tags = array();
-    global $DOCDIR;
-    
-    // Return with the file with missing tags,
-    // in case of no parameters to this function
-    if (func_num_args() == 0) {
-        return $missing_tags;
-    }
-    
-    // Get the parameter if we have it
-    list($trans_file, $en_size, $trans_size, $size_diff) = func_get_args();
-
-    // Push data of file with missing tag onto the list
-    $missing_tags[] = array(substr($trans_file, strlen($DOCDIR)), $en_size, 
$trans_size, $size_diff);
-}
-
-// Collect files by status mark
-function files_by_mark()
-{
-    // Static var to store info, and return if asked
-    static $files_by_mark = array();
-    
-    // Return with the file with missing tags,
-    // in case of no parameters to this function
-    if (func_num_args() == 0) {
-        return $files_by_mark;
-    }
-    
-    // Get the parameter if we have it
-    list($mark, $inc) = func_get_args();
-
-    // Add one to the count of this type of files
-    $files_by_mark[$mark] += $inc;
-
-}
-
-// Collect files by maintainer and status mark
-function files_by_maint()
-{
-    // Static var to store info, and return if asked
-    static $files_by_maint = array();
-    
-    // Return with the file with missing tags,
-    // in case of no parameters to this function
-    if (func_num_args() == 0) {
-        return $files_by_maint;
-    }
-    
-    // Get the parameter if we have it
-    list($mark, $maint) = func_get_args();
-
-    // Add one to the maintainers files list,
-    // especially counting this type of file
-    $files_by_maint[$maint][$mark]++;
-
-}
-
 // Checks a file, and gather status info
 function get_file_status($file)
 {
     // The information is contained in these global arrays and vars
-    global $DOCDIR, $LANG, $MAINT;
-    
-    // Transform english file name to translated file nme
-    $trans_file = preg_replace("'^{$DOCDIR}en/'", "{$DOCDIR}{$LANG}/", $file);
+    global $DOCDIR, $LANG, $MAINT, $files_by_mark, $files_by_maint;
+    global $missing_files, $missing_tags, $using_rev;
+
+    // Transform english file name to translated file name
+    $trans_file = preg_replace("'^".$DOCDIR."en/'", $DOCDIR.$LANG."/", $file);
 
     // If we cannot find the file, we push it into the missing files list
     if (!@file_exists($trans_file)) {
-        files_by_mark(REV_NOTRANS, 1);
-        missing_file($file, $trans_file);
+        $files_by_mark[REV_NOTRANS]++;
+        $trans_name = substr($trans_file, strlen($DOCDIR) + strlen($LANG) + 1);
+        $missing_files[$trans_name] = array( round(filesize($file)/1024, 1) );
+        // compute en-tags just if they're needed in the WIP-Table
+        if($using_rev) {
+               $missing_files[$trans_name][] = "1.".get_tags($file);
+        }
         return FALSE;
     }
 
-    // Get credits from file and collect it
-    $this_credits = get_credits($trans_file);
-    
-    // Add credits to file by maintainer list
-    foreach ($this_credits as $nick) {
-        files_by_maint(REV_CREDIT, $nick);
+    // No specific maintainer, check for a revision tag
+    if (empty($MAINT)) {
+        $trans_tag = get_tags($trans_file, "\\S*");
     }
-
     // If we need to check for a specific translator
-    if (!empty($MAINT)) {
+    else {
         // Get translated files tag, with maintainer
-        $trans_tag = get_tag($trans_file, $MAINT);
+        $trans_tag = get_tags($trans_file, $MAINT);
 
         // If this is a file belonging to another
         // maintainer, than we would not like to
         // deal with it anymore
         if (count($trans_tag) == 0) {
-            $trans_tag = get_tag($trans_file, "\\S*");
+            $trans_tag = get_tags($trans_file, "\\S*");
             // We found a tag for another maintainer
             if (count($trans_tag) > 0) {
                 return FALSE;
             }
         }
     }
-    // No specific maintainer, check for a revision tag
-    else {
-        $trans_tag = get_tag($trans_file, "\\S*");
+
+    // Compute sizes and diffs
+    $en_size    = intval(filesize($file) / 1024);
+    $trans_size = intval(filesize($trans_file) / 1024);
+    $size_diff  = intval($en_size) - intval($trans_size);
+    
+    // If we found no revision tag, then collect this
+    // file in the missing tags list
+    if (count($trans_tag) == 0) {
+        $files_by_mark[REV_NOTAG]++;
+        $missing_tags[] = array(substr($trans_file, strlen($DOCDIR)), $en_size, 
+$trans_size, $size_diff);
+        return FALSE;
     }
 
     // Distribute values in separate vars for further processing
     list(, $this_rev, $this_maint, $this_status) = $trans_tag;
 
-    // Get translated file name (without directories)
-    $trans_name = substr($trans_file, strlen($DOCDIR) + strlen($LANG) + 1);
-    
-    // Get English file revision for revision computing
-    $en_rev = get_tag($file);
+    // Get English file revision
+    $en_rev = get_tags($file);
     
     // If we have a numeric revision number (not n/a), compute rev. diff
     if (is_numeric($this_rev)) {
         $rev_diff   = intval($en_rev) - intval($this_rev);
-        $trans_rev  = "1.{$this_rev}";
-        $en_rev     = "1.{$en_rev}";
+        $trans_rev  = "1." . $this_rev;
+        $en_rev     = "1." . $en_rev;
     } else {
-      // If we have no numeric revision, make all revision
-      // columns hold the rev from the translated file
-      $rev_diff = $trans_rev = $this_rev;
-      $en_rev   = "1.{$en_rev}";
+        // If we have no numeric revision, make all revision
+        // columns hold the rev from the translated file
+        $rev_diff = $trans_rev = $this_rev;
+        $en_rev   = "1." . $en_rev;
     }
 
-    // Compute sizes, times and diffs
-    $en_size    = intval(filesize($file) / 1024);
-    $trans_size = intval(filesize($trans_file) / 1024);
-    $size_diff  = intval($en_size) - intval($trans_size);
-    
+    // If the file is up-to-date
+    if ($rev_diff === 0) {
+        // Store file by status and maintainer
+        $files_by_mark[REV_UPTODATE]++;
+        $files_by_maint[$this_maint][REV_UPTODATE]++;
+        
+        return FALSE;
+    } 
+
+    // Compute times and diffs
     $en_date    = intval((time() - filemtime($file)) / 86400);
     $trans_date = intval((time() - filemtime($trans_file)) / 86400);
     $date_diff  = $en_date - $trans_date;
 
-    // If we found no revision tag, then collect this
-    // file in the missing tags list
-    if (count($trans_tag) == 0) {
-        files_by_mark(REV_NOTAG, 1);
-        missing_tag($trans_file, $en_size, $trans_size, $size_diff);
-        return FALSE;
-    }
-
     // Make decision on file category by revision, date and size
-    if ($rev_diff === 0) {
-        $status_mark = REV_UPTODATE;
+    if ($rev_diff >= ALERT_REV || $size_diff >= ALERT_SIZE || $date_diff <= 
+ALERT_DATE) {
+        $status_mark = REV_CRITICAL;
     } elseif ($rev_diff === "n/a") {
         $status_mark = REV_NOREV;
-    } elseif ($rev_diff >= ALERT_REV || $size_diff >= ALERT_SIZE || $date_diff <= 
ALERT_DATE) {
-        $status_mark = REV_CRITICAL;
     } else {
         $status_mark = REV_OLD;
     }
-    
+
     // Store files by status, and by maintainer too
-    files_by_mark ($status_mark, 1);
-    files_by_maint($status_mark, $this_maint);
-    
+    $files_by_mark[$status_mark]++;
+    $files_by_maint[$this_maint][$status_mark]++;
+
     return array(
         "full_name"  => $file,
-        "short_name" => $trans_name,
+        "short_name" => basename($trans_file),
         "revision"   => array($en_rev,  $trans_rev,  $rev_diff),
         "size"       => array($en_size, $trans_size, $size_diff),
         "date"       => array($en_date, $trans_date, $date_diff),
@@ -386,10 +274,7 @@
         "status"     => $this_status,
         "mark"       => $status_mark
     );
-        
-
-    return TRUE;
-
+    
 } // get_file_status() function end
 
 // =========================================================================
@@ -398,7 +283,7 @@
 
 // Check the status of files in a diretory of phpdoc XML files
 // The English directory is passed to this function to check
-function get_dir_status($dir, $DOCDIR, $LANG)
+function get_dir_status($dir)
 {
     // If this is an old "functions" directory
     // (not under reference) then do not travers
@@ -444,7 +329,7 @@
     $dir_status = array();
     foreach ($files as $file) {
         // If the file status is OK, append the status info
-        if ($file_status = get_file_status("{$dir}{$file}")) {
+        if ($file_status = get_file_status($dir.$file)) {
             $dir_status[] = $file_status;
         }
     }
@@ -454,7 +339,7 @@
     foreach ($directories as $file) {
         $dir_status = array_merge(
             $dir_status, 
-            get_dir_status("{$dir}{$file}/", $DOCDIR, $LANG)
+            get_dir_status($dir.$file.'/')
         );
     }
     
@@ -499,9 +384,11 @@
 // translation related meta information
 function parse_translation($DOCDIR, $LANG, $MAINT)
 {
+    global $files_by_mark;
+    
     // Path to find translation.xml file, set default values,
     // in case we can't find the translation file
-    $translation_xml = "{$DOCDIR}{$LANG}/translation.xml";
+    $translation_xml = $DOCDIR.$LANG."/translation.xml";
     $output_charset  = 'iso-8859-1';
     $translation     = array(
         "intro"    => "",
@@ -523,11 +410,11 @@
 
     // Get intro text (different for a persons info and
     // for a whole group info page)
-    if (!empty($MAINT)) {
-        $translation["intro"] = "Personal Statistics for {$MAINT}";
-    } else {
+    if (empty($MAINT)) {
         preg_match("!<intro>(.+)</intro>!s", $txml, $match);
         $translation["intro"] = trim($match[1]);
+    } else {
+        $translation["intro"] = "Personal Statistics for ".$MAINT;
     }
     
     // Get encoding for the output, from the translation.xml
@@ -539,10 +426,10 @@
     
     // Get persons list preg pattern, only check for a specific
     // maintainer, if the users asked for it
-    if (!empty($MAINT)) {
-        $pattern = "!<person([^<]+nick=\"{$MAINT}\".+)/\\s?>!U";
-    } else {
+    if (empty($MAINT)) {
         $pattern = "!<person(.+)/\\s?>!U";
+    } else {
+        $pattern = "!<person([^<]+nick=\"".$MAINT."\".+)/\\s?>!U";
     }
     
     // Find all persons matching the pattern
@@ -550,10 +437,19 @@
     $translation['persons'] = parse_attr_string($matches[1]);
     
     // Get list of work in progress files
-    if (!empty($MAINT)) {
+    if (empty($MAINT)) {
 
+        // Get all wip files
+        preg_match_all("!<file(.+)/\\s?>!U", $txml, $matches);
+        $translation['files'] = parse_attr_string($matches[1]);
+
+        // Provide info about number of WIP files
+        $files_by_mark[REV_WIP] += count($translation['files']);
+
+    } else {
+        
         // Only check for a specific maintainer, if we were asked to
-        preg_match_all("!<file([^<]+person=\"{$MAINT}\".+)/\\s?>!U", $txml, $matches);
+        preg_match_all("!<file([^<]+person=\"".$MAINT."\".+)/\\s?>!U", $txml, 
+$matches);
         $translation['files'] = parse_attr_string($matches[1]);
 
         // Other maintainers wip files need to be cleared from
@@ -562,16 +458,7 @@
         $translation['allfiles'] = parse_attr_string($matches[1]);
         
         // Provide info about number of WIP files
-        files_by_mark(REV_WIP, count($translation['allfiles']));
-        
-    } else {
-        
-        // Get all wip files
-        preg_match_all("!<file(.+)/\\s?>!U", $txml, $matches);
-        $translation['files'] = parse_attr_string($matches[1]);
-
-        // Provide info about number of WIP files
-        files_by_mark(REV_WIP, count($translation['files']));
+        $files_by_mark[REV_WIP] += count($translation['allfiles']);
 
     }
     
@@ -604,22 +491,28 @@
 // Parse translation.xml file for more information
 list($charset, $translation) = parse_translation($DOCDIR, $LANG, $MAINT);
 
-// Add WIP files to maintainers file count
+// Add WIP files to maintainers file count and figure out,
+// if we need to use optional date and revision columns
+$using_date = FALSE; $using_rev = FALSE;
 foreach ($translation["files"] as $num => $fileinfo) {
-    files_by_maint(REV_WIP, $fileinfo["person"]);
+    $files_by_maint[$fileinfo["person"]][REV_WIP]++;
+    if (isset($fileinfo["date"]))     { $using_date = TRUE; }
+    if (isset($fileinfo["revision"])) { $using_rev = TRUE; }
 }
 
 // Get all files status
-$files_status = get_dir_status("{$DOCDIR}en/", $DOCDIR, $LANG);
+$files_status = get_dir_status($DOCDIR."en/");
+
+
+$navbar = "<p class=c><a href=\"#intro\">Introduction</a> | " .
+          "<a href=\"#translators\">Translators</a> | " .
+          "<a href=\"#filesummary\">File summary by type</a> | " .
+          "<a href=\"#files\">Files</a> | ";
+if (count($translation["files"]) != 0)
+       $navbar .= "<a href=\"#wip\">Work in progress</a> | ";
+$navbar .= "<a href=\"#misstags\">Missing revision numbers</a> | " .
+           "<a href=\"#missfiles\">Untranslated files</a></p>\n";
 
-// Get missing files and files with missing
-// tags collected in the previous step
-$missing_files  = missing_file();
-$missing_tags   = missing_tag();
-
-// Files counted by mark and maintainer
-$files_by_mark  = files_by_mark();
-$files_by_maint = files_by_maint();
 
 // Figure out generation date
 $date = date("r");
@@ -647,8 +540,8 @@
 .old   { background-color:#eee8aa; }
 .crit  { background-color:#ff6347; }
 .wip   { background-color:#dcdcdc; }
-.miss  { background-color:#dddddd; }
 .r     { text-align:right }
+.rb    { text-align:right; font-weight:bold; }
 .c     { text-align:center }
 body   { margin:0px 0px 0px 0px; background-color:#F0F0F0; }
 //-->
@@ -688,12 +581,12 @@
 print <<<END_OF_MULTILINE
 <a name="translators"></a>
 <table width="820" border="0" cellpadding="4" cellspacing="1" align="center">
-<tr>
-<th rowspan="2" class="blue">Translator's name</th>
-<th rowspan="2" class="blue">Contact email</th>
-<th rowspan="2" class="blue">Nick</th>
-<th rowspan="2" class="blue">C<br>V<br>S</th>
-<th colspan="7" class="blue">Files maintained</th>
+<tr class=blue>
+<th rowspan=2>Translator's name</th>
+<th rowspan=2>Contact email</th>
+<th rowspan=2>Nick</th>
+<th rowspan=2>C<br>V<br>S</th>
+<th colspan=7>Files maintained</th>
 </tr>
 <tr>
 <th class="{$CSS[REV_CREDIT]}" style="color:#000000">cre-<br>dits</th>
@@ -751,17 +644,17 @@
         print("<tr class=$col>" .
               "<td><a name=\"maint$num\">$person[name]</a></td>" .
               "<td>$person[email]</td>" .
-              "<td>$person[nick]&nbsp;</td>" .
+              "<td>$person[nick]</td>" .
               "<td class=c>$cvsu</td>" .
-              "<td class=c>" . $pi[REV_CREDIT]   . "&nbsp;</td>" .
-              "<td class=c>" . $pi[REV_UPTODATE] . "&nbsp;</td>" .
-              "<td class=c>" . $pi[REV_OLD]      . "&nbsp;</td>" .
-              "<td class=c>" . $pi[REV_CRITICAL] . "&nbsp;</td>" .
-              "<td class=c>" . $pi[REV_NOREV]    . "&nbsp;</td>" .
-              "<td class=c>" . $pi[REV_WIP]      . "&nbsp;</td>" .
-              "<th class=blue>" . array_sum($pi)    . "</th>" .
+              "<td class=c>" . $pi[REV_CREDIT]   . "</td>" .
+              "<td class=c>" . $pi[REV_UPTODATE] . "</td>" .
+              "<td class=c>" . $pi[REV_OLD]      . "</td>" .
+              "<td class=c>" . $pi[REV_CRITICAL] . "</td>" .
+              "<td class=c>" . $pi[REV_NOREV]    . "</td>" .
+              "<td class=c>" . $pi[REV_WIP]      . "</td>" .
+              "<th class=blue>" . array_sum($pi) . "</th>" .
               "</tr>\n");
-     }
+    }
   
     print "</table>\n<p>&nbsp;</p>\n";
 } 
@@ -774,13 +667,13 @@
 // for only one maintainer (his personal summary is in the table above)
 if (empty($MAINT)) {
 
-print <<<END_OF_MULTILINE
+       print <<<END_OF_MULTILINE
 <a name="filesummary"></a>
 <table width="450" border="0" cellpadding="4" cellspacing="1" align="center">
-<tr>
-<th class="blue">File status type</th>
-<th class="blue">Number of files</th>
-<th class="blue">Percent of files</th>
+<tr class=blue>
+<th>File status type</th>
+<th>Number of files</th>
+<th>Percent of files</th>
 </tr>
 END_OF_MULTILINE;
 
@@ -797,31 +690,15 @@
     );
     
     foreach ($file_types as $num => $type) {
-        $type[] = 'class="' . $CSS[$type[0]] . '"';
-        $type[] = intval($files_by_mark[$type[0]]);
-        $type[] = number_format(
-            $files_by_mark[$type[0]] * 100 / $files_sum, 2
-        );
-    
-print <<<END_OF_MULTILINE
-<tr>
- <td {$type[2]}>{$type[1]}</td>
- <td {$type[2]} align="center">{$type[3]}</td>
- <td {$type[2]} align="center">{$type[4]}%</td>
-</tr>
-END_OF_MULTILINE;
-
+       print "<tr class=".$CSS[$type[0]].">".
+                 "<td>".$type[1]."</td>".
+                 "<td class=c>".intval($files_by_mark[$type[0]])."</td>".
+                 "<td class=c>".number_format($files_by_mark[$type[0]] * 100 / 
+$files_sum, 2 ).
+                 "%</td></tr>\n";
     }
 
-print <<<END_OF_MULTILINE
-<tr>
-<th class="blue">Files total</th>
-<th class="blue">{$files_sum}</th>
-<th class="blue">100%</th>
-</tr>
-END_OF_MULTILINE;
-
-    print("</table>\n<p>&nbsp;</p>\n");
+       print "<tr class=blue><th>Files 
+total</th><th>$files_sum</th><th>100%</th></tr>\n".
+                 "</table>\n<p>&nbsp;</p>\n";
 
 }
 
@@ -835,38 +712,33 @@
 print <<<END_OF_MULTILINE
 <a name="files"></a>
 <table width="820" border="0" cellpadding="4" cellspacing="1" align="center">
-<tr>
-<th rowspan="2" class="blue">Translated file</th>
-<th colspan="3" class="blue">Revision</th>
-<th colspan="3" class="blue">Size in kB</th>
-<th colspan="3" class="blue">Age in days</th>
-<th rowspan="2" class="blue">Maintainer</th>
-<th rowspan="2" class="blue">Status</th>
+<tr class=blue>
+<th rowspan=2>Translated file</th>
+<th colspan=3>Revision</th>
+<th colspan=3>Size in kB</th>
+<th colspan=3>Age in days</th>
+<th rowspan=2>Maintainer</th>
+<th rowspan=2>Status</th>
 </tr>
-<tr>
-<th class="blue">en</th>
-<th class="blue">$LANG</th>
-<th class="blue">diff</th>
-<th class="blue">en</th>
-<th class="blue">$LANG</th>
-<th class="blue">diff</th>
-<th class="blue">en</th>
-<th class="blue">$LANG</th>
-<th class="blue">diff</th>
+<tr class=blue>
+<th>en</th>
+<th>$LANG</th>
+<th>diff</th>
+<th>en</th>
+<th>$LANG</th>
+<th>diff</th>
+<th>en</th>
+<th>$LANG</th>
+<th>diff</th>
 </tr>
 END_OF_MULTILINE;
 
 // This was the previous directory [first]
-$prev_dir = $new_dir = "{$DOCDIR}en";
+$prev_dir = $new_dir = $DOCDIR."en";
 
 // Go through all files collected
 foreach ($files_status as $num => $file) {
 
-    // Do not print out actual files
-    if ($file["mark"] == REV_UPTODATE) {
-        continue;
-    }
-    
     // Make the maintainer a link, if we have that maintainer in the list
     if (isset($maint_by_nick[$file["maintainer"]])) {
       $file["maintainer"] = '<a href="#maint' . $maint_by_nick[$file["maintainer"]] .
@@ -880,23 +752,20 @@
                               preg_replace( "'^".$DOCDIR."'", "phpdoc/", 
$file["full_name"]) .
                               "?r1=" . $file["revision"][1] . 
                               "&amp;r2=" . $file["revision"][0] .
-                              CVS_OPT . "\">" . basename($file["short_name"]) . 
"</a>";
-    } else {
-        // Else just shorten the filename (we have directory headers)
-        $file["short_name"] = basename($file["short_name"]);
+                              CVS_OPT . "\">" . $file["short_name"] . "</a>";
     }
 
     // Guess the new directory from the full name of the file
-    $new_dir = substr($file["full_name"], 0, strrpos($file["full_name"], "/"));
+    $new_dir = dirname($file["full_name"]);
     
     // If this is a new directory, put out dir headline
     if ($new_dir != $prev_dir) {
         
-        // Drop out the unneded parts from the dirname...
-        $display_dir = str_replace("{$DOCDIR}en/", "", dirname($file["full_name"]));
+        // Drop out the unneeded parts from the dirname...
+        $display_dir = str_replace($DOCDIR."en/", "", dirname($file["full_name"]));
         
         // Print out directory header
-        print "<tr class=blue><th colspan=\"12\" 
height=\"3\">$display_dir</th></tr>\n";
+        print "<tr class=blue><th colspan=12>$display_dir</th></tr>\n";
         
         // Store the new actual directory
         $prev_dir = $new_dir;
@@ -906,13 +775,13 @@
     print "<tr class={$CSS[$file['mark']]}><td>{$file['short_name']}</td>".
           "<td> {$file['revision'][0]}</td>" .
           "<td> {$file['revision'][1]}</td>".
-          "<td class=r><b>{$file['revision'][2]}</b> </td>".
+          "<td class=rb>{$file['revision'][2]} </td>".
           "<td class=r>{$file['size'][0]} </td>".
           "<td class=r>{$file['size'][1]} </td>".
-          "<td class=r><b>{$file['size'][2]}</b> </td>".
+          "<td class=rb>{$file['size'][2]} </td>".
           "<td class=r>{$file['date'][0]} </td>".
           "<td class=r>{$file['date'][1]} </td>".
-          "<td class=r><b>{$file['date'][2]}</b> </td>".
+          "<td class=rb>{$file['date'][2]} </td>".
           "<td class=c>{$file['maintainer']}</td>".
           "<td class=c>".trim($file['status'])."</td></tr>\n";
 
@@ -928,30 +797,21 @@
 // If work-in-progress list is available (valid translation.xml file in lang)
 if (count($translation["files"]) != 0) {
 
-    // Figure out, if we need to use optional date and
-    // revision columns (if there is no file with that parameter,
-    // we won't include the table column for that)
-    $using_date = FALSE; $using_rev = FALSE;
-    foreach ($translation["files"] as $file) {
-        if (isset($file["date"]))     { $using_date = TRUE; }
-        if (isset($file["revision"])) { $using_rev = TRUE; }
-    }
-  
     // Print out files table header
     print "<a name=\"wip\"></a>\n" .
     "<table width=\"820\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\" 
align=\"center\">\n" .
-    "<tr>".
-    "<th class=\"blue\">Work in progress files</th>".
-    "<th class=\"blue\">Translator</th>".
-    "<th class=\"blue\">Type</th>";
+    "<tr class=blue>".
+    "<th>Work in progress files</th>".
+    "<th>Translator</th>".
+    "<th>Type</th>";
   
     // Print out date and revision columns if needed
     if ($using_date) {
-        print '<th class="blue">Date</th>' . "";
+        print '<th>Date</th>';
     }
     if ($using_rev) {
-        print '<th class="blue">CO-Revision</th>' .
-              '<th class="blue">EN-Revision</th>';
+        print '<th>CO-Revision</th>' .
+              '<th>EN-Revision</th>';
     }
     print "</tr>\n";
   
@@ -965,7 +825,7 @@
         }
        
         // Print out the line with the first columns
-        print "<tr class=miss><td>$finfo[name]</td>" .
+        print "<tr class=wip><td>$finfo[name]</td>" .
               "<td>$finfo[person]</td><td>$finfo[type]</td>";
 
         // If we need the date column, print it out
@@ -996,7 +856,7 @@
 if ($count > 0) {
     print "<a name=\"misstags\"></a>" .
           "<table width=\"400\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" 
align=\"center\">\n".
-          "<tr class=blue><th rowspan=2><b>Files without Revision-comment ($count 
files):</b></th>".
+          "<tr class=blue><th rowspan=2>Files without Revision-comment ($count 
+files):</th>".
           "<th colspan=3>Sizes in kB</th></tr>\n".
           "<tr class=blue><th>en</th><th>$LANG</th><th>diff</th></tr>\n";
     foreach($missing_tags as $val) {
@@ -1004,22 +864,21 @@
         $short_file = basename($val[0]);
 
         // Guess the new directory from the full name of the file
-        $new_dir = substr($val[0], 0, strrpos($val[0], "/"));
+        $new_dir = dirname($val[0]);
     
         // If this is a new directory, put out dir headline
         if ($new_dir != $prev_dir) {
         
             // Print out directory header
-            print "<tr class=blue><th colspan=4>".dirname($val[0])."</th></tr>\n";
+            print "<tr class=blue><th colspan=4>$new_dir</th></tr>\n";
         
             // Store the new actual directory
             $prev_dir = $new_dir;
         }
-        print "<tr class=miss><td>$short_file</td><td class=r>$val[1]</td>".
+        print "<tr class=wip><td>$short_file</td><td class=r>$val[1]</td>".
               "<td class=r>$val[2]</td><td class=r>$val[3]</td></tr>\n";
     }
     print "</table>\n<p>&nbsp;</p>\n$navbar<p>&nbsp;</p>\n";
-
 }
 
 // Merge all work in progress files collected
@@ -1040,26 +899,26 @@
 if ($count > 0) {
     print "<a name=\"missfiles\"></a>" .
           "<table width=\"400\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" 
align=\"center\">\n" .
-          "<tr><th class=blue><b><a name=\"avail\" class=\"ref\">" .
-          " Available for translation</a> ($count files):</b></th><th 
class=blue><b>kB</b></th></tr>\n";
+          "<tr class=blue><th><a name=\"avail\" class=\"ref\">" .
+          " Available for translation</a> ($count files):</th><th>kB</th></tr>\n";
     foreach($missing_files as $file => $info) {
         // Shorten the filename (we have directory headers)
         $short_file = basename($file);
 
         // Guess the new directory from the full name of the file
-        $new_dir = substr($file, 0, strrpos($file, "/"));
+        $new_dir = dirname($file);
     
         // If this is a new directory, put out dir headline
         if ($new_dir != $prev_dir) {
         
             // Print out directory header if not "."
-            print "<tr class=blue><th colspan=\"2\">".dirname($file)."</th></tr>\n";
+            print "<tr class=blue><th colspan=2>$new_dir</th></tr>\n";
         
             // Store the new actual directory
             $prev_dir = $new_dir;
         }
 
-        print "<tr class=miss><td>$short_file</td>" .
+        print "<tr class=wip><td>$short_file</td>" .
               "<td class=r>$info[0]</td></tr>\n";
     }
     print "</table>\n<p>&nbsp;</p>\n$navbar<p>&nbsp;</p>\n";

-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to