Я хочу добавить внешний скрипт в заголовочный раздел для всех страниц в MediaWiki.
функция onBeforePageDisplay
обратный звонок от BeforePageDisplay
крюк:
//LocalSettings.php
...
# Assign my functions to hook
$wgHooks['BeforePageDisplay'][] ='onBeforePageDisplay';
function onBeforePageDisplay( OutputPage &$out, Skin &$skin )
{
mw.loader.load('http://static.wowhead.com/widgets/power.js', 'text/javascript');
$out->addModules( 'mw.loader' );
return true;
};
В эту функцию я хочу добавить
<script type="text/javascript" src="http://static.wowhead.com/widgets/power.js"></script>
<script>var wowhead_tooltips = { "colorlinks": true, "iconizelinks": true, "renamelinks": true }</script>
в <head>
раздел для всех страниц в вики.
Для старых версий MediaWiki используется addScript
метод OutputPage объект:
$out->addScript( $html )
// Add a JS file. $html is a full script tag: '<script type="text/javascript" src="..."></script>'
но сейчас
Для MediaWiki 1.17 и выше используйте модули ResourceLoader.
$ out-> addModules (массив (/модули/));
Я не мог заставить это работать и не нашел никаких примеров этого.
Может быть, я должен использовать mw.loader.load
модуль, но я понятия не имею, как это сделать. Помогите мне, пожалуйста, и извините за мой английский.
Постскриптум этот Решение работает, но не правильно. Нужно решение с помощью ResourseLoader. (С) ИМХО
Решение было простым (похоже, второй решение):
//LocalSettings.php
...
# Assign my functions to hook
$wgHooks['BeforePageDisplay'][] ='onBeforePageDisplay';
function onBeforePageDisplay( OutputPage &$out, Skin &$skin )
{
$script = '<script type="text/javascript" src="http://static.wowhead.com/widgets/power.js"></script><script>var wowhead_tooltips = { "colorlinks": true, "iconizelinks": true, "renamelinks": true }</script>';
$out->addHeadItem("wowhead script", $script);
return true;
};
Так выглядят лучше этот, потому что он работает с OutputPage напрямую (после разбора).
Других решений пока нет …