MediaWiki:Gadget-sidebarRelated.js
Перейти к навигации
Перейти к поиску
Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
- Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
- Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
// Переместить ссылку на элемент Викиданных в секцию «В других проектах»
function addOtherProjects() {
var $pLang = $( '#p-lang' );
if ( !$pLang.length ||
mw.config.get( 'wgAction' ) !== 'view' ||
mw.config.get( 'wgNamespaceNumber' ) % 2 ||
mw.config.get( 'wgWikibaseItemId' ) === null
) {
return;
}
function initMove( $el, $list ) {
// ToDo: Временно вернуть ссылку на элемент в Викиданных в монобуке, см. [[PHAB:T254485]]
var $tWikibase = $( '#t-wikibase' );
if ( $tWikibase.length === 0 && mw.config.get( 'wgWikibaseItemId' ) ) {
mw.util.addPortletLink(
'p-tb',
'https://www.wikidata.org/wiki/' + mw.config.get( 'wgWikibaseItemId' ),
'Элемент Викиданных',
't-wikibase',
'Ссылка на связанный элемент репозитория данных [g]',
'g'
);
}
var $pOtherLink = $( '#t-wikibase' ).clone()
.addClass( 'wb-otherproject-link wb-otherproject-wikidata' )
.css( 'display', 'list-item' )
.removeAttr( 'id' )
.appendTo( $list );
$( '#t-wikibase' ).remove();
$pOtherLink.attr( 'id', 't-wikibase' );
if ( $list.children().length ) {
$el.insertBefore( $pLang );
}
}
function moveWikidataElementLink() {
// Найти блок «Печать/экспорт»
// (id различается в зависимости от пространства имён)
var $pPrintExport = $( '#p-coll-print_export,#p-electronpdfservice-sidebar-portlet-heading' );
if ( $pPrintExport.length === 0 ) {
return;
}
// Клонировать «Печать/экспорт»
$pOther = $pPrintExport
.clone()
.removeClass( 'emptyPortlet' )
.attr( 'id', 'p-wikibase-otherprojects' );
var $pOtherLabel = $pOther.find( 'h3' );
$pOtherList = $pOther.find( 'ul' ).empty();
$pOtherLabel.text( mw.msg( 'wikibase-otherprojects' ) );
if ( cfSkin === 'vector' ) {
$pOther.attr( 'aria-labelledby', 'p-wikibase-otherprojects-label' );
$pOtherLabel.attr( 'id', 'p-wikibase-otherprojects-label' );
}
initMove( $pOther, $pOtherList );
}
var $pOther = $( '#p-wikibase-otherprojects' );
var $pOtherList = $pOther.find( 'ul' );
var cfSkin = mw.config.get( 'skin' );
if ( $pOther.length > 0 ) {
$pOther.removeClass( 'emptyPortlet' );
initMove( $pOther, $pOtherList );
} else {
// Секции не существует, создать новую
if ( mw.config.get( 'wgUserLanguage' ) === 'ru' ) {
mw.messages.set( 'wikibase-otherprojects', 'В других проектах' );
moveWikidataElementLink();
} else {
$.when( mw.loader.using( [ 'mediawiki.api' ] ) )
.then( function () {
// Загрузить системные сообщения
return new mw.Api().loadMessagesIfMissing( [
'wikibase-otherprojects'
] );
} )
.then( moveWikidataElementLink );
}
}
}
// In case other projects copypaste the code and forget to implement
// runAsEarlyAsPossible() in MediaWiki:Common.js, which is too easy a mistake to
// make to not account for.
if ( typeof runAsEarlyAsPossible === 'undefined' ) {
$( addOtherProjects );
} else {
runAsEarlyAsPossible( addOtherProjects );
}