مدیاویکی:Gadget-InterwikiOrder.js

از مشروطه
پرش به ناوبری پرش به جستجو

نکته: پس از ذخیره کردن ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: بروید به Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
// turn of other adaptations
mediaWiki.config.set('wgLanglinks', 'no-sort no-reorder');


var interwikiOrder = new Array();
 
function containsInterwiki(kids, interWikiID) {
 for (var i = 0; i < kids.length; i++) {
  if ( kids[i].className.indexOf('interwiki-' + interWikiID) != -1 )
   return i;
 }
 return -1;
}
 
function fixInterwikiOrder() {
 var kids = document.getElementById('p-lang').getElementsByTagName('LI');
 // the Norwegian string says "end"
 var removeAllOthers = (interwikiOrder[interwikiOrder.length - 1] == 'slutt') ? 2 : 1;
 for (var i = interwikiOrder.length - removeAllOthers; i > -1; i--) {
  var interWikiIndex = containsInterwiki(kids, interwikiOrder[i]);
  if (interWikiIndex != -1) {
   var father = document.getElementById('p-lang').getElementsByTagName('UL')[0];
   father.insertBefore(kids[interWikiIndex], father.firstChild);
  }
 }
 if (removeAllOthers == 2)
  while (kids.length != interwikiOrder.length - 1)
   father.removeChild(father.lastChild);
}
 
function initInterwikiOrder() {
 if (!document.getElementById('p-lang')) return;
 var a = sajax_init_object();
 // the Norwegian strings are "User:" (namespace) and "iw" (sub-page name)
 a.open('GET', wgServer + wgScriptPath + '/index.php?title=User:' + encodeURIComponent(wgUserName) + '/iw&action=raw', true);
 a.onreadystatechange = function() {
  if (a.readyState != 4) return;
  var lines = a.responseText.split('\n');
  var rx = new RegExp('\\*\\s?([^$]*)');
  for (var i = 0; i < lines.length; i++) {
   var m = rx.exec(lines[i]);
   if (m)
    interwikiOrder.push(m[1]);
   else
    break;
  }
  if (interwikiOrder[0]) fixInterwikiOrder();
 }
 a.send(null);
}
 
addOnloadHook(initInterwikiOrder);