SpoilerAlert/includes/SpoilerAlertHooks.php

18 lines
661 B
PHP
Raw Normal View History

2024-03-19 22:33:58 +01:00
<?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;
}
}