* Split Stat outputs to different file for better re-usability
authorNiklas Laxström <nikerabbit@users.mediawiki.org>
Sun, 23 Dec 2007 20:10:50 +0000 (20:10 +0000)
committerNiklas Laxström <nikerabbit@users.mediawiki.org>
Sun, 23 Dec 2007 20:10:50 +0000 (20:10 +0000)
maintenance/language/StatOutputs.php [new file with mode: 0644]
maintenance/language/transstat.php

diff --git a/maintenance/language/StatOutputs.php b/maintenance/language/StatOutputs.php
new file mode 100644 (file)
index 0000000..50829cb
--- /dev/null
@@ -0,0 +1,103 @@
+<?php
+if (!defined('MEDIAWIKI')) die();
+/**
+ * Statistic output classes.
+ *
+ * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+ * @author Ashar Voultoiz <thoane@altern.org>
+ */
+
+/** A general output object. Need to be overriden */
+class statsOutput {
+       function formatPercent( $subset, $total, $revert = false, $accuracy = 2 ) {
+               return @sprintf( '%.' . $accuracy . 'f%%', 100 * $subset / $total );
+       }
+
+       # Override the following methods
+       function heading() {
+       }
+       function footer() {
+       }
+       function blockstart() {
+       }
+       function blockend() {
+       }
+       function element( $in, $heading = false ) {
+       }
+}
+
+/** Outputs WikiText */
+class wikiStatsOutput extends statsOutput {
+       function heading() {
+               global $IP;
+               $version = SpecialVersion::getVersion( $IP );
+               echo "'''Statistics are based on:''' <code>" . $version . "</code>\n\n";
+               echo "'''Note:''' These statistics can be generated by running <code>php maintenance/language/transstat.php</code>.\n\n";
+               echo "For additional information on specific languages (the message names, the actual problems, etc.), run <code>php maintenance/language/checkLanguage.php --lang=foo</code>.\n\n";
+               echo '{| class="sortable wikitable" border="2" cellpadding="4" cellspacing="0" style="background-color: #F9F9F9; border: 1px #AAAAAA solid; border-collapse: collapse; clear:both;" width="100%"'."\n";
+       }
+       function footer() {
+               echo "|}\n";
+       }
+       function blockstart() {
+               echo "|-\n";
+       }
+       function blockend() {
+               echo '';
+       }
+       function element( $in, $heading = false ) {
+               echo ($heading ? '!' : '|') . " $in\n";
+       }
+       function formatPercent( $subset, $total, $revert = false, $accuracy = 2 ) {
+               $v = @round(255 * $subset / $total);
+               if ( $revert ) {
+                       $v = 255 - $v;
+               }
+               if ( $v < 128 ) {
+                       # Red to Yellow
+                       $red = 'FF';
+                       $green = sprintf( '%02X', 2 * $v );
+               } else {
+                       # Yellow to Green
+                       $red = sprintf('%02X', 2 * ( 255 - $v ) );
+                       $green = 'FF';
+               }
+               $blue = '00';
+               $color = $red . $green . $blue;
+
+               $percent = statsOutput::formatPercent( $subset, $total, $revert, $accuracy );
+               return 'bgcolor="#'. $color .'" | '. $percent;
+       }
+}
+
+/** Outputs WikiText and appends category and text only used for Meta-Wiki */
+class metawikiStatsOutput extends wikiStatsOutput {
+       function heading() {
+               echo "See [[MediaWiki localisation]] to learn how you can help translating MediaWiki.\n\n";
+               parent::heading();
+       }
+       function footer() {
+               parent::footer();
+               echo "\n[[Category:Localisation|Statistics]]\n";
+       }
+}
+
+/** Output text. To be used on a terminal for example. */
+class textStatsOutput extends statsOutput {
+       function element( $in, $heading = false ) {
+               echo $in."\t";
+       }
+       function blockend() {
+               echo "\n";
+       }
+}
+
+/** csv output. Some people love excel */
+class csvStatsOutput extends statsOutput {
+       function element( $in, $heading = false ) {
+               echo $in . ";";
+       }
+       function blockend() {
+               echo "\n";
+       }
+}
index 6a1423a..410bd69 100644 (file)
  * Output is posted from time to time on:
  * http://meta.wikimedia.org/wiki/Localization_statistics
  */
