MediaWiki:Gadget-SisterProjects.js

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
//[[Catégorie:MediaWiki:Fonction Monobook en JavaScript|SisterProjects]]
// Liens les pages spéciales/systèmes équivalentes vers d'autres wiki, placé sous la barre d’outils à gauche, seulement chargé dans les espaces Spécial (-1) et Mediawiki (8)

if (
	mw.config.get( 'wgCanonicalNamespace' ) === 'Special' ||
	mw.config.get( 'wgCanonicalNamespace' ) === 'MediaWiki'
) {
	$( function () {
		var projects, isVector, path, $ul, $div;
		
		projects = [
			[ 'fr.wikipedia', 'Wikipédia' ],
			[ 'fr.wiktionary', 'Wiktionnaire' ],
			[ 'fr.wikibooks', 'Wikilivres' ],
			[ 'fr.wikiquote', 'Wikiquote' ],
			[ 'fr.wikinews', 'Wikinews' ],
			[ 'fr.wikisource', 'Wikisource' ],
			[ 'fr.wikivoyage', 'Wikivoyage' ],
			[ 'species.wikipedia', 'Wikispecies' ],
			[ 'commons.wikimedia', 'Commons' ],
			[ 'meta.wikimedia', 'Meta-Wiki' ],
			[ 'www.wikidata', 'Wikidata' ]
		];
		
		isVector = ( mw.config.get( 'skin' ) === 'vector' );

		path = mw.util.getUrl( mw.config.get( 'wgNamespaceNumber' ) < 0
			? mw.format(
				'$1:$2',
				mw.config.get( 'wgCanonicalNamespace' ),
				mw.config.get( 'wgCanonicalSpecialPageName' )
			)
			: mw.config.get( 'wgPageName' )
		);

		$ul = $( '<ul>' );

		$div = $( '<div>' )
			.attr( {
				'id': 'p-intpr',
				'role': 'navigation',
				'aria-labelledby': isVector ? 'p-intpr-label' : null
			} )
			.addClass( isVector ? 'portal': 'portlet' )
			.append(
				$( '<h3>' )
					.attr( 'id', isVector ? 'p-intpr-label' : null )
					.text( 'Autres projets' ),
				$( '<div>' )
					.addClass( isVector ? 'body' : 'pBody' )
					.append( $ul )
			);

		$.each( projects, function () {
			$( '<a>' )
				.attr( 'href', mw.format( '//$1.org$2', this[ 0 ], path ) )
				.text( this[ 1 ] )
				.appendTo( $( '<li>' ).appendTo( $ul ) );
		} );

		$( '#p-tb' ).after( $div );
	} );
}