Page MenuHomePhabricator

Glossary: Multiple HTML tags in output
Closed, DeclinedPublic

Description

Author: david

Description:
From http://www.mediawiki.org/wiki/Extension:Glossary#Multiple_HTML_tags_in_output

NOTE that the proposed solution below is a little bit ugly... there is probably a better way of doing the same thing

The Glossary plugin will create multiple <html> tags within the same output page which is invalid and causes undefined browser rendering behaviour. This has been reproduced with MediaWiki 1.15.0 and is caused by ParserBeforeTidy only parsing the user content of the page (rather than the entire HTML output that is sent to the client). To resolve this problem, open up Glossary.php and find:

if (glossaryParseThisNode($doc, $doc->documentElement, $term)) {

And replace it with:

$body_element = $doc->getElementsByTagName('body')->item(0);
if (glossaryParseThisNode($doc, $body_element, $term)) {

Then a few lines down, find:

$doc->documentElement->appendChild($span);

And replace with:

$body_element->appendChild($span);

Finally, find:

$text = $doc->saveHTML();

And insert the following immediately below:

$text = substr($text, strpos($text, '<body>'), -16);

Version: unspecified
Severity: critical

Details

Reference
bz20010

Event Timeline

bzimport raised the priority of this task from to Lowest.Nov 21 2014, 10:46 PM
bzimport set Reference to bz20010.
bzimport added a subscriber: Unknown Object (MLST).

http://www.mediawiki.org/wiki/Extension:Glossary says

"This extension has been archived.

This extension is obsolete.
The following other choices are available:

Lingo
Terminology"