Voglio aggiungere uno script esterno alla sezione principale per tutte le pagine in mediawiki.Come aggiungere la sezione esterna <script> a <head> per tutte le pagine mediawiki?
Funzione onBeforePageDisplay
richiamata da BeforePageDisplay
gancio:
//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;
};
In questa funzione voglio aggiungere
<script type="text/javascript" src="http://static.wowhead.com/widgets/power.js"></script>
<script>var wowhead_tooltips = { "colorlinks": true, "iconizelinks": true, "renamelinks": true }</script>
per <head>
sezione per tutte le pagine di wiki.
Per vecchie versioni di mediawiki utilizzato addScript
metodo OutputPage dell'oggetto:
$out->addScript($html)
// Add a JS file. $html is a full script tag: '<script type="text/javascript" src="..."></script>'
ma ora
Per MediaWiki 1,17 e sopra, utilizzare moduli ResourceLoader.
$ out-> addModules (array (/ moduli /));
Non riuscivo a farlo funzionare e non trovo alcun esempio di questo.
Forse devo utilizzare il modulo mw.loader.load
, ma non ho idea di come farlo. Aiutami, per favore, e scusami per il mio inglese.
P.s this soluzione di lavoro, ma non è giusto. Hai bisogno di una soluzione con ResourseLoader usato. (C) IMHO
Non esiste alcun modo in cui è possibile caricare script esterno da ResourseLoader. Ho scritto la mia estensione per farlo. Migliore soluzione d'uso dalla mia risposta. И у тебя в коде яваскрипт вставлен в пхп. :) – hlcs