18 lines
661 B
PHP
18 lines
661 B
PHP
|
<?php
|
||
|
class SpoilerAlertHooks {
|
||
|
public static function onParserFirstCallInit( Parser $parser ) {
|
||
|
$parser->setHook( 'spoiler', [ self::class, 'renderSpoiler' ] );
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public static function renderSpoiler( $input, array $args, Parser $parser, PPFrame $frame ) {
|
||
|
$output = $parser->recursiveTagParse( $input, $frame );
|
||
|
return "<span class='spoiler' onclick='this.classList.toggle(\"revealed\")'>" . htmlspecialchars( $output ) . "</span>";
|
||
|
}
|
||
|
|
||
|
public static function onBeforePageDisplay( OutputPage &$out, Skin &$skin ) {
|
||
|
$out->addModules( ['ext.spoileralert'] );
|
||
|
return true;
|
||
|
}
|
||
|
}
|