From 0f19ee9d85aac90a38682ad8a5003bd3e2a8dc1b Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Wed, 29 Apr 2015 22:40:48 -0400 Subject: [PATCH] SpecialStatsAddExtra: Format column label with msg This allows the user of the SpecialStatsAddExtra hook to provide formatting for the row label using an i18n message key. If given, the message is given the row key as a parameter. To maintain backward compatibility, the key is used as-is as was done previously if a message key is not provided. Bug: T97623 Change-Id: I43c522b24372e115ed78adf69848bf50cbab8295 --- docs/hooks.txt | 8 +++++++- includes/specials/SpecialStatistics.php | 13 +++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/hooks.txt b/docs/hooks.txt index 6f59b2d3a7..d15f66d2e3 100644 --- a/docs/hooks.txt +++ b/docs/hooks.txt @@ -2775,7 +2775,13 @@ $term: string of search term 'SpecialStatsAddExtra': Add extra statistic at the end of Special:Statistics. &$extraStats: Array to save the new stats - ( $extraStats[''] => ; ) + ( $extraStats[''] => ; + can be an array with the keys "name" and "number": + "name" is the HTML to be displayed in the name column + "number" is the number to be displayed. + or, can be the number to be displayed and is the + message key to use in the name column, +$context: IContextSource object 'SpecialUploadComplete': Called after successfully uploading a file from Special:Upload. diff --git a/includes/specials/SpecialStatistics.php b/includes/specials/SpecialStatistics.php index 0acbf95b59..9d6b3414ca 100644 --- a/includes/specials/SpecialStatistics.php +++ b/includes/specials/SpecialStatistics.php @@ -78,7 +78,7 @@ class SpecialStatistics extends SpecialPage { # Statistic - other $extraStats = array(); - if ( Hooks::run( 'SpecialStatsAddExtra', array( &$extraStats ) ) ) { + if ( Hooks::run( 'SpecialStatsAddExtra', array( &$extraStats, $this->getContext() ) ) ) { $text .= $this->getOtherStats( $extraStats ); } @@ -256,12 +256,17 @@ class SpecialStatistics extends SpecialPage { // Collect all items that belong to the same header foreach ( $items as $key => $value ) { - $name = $this->msg( $key )->parse(); - $number = htmlspecialchars( $value ); + if ( is_array( $value ) ) { + $name = $value['name']; + $number = $value['number']; + } else { + $name = $this->msg( $key )->parse(); + $number = $value; + } $return .= $this->formatRow( $name, - $this->getLanguage()->formatNum( $number ), + $this->getLanguage()->formatNum( htmlspecialchars( $number ) ), array( 'class' => 'mw-statistics-hook', 'id' => 'mw-' . $key ) ); } -- 2.20.1