MediaWiki:Gadget-CollegamentoWikidata.js

Da Cathopedia, l'enciclopedia cattolica.
Vai alla navigazione Vai alla ricerca

Nota: Dopo aver salvato le preferenze, perché i cambi abbiano effetto, devi bypassare la cache del tuo browser. Mozilla / Firefox / Safari: tieni premuto Shift mentre clicchi Reload, o premi Ctrl-Shift-R (Cmd-Shift-R per Apple Mac); Google Chrome: premi Ctrl o Shift mentre clicchi F5; IE: premi Ctrl mentre clicchi Refresh, o premi Ctrl-F5; Konqueror:: clicca semplicemente il pulsante di Reload, o premi F5; se usi Opera devi cancellare completamente la chache nel menu Tools→Preferences.

/**
 * Sotto il titolo di ogni voce, categoria o template, crea un link
 * all'elemento Wikidata se collegato, altrimenti alla pagina per permetterne la creazione.
 *
 * Bug noti:
 * * [[phab:T185437]]
 * 
 * Author: --[[Utente:Valerio Bozzolan]] 19:06, 31 lug 2018 (CEST)
 */
( function ( $, config ) {
	// human labels
	var L10n = {
		existing:   'Elemento Wikidata',
		unexisting: 'Crea elemento Wikidata',
	};

	// allowed namespaces
	var nsWhitelist = [
		0, // <main>
		10, // Template
		14, // Category
	];

	var ns    = config.get( 'wgNamespaceNumber' );
	var item  = config.get( 'wgWikibaseItemId'  );
	var title = config.get( 'wgPageName'        ).replace( /_/g, ' ' );

	if( nsWhitelist.indexOf( ns ) === -1 ) {
		return;
	}

	var text = item
		? L10n.existing
		: L10n.unexisting;

	var url  = item
		? '//www.wikidata.org/wiki/Special:EntityPage/' + item
		: '//www.wikidata.org/wiki/Special:NewItem?label=' + encodeURIComponent( title );

	var $url = $( '<a>' )
		.text( text )
		.prop( 'href', url );

	var $container = $( '<div>' ).append( $url );

	if( item ) {
		$container
			.append( ' ' )
			.append( $( '<code>' ).text( item ) );
	}

	$( '#contentSub' ).append( $container );
} )( $, mw.config );