From e22cbe3d16f5fccbe865bbaec5867c7a8150c2aa Mon Sep 17 00:00:00 2001 From: Ramunas Geciauskas Date: Tue, 8 Mar 2016 11:04:27 -0500 Subject: [PATCH] Add category name in ID property for extension row in Special:Version page Extensions can belong to multiple different categories. When listing them in the Special:Version page each entry is surrounded with HTML element with ID property "mw-version-ext-{NAME}". This causes generation of duplicate ID values, which is against W3C rules. To preserve valid and compliant HTML while retaining ID values, change the ID pattern to "mw-version-ext-{CATEGORY}-{NAME}". Bug: T99025 Change-Id: Ifdde0704631f1ef41e4c83e7e8116003983e0808 --- includes/specials/SpecialVersion.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/includes/specials/SpecialVersion.php b/includes/specials/SpecialVersion.php index c8b85ae7a3..2cd492e3b7 100644 --- a/includes/specials/SpecialVersion.php +++ b/includes/specials/SpecialVersion.php @@ -633,7 +633,7 @@ class SpecialVersion extends SpecialPage { usort( $wgExtensionCredits[$type], [ $this, 'compare' ] ); foreach ( $wgExtensionCredits[$type] as $extension ) { - $out .= $this->getCreditsForExtension( $extension ); + $out .= $this->getCreditsForExtension( $type, $extension ); } } @@ -669,11 +669,12 @@ class SpecialVersion extends SpecialPage { * - Description of extension (descriptionmsg or description) * - List of authors (author) and link to a ((AUTHORS)|(CREDITS))(\.txt)? file if it exists * + * @param string $type Category name of the extension * @param array $extension * * @return string Raw HTML */ - public function getCreditsForExtension( array $extension ) { + public function getCreditsForExtension( $type, array $extension ) { $out = $this->getOutput(); // We must obtain the information for all the bits and pieces! @@ -830,7 +831,7 @@ class SpecialVersion extends SpecialPage { // Finally! Create the table $html = Html::openElement( 'tr', [ 'class' => 'mw-version-ext', - 'id' => Sanitizer::escapeId( 'mw-version-ext-' . $extension['name'] ) + 'id' => Sanitizer::escapeId( 'mw-version-ext-' . $type . '-' . $extension['name'] ) ] ); -- 2.20.1