Revert r23471, r23474: restore Special:Version to working, non-ugly state
[lhc/web/wiklou.git] / includes / SpecialVersion.php
index 9cdf757..0b63393 100644 (file)
@@ -2,10 +2,7 @@
 /**#@+
  * Give information about the version of MediaWiki, PHP, the DB and extensions
  *
- * @package MediaWiki
- * @subpackage SpecialPage
- *
- * @bug 2019, 4531
+ * @addtogroup SpecialPage
  *
  * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
  * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason
@@ -50,10 +47,7 @@ class SpecialVersion {
         */
        function MediaWikiCredits() {
                $version = self::getVersion();
-               $dbr =& wfGetDB( DB_SLAVE );
-
-               global $wgLanguageNames, $wgLanguageCode;
-               $mwlang = $wgLanguageNames[$wgLanguageCode];
+               $dbr = wfGetDB( DB_SLAVE );
 
                $ret =
                "__NOTOC__
@@ -110,21 +104,19 @@ class SpecialVersion {
                $out .= wfOpenElement('table', array('id' => 'sv-ext') );
 
                foreach ( $extensionTypes as $type => $text ) {
-                       if ( count( @$wgExtensionCredits[$type] ) ) {
+                       if ( isset ( $wgExtensionCredits[$type] ) && count ( $wgExtensionCredits[$type] ) ) {
                                $out .= $this->openExtType( $text );
 
                                usort( $wgExtensionCredits[$type], array( $this, 'compare' ) );
 
                                foreach ( $wgExtensionCredits[$type] as $extension ) {
-                                       wfSuppressWarnings();
                                        $out .= $this->formatCredits(
-                                               $extension['name'],
-                                               $extension['version'],
-                                               $extension['author'],
-                                               $extension['url'],
-                                               $extension['description']
+                                               isset ( $extension['name'] )        ? $extension['name']        : '',
+                                               isset ( $extension['version'] )     ? $extension['version']     : null,
+                                               isset ( $extension['author'] )      ? $extension['author']      : '',
+                                               isset ( $extension['url'] )         ? $extension['url']         : null,
+                                               isset ( $extension['description'] ) ? $extension['description'] : ''
                                        );
-                                       wfRestoreWarnings();
                                }
                        }
                }
@@ -196,6 +188,7 @@ class SpecialVersion {
                        foreach ($myWgHooks as $hook => $hooks)
                                $ret .= "<tr><td>$hook</td><td>" . $this->listToText( $hooks ) . "</td></tr>\n";
 
+                       $ret .= '</table>';
                        return $ret;
                } else
                        return '';
@@ -235,10 +228,12 @@ class SpecialVersion {
        function listToText( $list ) {
                $cnt = count( $list );
 
-           if ( $cnt == 1 )
+           if ( $cnt == 1 ) {
                        // Enforce always returning a string
                        return (string)$this->arrayToString( $list[0] );
-           else {
+           } elseif ( $cnt == 0 ) {
+                       return '';
+               } else {
                        $t = array_slice( $list, 0, $cnt - 1 );
                        $one = array_map( array( &$this, 'arrayToString' ), $t );
                        $two = $this->arrayToString( $list[$cnt - 1] );
@@ -255,9 +250,12 @@ class SpecialVersion {
         * @return mixed
         */
        function arrayToString( $list ) {
-               if ( ! is_array( $list ) )
+               if( is_object( $list ) ) {
+                       $class = get_class( $list );
+                       return "($class)";
+               } elseif ( ! is_array( $list ) ) {
                        return $list;
-               else {
+               else {
                        $class = get_class( $list[0] );
                        return "($class, {$list[1]})";
                }
@@ -266,8 +264,6 @@ class SpecialVersion {
        /**
         * Retrieve the revision number of a Subversion working directory.
         *
-        * @bug 7335
-        *
         * @param string $dir
         * @return mixed revision number as int, or false if not a SVN checkout
         */