MediaWiki:Gadget-wikidataHeaderLink.js

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
JS-код ниже относится к гаджету «Ссылка на связанный элемент Викиданных в заголовке страницы» (править описание). Его использует около 600 учётных записей.

После сохранения или недавних изменений очистите кэш браузера.

/**
 * Ссылка на связанный элемент Викиданных в заголовке.
 * Если элемента нет, то ссылка на создание нового.
 */
( function ( mw, $ ) {
	var i18n = {
		createLabel: 'создать элемент'
	};

	$( function () {
		mw.util.addCSS( '\
			.wikibase-title-id { padding:0 0.6em; -webkit-user-select:none; user-select:none; unicode-bidi:embed; font-size:.6em; color:#72777d; }\
			.wikibase-title-id:hover, .wikibase-title-id:focus, .wikibase-title-id:active { -webkit-user-select:text; user-select:text; }\
			.wikibase-title-id a { color:inherit; }\
		' );
		
		// [[phab:T185437]]
		var itemId = mw.config.get( 'wgWikibaseItemId' );
		if ( !itemId ) {
			var $wdLink = $( '#t-wikibase a' );
			if ( $wdLink.length ) {
				itemId = $wdLink.attr( 'href' ).replace( /^.*\//, '' );
			}
		}
		
		var $wdInfo;
		if ( itemId ) {
			$wdInfo = $( '<a>' )
				.text( itemId )
				.attr( 'href', '//www.wikidata.org/wiki/Special:EntityPage/' + itemId );
		} else {
			var namespaces = [ 0, 4, 10, 12, 14, 100, 102, 104, 446, 828 ];
			if ( $.inArray( mw.config.get( 'wgNamespaceNumber' ), namespaces ) === -1 ) {
				return;
			}

			var page = encodeURIComponent( mw.config.get( 'wgPageName' ).replace( /_/g, ' ' ) );
			var url = '//www.wikidata.org/w/index.php?title=Special:NewItem'
				+ '&site=' + mw.config.get( 'wgDBname' )
				+ '&lang=' + mw.config.get( 'wgPageContentLanguage' )
				+ '&page=' + page
				+ '&label=' + page;
			$wdInfo = $( '<a>' )
				.text( i18n.createLabel )
				.attr( 'href', url );
		}
		
		$( '<small>' )
			.addClass( [ 'wikibase-title-id ', 'noprint' ] )
			.append( ' (' )
			.append( $wdInfo )
			.append( ')' )
			.appendTo( $( '#firstHeading' ) );
	} );
}( mediaWiki, jQuery ) );