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
|
<?php
namespace MediaWiki\OutputTransform\Stages;
use MediaWiki\OutputTransform\ContentTextTransformStage;
use MediaWiki\Parser\ParserOptions;
use MediaWiki\Parser\ParserOutput;
/**
* Hydrate slot section header placeholders generated by RevisionRenderer.
* @internal
*/
class HydrateHeaderPlaceholders extends ContentTextTransformStage {
public function shouldRun( ParserOutput $po, ?ParserOptions $popts, array $options = [] ): bool {
// If this method ever returns something else than unconditional "true",
// HydrateHeaderPlaceholderTest::provideShouldNotRun should be updated to not be skipped.
return true;
}
protected function transformText( string $text, ParserOutput $po, ?ParserOptions $popts, array &$options ): string {
return preg_replace_callback( '#<mw:slotheader>(.*?)</mw:slotheader>#', static function ( $m ) {
$role = htmlspecialchars_decode( $m[1] );
// TODO: map to message, using the interface language. Set lang="xyz" accordingly.
$headerText = $role;
return $headerText;
}, $text );
}
}
|