diff options
Diffstat (limited to 'maintenance/language/StatOutputs.php')
-rw-r--r-- | maintenance/language/StatOutputs.php | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/maintenance/language/StatOutputs.php b/maintenance/language/StatOutputs.php index e9d8c86d..31ce7024 100644 --- a/maintenance/language/StatOutputs.php +++ b/maintenance/language/StatOutputs.php @@ -1,7 +1,4 @@ <?php -if ( !defined( 'MEDIAWIKI' ) ) { - die(); -} /** * Statistic output classes. * @@ -27,57 +24,78 @@ if ( !defined( 'MEDIAWIKI' ) ) { */ /** A general output object. Need to be overriden */ -class statsOutput { +class StatsOutput { function formatPercent( $subset, $total, $revert = false, $accuracy = 2 ) { - return @sprintf( '%.' . $accuracy . 'f%%', 100 * $subset / $total ); + wfSuppressWarnings(); + $return = sprintf( '%.' . $accuracy . 'f%%', 100 * $subset / $total ); + wfRestoreWarnings(); + + return $return; } # Override the following methods function heading() { } + function footer() { } + function blockstart() { } + function blockend() { } + function element( $in, $heading = false ) { } } /** Outputs WikiText */ -class wikiStatsOutput extends statsOutput { +class WikiStatsOutput extends StatsOutput { function heading() { global $wgDummyLanguageCodes; $version = SpecialVersion::getVersion( 'nodb' ); 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 "'''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 'English (en) is excluded because it is the default localization'; if ( is_array( $wgDummyLanguageCodes ) ) { $dummyCodes = array(); foreach ( $wgDummyLanguageCodes as $dummyCode => $correctCode ) { $dummyCodes[] = Language::fetchLanguageName( $dummyCode ) . ' (' . $dummyCode . ')'; } - echo ', as well as the following languages that are not intended for system message translations, usually because they redirect to other language codes: ' . implode( ', ', $dummyCodes ); + echo ', as well as the following languages that are not intended for ' . + 'system message translations, usually because they redirect to other ' . + 'language codes: ' . implode( ', ', $dummyCodes ); } echo ".\n\n"; # dot to end sentence - echo '{| class="sortable wikitable" border="2" style="background-color: #F9F9F9; border: 1px #AAAAAA solid; border-collapse: collapse; clear:both; width:100%;"' . "\n"; + echo '{| class="sortable wikitable" border="2" 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 ); + wfSuppressWarnings(); + $v = round( 255 * $subset / $total ); + wfRestoreWarnings(); + if ( $revert ) { # Weigh reverse with factor 20 so coloring takes effect more quickly as # this option is used solely for reporting 'bad' percentages. @@ -100,25 +118,28 @@ class wikiStatsOutput extends statsOutput { $color = $red . $green . $blue; $percent = parent::formatPercent( $subset, $total, $revert, $accuracy ); + return 'style="background-color:#' . $color . ';"|' . $percent; } } /** Output text. To be used on a terminal for example. */ -class textStatsOutput extends statsOutput { +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 { +class CsvStatsOutput extends StatsOutput { function element( $in, $heading = false ) { echo $in . ";"; } + function blockend() { echo "\n"; } |