Underscores etc. aren't valid in HTML IDs, so escape them properly
authorJack Phoenix <jack@countervandalism.net>
Mon, 4 May 2015 00:10:06 +0000 (03:10 +0300)
committerJack Phoenix <jack@countervandalism.net>
Mon, 4 May 2015 19:44:16 +0000 (22:44 +0300)
This was an issue where a skin's/extension's name would contain spaces,
i.e. "Cologne Blue", "Renameuser for CentralAuth". Such a name would be
passed as-is to the HTML ID, but spaces aren't valid in IDs, and this
would in turn lead to HTML validation issues. Currently the English
Wikipedia's Special:Version page has 26 validation issues and this patch
fixes the supermajority of them.

Change-Id: Ia197b0208fa2abfebbea1cb23f08822db2938162

includes/specials/SpecialVersion.php

index 9a1c5e5..620c736 100644 (file)
@@ -842,7 +842,7 @@ class SpecialVersion extends SpecialPage {
                // Finally! Create the table
                $html = Html::openElement( 'tr', array(
                                'class' => 'mw-version-ext',
-                               'id' => "mw-version-ext-{$extension['name']}"
+                               'id' => Sanitizer::escapeId( 'mw-version-ext-' . $extension['name'] )
                        )
                );