mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/CiteThisPage
synced 2024-12-04 20:18:12 +00:00
(bug 16854) Provide explicit error when <references /> is omitted. Patch by Brad Jorsch.
This commit is contained in:
parent
e7bc7d5eb8
commit
a82380d2a6
|
@ -44,6 +44,8 @@ Define more in the <nowiki>[[MediaWiki:Cite references link many format backlink
|
|||
'cite_error_references_no_text' => 'Invalid <code><ref></code> tag;
|
||||
no text was provided for refs named <code>$1</code>',
|
||||
'cite_error_included_ref' => 'Closing </ref> missing for <ref> tag',
|
||||
'cite_error_refs_without_references' => '<code><ref></code> tags exist, but no <code><references/></code> tag was found',
|
||||
'cite_error_group_refs_without_references' => '<code><ref></code> tags exist for a group named "$1", but no corresponding <code><references group="$1"/></code> tag was found',
|
||||
|
||||
/*
|
||||
Output formatting
|
||||
|
|
|
@ -426,7 +426,7 @@ class Cite {
|
|||
// Named references with >1 occurrences
|
||||
else {
|
||||
$links = array();
|
||||
//for group handling, we have an extra key here.
|
||||
//for group handling, we have an extra key here.
|
||||
for ( $i = 0; $i <= $val['count']; ++$i ) {
|
||||
$links[] = wfMsgForContentNoTrans(
|
||||
'cite_references_link_many_format',
|
||||
|
@ -665,6 +665,23 @@ class Cite {
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called at the end of page processing to append an error if refs were
|
||||
* used without a references tag.
|
||||
*/
|
||||
function checkRefsNoReferences( &$parser, &$text ) {
|
||||
foreach ( $this->mRefs as $group => $refs ) {
|
||||
if ( count( $refs ) == 0 ) continue;
|
||||
$text .= "\n<br />";
|
||||
if ( $group == CITE_DEFAULT_GROUP ) {
|
||||
$text .= $this->error( 'cite_error_refs_without_references' );
|
||||
} else {
|
||||
$text .= $this->error( 'cite_error_group_refs_without_references', htmlspecialchars( $group ) );
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the parser hooks
|
||||
|
@ -676,6 +693,7 @@ class Cite {
|
|||
$wgParser->setHook( 'references' , array( &$this, 'references' ) );
|
||||
|
||||
$wgHooks['ParserClearState'][] = array( &$this, 'clearState' );
|
||||
$wgHooks['ParserBeforeTidy'][] = array( &$this, 'checkRefsNoReferences' );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -11,6 +11,7 @@ Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
|
|||
!! result
|
||||
<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
|
||||
</p>
|
||||
<br /><strong class="error">Cite error: <code><ref></code> tags exist, but no <code><references/></code> tag was found</strong>
|
||||
!! end
|
||||
|
||||
!! test
|
||||
|
@ -129,6 +130,7 @@ Templating<ref>Text<!--comment--></ref>
|
|||
!! result
|
||||
<p>1337<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
|
||||
</p>
|
||||
<br /><strong class="error">Cite error: <code><ref></code> tags exist, but no <code><references/></code> tag was found</strong>
|
||||
!! end
|
||||
|
||||
!! test
|
||||
|
@ -236,8 +238,8 @@ refs with no content must have a name</strong>
|
|||
</p><p><strong class="error">Cite error: Invalid <code><references></code> tag;
|
||||
no input is allowed. Use <code><references /></code></strong>
|
||||
</p><p><strong class="error">Cite error: Invalid <code><references></code> tag;
|
||||
no parameters are allowed.
|
||||
Use <code><references /></code></strong>
|
||||
parameter "group" is allowed only.
|
||||
Use <code><references /></code>, or <code><references group="..." /></code></strong>
|
||||
</p>
|
||||
<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> Also zero, but differently! (Normal ref)</li>
|
||||
<li id="cite_note-bar"><a href="#cite_ref-bar_0" title="">↑</a> <strong class="error">Cite error: Invalid <code><ref></code> tag;
|
||||
|
|
Loading…
Reference in a new issue