javascript — Как добавить внешний & lt; script & gt; на & lt; голову & gt; раздел для всех страниц MediaWiki?

Я хочу добавить внешний скрипт в заголовочный раздел для всех страниц в 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 (массив (/модули/));

Я не мог заставить это работать и не нашел никаких примеров этого.

ResourceLoader description

Описание модулей по умолчанию

Может быть, я должен использовать mw.loader.load модуль, но я понятия не имею, как это сделать. Помогите мне, пожалуйста, и извините за мой английский.

Постскриптум этот Решение работает, но не правильно. Нужно решение с помощью ResourseLoader. (С) ИМХО

6

Решение

Решение было простым (похоже, второй решение):

//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 напрямую (после разбора).

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]