11
votes

Comment ajouter personnalisé JavaScript global à MediaWiki

Comment puis-je ajouter un fichier JavaScript personnalisé (disons personnalisé.js ) à une installation MediaWiki?

Par exemple, si je mettez personnalisé.js dans le dossier Ressources / lib / , comment puis-je obtenir cela pour être chargé sur chaque page?

Je n'essaie pas de le faire dans le cadre d'une extension, et je préférerais conserver mes modifications dans localsettings.php .


0 commentaires

4 Réponses :


1
votes

8 commentaires

La page sur Common.js a été supprimée et la documentation sur votre page liée est incroyablement dépourvue de toute sorte d'exemples utiles. J'espère sincèrement que vous allez modifier votre réponse pour inclure un exemple ou deux de ce dont vous parlez.


Avez-vous essayé de chercher votre système de fichiers pour communs.js? Est-ce qu'il existe?


J'ai fait. Il n'y a pas de fichier nommé "commun.js" ou "commun.js".


Si vous exécutez Dev Outils F12 et voyez quels fichiers que la page est chargée d'essayer de demander un fichier commun.js et de donner un 404? Si je comprends tout JS, vous souhaitez ajouter à une page irait en commun.js si vous voulez une solution simple.


Non, il tente de charger un fichier commun.js. De plus, les seules références à un fichier "Common.Js" dans l'installation MediaWiki se produisent dans le message Langue .json fichiers, l'incluse pour un SPÉCOREMUSERLOGIN fichier, commentaires dans un fichier sortiePage et certains fichiers de test, qui testent des messages.


Dans LOCALALSETTS.PHP Avez-vous essayé d'ajouter $ wgusitejs = true;


Oui, mais ça n'a rien fait.


Deviner. Il n'y a pas de fichier commun.js. Il y a une page appelée MediaWiki: Common.js Disponible uniquement pour les administrateurs. Tapez cela dans la barre de recherche de l'installation Wiki et modifiez cette page avec votre code.



12
votes

Comme Garryp l'a déjà suggéré, vous pouvez mettre le code JavaScript dans MediaWiki: Common.js . Notez que c'est pas un fichier, mais simplement une page que vous pouvez modifier (en tant qu'administrateur) sur votre wiki. Par exemple, voici le MediaWiki: common.js page sur l'anglais Wikipedia .

JavaScript code de Common.js est uniquement chargé si le $ wgusitejs est activé. Toutefois, il s'agit du paramètre par défaut, il devrait donc fonctionner sauf si vous l'avez délibérément désactivé en ajoutant une ligne comme $ wgusitejs = false; dans votre fichier localsettings.php.


Il est également possible de charger le code JavaScript à partir d'un fichier à l'aide de resourcesceler , mais c'est un peu plus compliqué . Néanmoins, comme un exemple rapide, si vous aviez, disons, des fichiers nommés foo / bar.js et foo / baz.js dans votre répertoire MediaWiki principal, vous pouvez charger en ajoutant le code suivant dans votre fichier localsettings.php: xxx

Fondamentalement, cette méthode est principalement utile pour les auteurs d'extension, qui peut l'utiliser pour charger CSS et JS Code comme nécessaire. Voir le $ wgresourcemodules et AVISPEDÉDISPLAY Documentation Pour plus de détails, y compris des options supplémentaires du module (et modules de base ).


1 commentaires

C'est bien! Beaucoup plus utile que les documents Wiki. Je pense utiliser le module de ressources et les crochets lorsque vous essayez de mettre dans diverses bibliothèques JavaScript / JQuery.



1
votes

Vous pouvez mettre le code JavaScript dans la page "MediaWiki: common.js" de votre wiki.

sur un nouveau wiki frais, vous seriez créer cette page. Parce que c'est dans l'espace de noms "MediaWiki", vous pouvez frapper Permissions . Vous ne pouvez pas modifier la page sauf si vous êtes un utilisateur administrateur. Allez à la page "Spécial: LISTUISSERS / SYSOP" Pour voir qui les utilisateurs d'administrateur sont et assurez-vous d'être connecté comme l'une d'entre elles ( Vous ne pouvez pas me souvenir du mot de passe? ). Une fois que vous avez surmonté ces obstacles et que vous pouvez modifier "mediawiki: commun.js" ...

Vous pouvez placer n'importe quel JavaScript, et il devrait charger pour tous les utilisateurs indépendamment de leur groupe d'utilisateurs ou de leur choix de peau ( D'où le nom "commun"). Après avoir changé, rappelez-vous que votre navigateur peut mettre en cache choses. Voir n'importe quelle page wiki et faire un rafraîchissement CTRL +, et le nouveau JavaScript devrait lancer.

Si vous avez JavaScript dans un fichier que vous souhaitez charger (téléchargés parmi vos fichiers wiki ou hébergé sur un Site externe) Vous pouvez le faire via ResourpCeloader. Ilmari Karonen décrivait comment faire cela comme une édition sur votre localsettings.php, mais une autre approche ...

Vous pouvez utiliser Ressources dans votre "MediaWiki: common.js" Page . Par exemple, éditez la page et il suffit d'ajouter une ligne une ligne: xxx

voir la section "Mw.loader.load" dans le MediaWiki.org resourceceler / modules Docs .

Nous utilisions un événement AddonLoadhook destiné à suivre De charger cela, nous avons donc fini par le faire la manière JQuery: xxx


0 commentaires

2
votes

Utilisation de common.js est une bonne idée.

Une autre option est de le définir à charger dans LOCALALSETTS.PHP: P>

# Add onBeforePageDisplay function to BeforePageDisplay Hook
$wgHooks['BeforePageDisplay'][] ='onBeforePageDisplay';

function onBeforePageDisplay( OutputPage &$out, Skin &$skin )
{
    $script = '<script type="text/javascript" src="https://example.com/javascript.js"></script>';
    $out->addHeadItem("itemName", $script);
    return true;
};


0 commentaires