Aide:Extension:GlobalCssJs
L'extension GlobalCssJs permet aux utilisateurs de créer une page JavaScript ou CSS pouvant être chargée dans tous les wiki d'une ferme de wiki. Si vous allez à Préférences > Apparence
sur un wiki pour lequel l'extension est activée, vous trouverez les liens vers les scripts ou les feuilles de styles globaux :
Sur les wikis de Wikimedia, ces personnalisations sont hébergées sur Meta-Wiki.
Scripts globaux (JavaScript)
Variables
Lors de l'ajout de scripts à votre global.js, veuillez noter que, comme pour gadgets, des variables déclarées avec var example
ne sont pas attachées à l'objet window
: ce sont des variables locales dont le domaine de validité est une fonction enveloppe insérée par le ResourceLoader pour implémenter le module global (qui est appelé ext.globalcssjs.user
). Aussi, si vous envisagez de déplacer un script local vers un module global et qui doit définir des variables globales, assurez vous d'utiliser la syntaxe window.example
pour les déclarer.
Exemple
/* Tout code JavaScript ajouté à cette page sera chargé sur tous les wikis où vous avez un compte (voir la [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|documentation]]). */
window.myConfig = true;
// [[wikipedia:User:Lupin/popups]]
window.popupAdminLinks = true;
mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript' );
URLs explicites
Vous devrez passer une URL complète pour charger le script.
Exemples
/* Tout code JavaScript ajouté à cette page sera chargé sur tous les wikis où vous avez un compte (voir la [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|documentation]]). */
mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript' );
Personnalisation par wiki
Exemple
/* Tout code JavaScript ajouté à cette page sera chargé sur tous les wikis où vous avez un compte (voir la [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|documentation]]). */
// définir quelques fonctions
function onMultiLingualWikis(){
// ...
}
function onWikibooks(){
// ...
}
function onFrench(){
// ...
}
function onRuWikisource(){
// ...
}
function onEveryWiki(){
mw.loader.load( '//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-UTCLiveClock.js&action=raw&ctype=text/javascript' );
}
onEveryWiki();
if ( /^(mediawiki|wikidata|meta|commons)wiki$/.test( mw.config.get( 'wgDBname' ) ) ) {
onMultiLingualWikis();
} else if ( /wikibooks$/.test( mw.config.get( 'wgDBname' ) ) ) {
onWikibooks();
} else if ( mw.config.get( 'wgContentLanguage' ) === 'fr' ) {
onFrench();
} else if ( mw.config.get( 'wgDBname' ) === 'ruwikisource' ) {
onRuWikisource();
}
Pour exclure un wiki
Pour exclure un wiki spécifique, par exemple Wikisource en anglais, vous pouvez inclure tout ou partie de votre global.js avec :
if ( mw.config.get("wgDBname") !== "enwikisource" ) {
// Mettre ici le JavaScript que vous voulez exécuter sur tous les wikis sauf sur ''enwikisource''
}
Exemple : définir un langage d'interface global
/* changer la langue pour passer à allemand */
mw.loader.using( 'mediawiki.user', function() {
if ( mw.user.options.get( 'language' ) !== 'de' ) {
( new mw.Api() ).postWithToken( 'csrf', {
action: 'options',
change: 'language=de'
} ).then( function() {
mw.notify( 'La langue a été modifiée pour être allemand. Veuillez recharger la page.' );
} );
} else {
console.log( 'La langue était déjà allemand !' );
}
} );
Feuilles de style globales (CSS)
@import ...
doit être au début du fichier.
Exemple
/* Tout CSS ajouté à cette page sera chargé sur tous les wikis où vous avez un compte (voir la [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|documentation]]). */
/* masquer quelques éléments de l'interface */
#n-help,
#footer {
display: none !important;
}
Personnalisation par habillage
Actuellement l'extension ne fournit pas de CSS/JS global pour des habillages spécifiques, mais il est possible de personnaliser le CSS et le JS pour un habillage globalement.
Pour le CSS, vous pouvez modifier l'apparence d'un habillage spécifique en utilisant les classes telles que skin-vector et skin-monobook, qui sont ajoutées automatiquement à l'élément body par MediaWiki.
Vous pouvez utiliser le sélecteur :not()
pour sauter un habillage particulier, par exemple :not(.skin-minerva)
pour ne pas appliquer la règle sur l'habillage pour mobile.
Exemple (CSS)
/* Tout CSS ajouté à cette page sera chargé sur tous les wikis où vous avez un compte (voir la [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|documentation]]). */
/* masquer quelques éléments de l'interface pour l'habillage Vector */
.skin-vector #n-help,
.skin-vector #footer {
display: none !important;
}
/* mettre en gras les liens interwiki de la barre latérale vers en.wikipedia.org, simple.wikipedia.org, et les liens interprojets vers Commons/Wikivoyage */
.interwiki-en, .interwiki-simple, .wb-otherproject-commons, .wb-otherproject-wikivoyage {
font-weight: bold;
}
Exemple (JS)
/* Tout code JavaScript ajouté à cette page sera chargé sur tous les wikis où vous avez un compte (voir la [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|documentation]]). */
// charger JWB totalement si on utilise l'habillage Vector
if ( mw.config.get( 'skin' ) === 'vector' ) {
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript');
}