MediaWiki:Gadget-AlphabetNavigation.js
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
var processed = [];
function showBefore (word, category, h1) {
$.get("/w/api.php", {
action:'query',
list:'categorymembers',
format:'json',
cmtitle:'Категория:' + category,
cmprop:'ids|title',
cmnamespace:0,
cmtype:'page',
cmlimit:3,
cmsort:'sortkey',
cmdir:'desc',
cmstartsortkeyprefix:word + '<>'
}, function (data) {
title = data['query']['categorymembers'][1]['title'];
if(title == mw.config.get('wgTitle')) title = data['query']['categorymembers'][2]['title'];
if(data['query']['categorymembers'][0]) Handle('Before',title,h1);
else $("#navi" + h1.toString() + " .previous").html(mw.config.get('wgTitle'));
});
}
function showAfter (word, category, h1) {
$.get("/w/api.php", {
action:'query',
list:'categorymembers',
format:'json',
cmtitle:'Категория:' + category,
cmprop:'ids|title',
cmnamespace:0,
cmtype:'page',
cmlimit:3,
cmsort:'sortkey',
cmdir:'asc',
cmstartsortkeyprefix:word
}, function(data){
if(data['query']['categorymembers'][1]) {
if(data['query']['categorymembers'][1]['title'] != mw.config.get('wgTitle')) Handle('After',data['query']['categorymembers'][1]['title'],h1);
else Handle('After',data['query']['categorymembers'][2]['title'],h1);
}
});
}
function protoSlavic(word, category, h1) {
$.get("/w/api.php", {
action:'query',
list:'categorymembers',
format:'json',
cmtitle:'Категория:' + category,
cmprop:'ids|title',
cmnamespace:0,
cmtype:'page',
cmlimit:90,
cmstartsortkeyprefix:word
}, function(data){
t = [];
for ( var i in data['query']['categorymembers'] ) {
t.push(data['query']['categorymembers'][i]['title']);
}
Handle('Before', t[t.indexOf(mw.config.get('wgTitle')) - 1], h1);
Handle('After', t[t.indexOf(mw.config.get('wgTitle')) + 1], h1);
});
}
function set_pos () {
pos = $("#tabstable caption .mw-editsection.editlangsection").position();
$('[id*="navi"]').css(pos);
$('[id*="navi"]').css({right:'10%',left:''});
}
function Handle(p, w, h1){
if(p == "Before"){
if ( w !== undefined ) {
$("#navi" + h1.toString() + " .previous")[0].innerHTML = '<a href="//ru.wiktionary.org/wiki/'+w+'">'+w+'</a> ← '+mw.config.get('wgTitle');
} else {
$("#navi" + h1.toString() + " .previous")[0].innerHTML = mw.config.get('wgTitle');
}
}
if(p == "After" && w !== undefined ){
$("#navi" + h1.toString()+ " .next")[0].innerHTML = ' → <a href="//ru.wiktionary.org/wiki/'+w+'">'+w+'</a>';
}
if ( tl_using === true ) set_pos();
}
if ( mw.config.get( 'wgAction' ) === 'view' && mw.config.get( 'wgNamespaceNumber' ) === 0 )
lang_tabs = $("h1 .mw-headline");
tl_using = false;
if( lang_tabs.length < 1 ) {
lang_tabs = $(".selectedTab a,.unselectedTab a");
tl_using = true;
}
for(var i in lang_tabs){
h1 = i;
lang = lang_tabs[h1].innerHTML;
try {
language = (lang != 'Словио' ? (lang.match(/[уеаоиюыё]й$/g) ? lang + ' язык' : lang) : 'Словио (кириллица)');
} catch (e) { break; }
if(lang !== undefined && processed.indexOf(lang) == -1){
navi_table_st='<font id="navi'+h1+'" size="5" style="float: right;"><font class="previous"><img height="40" src="//upload.wikimedia.org/wikipedia/commons/b/b4/Loading_Animation.gif"></font><font class="next"></font></font>';
navi_table_al='<font id="navi'+h1+'" style="float: right; font-weight: normal; color:black;font-size: 12px; position: absolute; top: 19.70001px; right: 8.4%;" class="editlangsection"><font class="previous"></font><font class="next"></font></font>';
if (!tl_using) lang_tabs[h1].innerHTML += navi_table_st;
else {
try {
$('#' + lang + 'container h3')[0].innerHTML = navi_table_al + $('#' + lang + 'container h3')[0].innerHTML;
} catch (e) {}
}
if ( language != 'Праславянский язык') {
showBefore(mw.config.get('wgTitle'),language, h1);
showAfter(mw.config.get('wgTitle'),language, h1);
} else protoSlavic(mw.config.get('wgTitle'),language, h1);
processed.push(lang);
}
}
}