62 lines
1.3 KiB
PHP
62 lines
1.3 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace MediaWiki\Extension\PkgStore;
|
||
|
|
||
|
use MWException;
|
||
|
use OutputPage, Parser, Skin;
|
||
|
|
||
|
/**
|
||
|
* Class MW_EXT_Tooltip
|
||
|
*/
|
||
|
class MW_EXT_Tooltip
|
||
|
{
|
||
|
/**
|
||
|
* Register tag function.
|
||
|
*
|
||
|
* @param Parser $parser
|
||
|
*
|
||
|
* @return void
|
||
|
* @throws MWException
|
||
|
*/
|
||
|
public static function onParserFirstCallInit(Parser $parser): void
|
||
|
{
|
||
|
$parser->setFunctionHook('tooltip', [__CLASS__, 'onRenderTag']);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Render tag function.
|
||
|
*
|
||
|
* @param Parser $parser
|
||
|
* @param string $word
|
||
|
* @param string $tooltip
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
public static function onRenderTag(Parser $parser, string $word = '', string $tooltip = ''): string
|
||
|
{
|
||
|
// Argument: id.
|
||
|
$getWord = MW_EXT_Kernel::outClear($word ?? '' ?: '');
|
||
|
$outWord = $getWord;
|
||
|
|
||
|
// Argument: tooltip.
|
||
|
$getTooltip = MW_EXT_Kernel::outClear($tooltip ?? '' ?: '');
|
||
|
$outTooltip = $getTooltip;
|
||
|
|
||
|
// Out parser.
|
||
|
return '<span class="mw-tooltip" title="' . $outTooltip . '">' . $outWord . '</span>';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Load resource function.
|
||
|
*
|
||
|
* @param OutputPage $out
|
||
|
* @param Skin $skin
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public static function onBeforePageDisplay(OutputPage $out, Skin $skin): void
|
||
|
{
|
||
|
$out->addModuleStyles(['ext.mw.tooltip.styles']);
|
||
|
}
|
||
|
}
|