blob: 65582324ae63b686f41186802193a5b77c6fb623 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
<?php
/**
* Spoilers
* Spoilers Hooks
*
* @author: Telshin
* @license: LGPLv3 http://opensource.org/licenses/lgpl-3.0.html
* @package: Spoilers
* @link: http://www.mediawiki.org/wiki/Extension:Spoilers
*/
class Spoilers {
/**
* Sets up this extensions parser functions.
*
* @access public
* @param Parser $parser
* @internal param \Parser $object object passed as a reference.
* @return boolean true
*/
static public function onParserFirstCallInit( Parser &$parser ) {
$parser->setHook( "spoiler", "Spoilers::parseSpoilerTag" );
return true;
}
/**
* Parses the <spoiler> tag.
*
* @access public
* @param string User input between <spoiler>
* @param array Array of arguments from the opening spoiler tag.
* @param object Mediawiki Parser Object
* @param object PPFrame object
* @return string HTML
*/
static public function parseSpoilerTag( $input, array $args, Parser $parser, PPFrame $frame ) {
$parser->getOutput()->addModules('ext.spoilers');
$renderedInput = $parser->recursiveTagParse( $input, $frame );
$showText = isset($args['show']) ? htmlentities( $args['show'], ENT_QUOTES) : wfMessage('spoilers_show_default' )->text();
$hideText = isset($args['hide']) ? htmlentities( $args['hide'], ENT_QUOTES ) : wfMessage('spoilers_hide_default')->text();
$output = "<p class='spoilers'>
<div class='spoilers-button-container'>
<span class='spoilers-button'>
<span class='spoilers-show'>{$showText}</span>
<span class='spoilers-hide'>{$hideText}</span>
</span>
</div>
<ul class='spoilers-body'>{$renderedInput}</ul>
</p>";
return $output;
}
}
|