Aide:Extension:GlobalCssJs

This page is a translated version of the page Help:Extension:GlobalCssJs and the translation is 100% complete.

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 :

CSS/JavaScript partagé pour tous les wikis (plus d’informations) :

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 [https://www.mediawiki.org/wiki/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 [https://www.mediawiki.org/wiki/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 [https://www.mediawiki.org/wiki/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

Extension:GlobalPreferences (si elle est présente) fournit cette fonctionnalité d'une manière plus conviviale.
/* 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)

Chaque ligne @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 [https://www.mediawiki.org/wiki/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 [https://www.mediawiki.org/wiki/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 [https://www.mediawiki.org/wiki/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');
}