+$optionsWithArgs = array( 'output' );
 
 require_once( dirname(__FILE__).'/../commandLine.inc' );
 require_once( 'languages.inc' );
+require_once( dirname(__FILE__).'/StatOutputs.php' );
+
 
 if ( isset( $options['help'] ) ) {
        showUsage();
@@ -39,100 +42,7 @@ END;
        exit();
 }
 
-/** A general output object. Need to be overriden */
-class statsOutput {
-       function formatPercent( $subset, $total, $revert = false, $accuracy = 2 ) {
-               return @sprintf( '%.' . $accuracy . 'f%%', 100 * $subset / $total );
-       }
-
-       # Override the following methods
-       function heading() {
-       }
-       function footer() {
-       }
-       function blockstart() {
-       }
-       function blockend() {
-       }
-       function element( $in, $heading = false ) {
-       }
-}
-
-/** Outputs WikiText */
-class wikiStatsOutput extends statsOutput {
-       function heading() {
-               global $IP;
-               $version = SpecialVersion::getVersion( $IP );
-               echo "'''Statistics are based on:''' <code>" . $version . "</code>\n\n";
-               echo "'''Note:''' These statistics can be generated by running <code>php maintenance/language/transstat.php</code>.\n\n";
-               echo "For additional information on specific languages (the message names, the actual problems, etc.), run <code>php maintenance/language/checkLanguage.php --lang=foo</code>.\n\n";
-               echo '{| class="sortable wikitable" border="2" cellpadding="4" cellspacing="0" style="background-color: #F9F9F9; border: 1px #AAAAAA solid; border-collapse: collapse; clear:both;" width="100%"'."\n";
-       }
-       function footer() {
-               echo "|}\n";
-       }
-       function blockstart() {
-               echo "|-\n";
-       }
-       function blockend() {
-               echo '';
-       }
-       function element( $in, $heading = false ) {
-               echo ($heading ? '!' : '|') . " $in\n";
-       }
-       function formatPercent( $subset, $total, $revert = false, $accuracy = 2 ) {
-               $v = @round(255 * $subset / $total);
-               if ( $revert ) {
-                       $v = 255 - $v;
-               }
-               if ( $v < 128 ) {
-                       # Red to Yellow
-                       $red = 'FF';
-                       $green = sprintf( '%02X', 2 * $v );
-               } else {
-                       # Yellow to Green
-                       $red = sprintf('%02X', 2 * ( 255 - $v ) );
-                       $green = 'FF';
-               }
-               $blue = '00';
-               $color = $red . $green . $blue;
-
-               $percent = statsOutput::formatPercent( $subset, $total, $revert, $accuracy );
-               return 'bgcolor="#'. $color .'" | '. $percent;
-       }
-}
-
-/** Outputs WikiText and appends category and text only used for Meta-Wiki */
-class metawikiStatsOutput extends wikiStatsOutput {
-       function heading() {
-               echo "See [[MediaWiki localisation]] to learn how you can help translating MediaWiki.\n\n";
-               parent::heading();
-       }
-       function footer() {
-               parent::footer();
-               echo "\n[[Category:Localisation|Statistics]]\n";
-       }
-}
-
-/** Output text. To be used on a terminal for example. */
-class textStatsOutput extends statsOutput {
-       function element( $in, $heading = false ) {
-               echo $in."\t";
-       }
-       function blockend() {
-               echo "\n";
-       }
-}
 
-/** csv output. Some people love excel */
-class csvStatsOutput extends statsOutput {
-       function element( $in, $heading = false ) {
-               echo $in . ";";
-       }
-       function blockend() {
-               echo "\n";
-       }
-}
 
 # Select an output engine
 switch ( $options['output'] ) {