diff options
Diffstat (limited to 'includes/specials/SpecialVersion.php')
-rw-r--r-- | includes/specials/SpecialVersion.php | 74 |
1 files changed, 35 insertions, 39 deletions
diff --git a/includes/specials/SpecialVersion.php b/includes/specials/SpecialVersion.php index 8c8e386d..29f527f2 100644 --- a/includes/specials/SpecialVersion.php +++ b/includes/specials/SpecialVersion.php @@ -1,42 +1,37 @@ <?php -/**#@+ + +/** * Give information about the version of MediaWiki, PHP, the DB and extensions * - * @file * @ingroup SpecialPage * * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com> * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later */ - -/** - * constructor - */ -function wfSpecialVersion() { - $version = new SpecialVersion; - $version->execute(); -} - -/** - * @ingroup SpecialPage - */ -class SpecialVersion { +class SpecialVersion extends SpecialPage { private $firstExtOpened = true; + function __construct(){ + parent::__construct( 'Version' ); + } + /** * main() */ - function execute() { + function execute( $par ) { global $wgOut, $wgMessageCache, $wgSpecialVersionShowHooks; $wgMessageCache->loadAllMessages(); + $this->setHeaders(); + $this->outputHeader(); + $wgOut->addHTML( '<div dir="ltr">' ); $text = $this->MediaWikiCredits() . $this->softwareInformation() . $this->extensionCredits(); - if ( $wgSpecialVersionShowHooks ) { + if ( $wgSpecialVersionShowHooks ) { $text .= $this->wgHooks(); } $wgOut->addWikiText( $text ); @@ -162,15 +157,21 @@ class SpecialVersion { usort( $wgExtensionCredits[$type], array( $this, 'compare' ) ); foreach ( $wgExtensionCredits[$type] as $extension ) { + $version = null; + $subVersion = ''; if ( isset( $extension['version'] ) ) { $version = $extension['version']; - } elseif ( isset( $extension['svn-revision'] ) && + } + if ( isset( $extension['svn-revision'] ) && preg_match( '/\$(?:Rev|LastChangedRevision|Revision): *(\d+)/', - $extension['svn-revision'], $m ) ) - { - $version = 'r' . $m[1]; - } else { - $version = null; + $extension['svn-revision'], $m ) ) { + $subVersion = 'r' . $m[1]; + } + + if( $version && $subVersion ) { + $version = $version . ' [' . $subVersion . ']'; + } elseif ( !$version && $subVersion ) { + $version = $subVersion; } $out .= $this->formatCredits( @@ -287,8 +288,6 @@ class SpecialVersion { } /** - * @static - * * @return string */ function IPInfo() { @@ -306,35 +305,34 @@ class SpecialVersion { if ( $cnt == 1 ) { // Enforce always returning a string - return (string)$this->arrayToString( $list[0] ); + return (string)self::arrayToString( $list[0] ); } elseif ( $cnt == 0 ) { return ''; } else { + global $wgLang; sort( $list ); - $t = array_slice( $list, 0, $cnt - 1 ); - $one = array_map( array( &$this, 'arrayToString' ), $t ); - $two = $this->arrayToString( $list[$cnt - 1] ); - $and = wfMsg( 'and' ); - - return implode( ', ', $one ) . " $and $two"; + return $wgLang->listToText( array_map( array( __CLASS__, 'arrayToString' ), $list ) ); } } /** - * @static - * * @param mixed $list Will convert an array to string if given and return * the paramater unaltered otherwise * @return mixed */ - function arrayToString( $list ) { + static function arrayToString( $list ) { + if( is_array( $list ) && count( $list ) == 1 ) + $list = $list[0]; if( is_object( $list ) ) { $class = get_class( $list ); return "($class)"; - } elseif ( ! is_array( $list ) ) { + } elseif ( !is_array( $list ) ) { return $list; } else { - $class = get_class( $list[0] ); + if( is_object( $list[0] ) ) + $class = get_class( $list[0] ); + else + $class = $list[0]; return "($class, {$list[1]})"; } } @@ -387,5 +385,3 @@ class SpecialVersion { /**#@-*/ } - -/**#@-*/ |