Участник:AKA MBG/morelinks.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.
/* Source: http://ru.wikipedia.org/wiki/Википедия:Проект:Персональные_скрипты/Навигации */
if (wgNamespaceNumber >= 0) addOnloadHook(pagePortlet);
function pagePortlet(){
 var ul, list, obj, ii;
 //добавить новый портлет 'страница'
 beforePortlet = document.getElementById('p-participation');
 if (!beforePortlet) return;
 var pPage = document.createElement('div');
 pPage.innerHTML = '<h5>страница</h5><div class=pBody><ul></ul></div>';
 pPage.className = 'portlet';  pPage.id = 'p-page';
 beforePortlet.parentNode.insertBefore(pPage, beforePortlet);
 //переместить туда 'Ссылки сюда' и 'Связанные правки'
 moveLinkToPortlet('p-page', 't-whatlinkshere');
 moveLinkToPortlet('p-page', 't-recentchangeslinked');
 //вычислить переменные для тулсервера (например dbname=ruwiki_p) 
 var wikilang = wgServer.split('.')[0].substring(7);
 var wikifam = wgServer.split('.')[1];
 var dbname = (wikifam == 'wikipedia')? 'wiki' : wikifam;
 dbname = wikilang + dbname + '_p';
 //Ссылки:
 mw.util.addPortletLink('p-page', 
  '/wiki/Special:Prefixindex/' + wgPageName + '/', ' /подстраницы','',
  'Подстраницы этой страницы');
 mw.util.addPortletLink('p-page', 
 '/wiki/Special:Log?page='+wgPageName, 'журналы', 'ca-logs', 
 'Просмотр журналов для этой страницы');
 mw.util.addPortletLink('p-page', 
  '/wiki/'+wgPageName+'?action=purge', '(обновить)', 'ca-purge', 
  'Очистка кэша сервера для этой страницы');
 mw.util.addPortletLink('p-page',
  'http://tools.wikimedia.de/~interiot/cgi-bin/contribution_tree?dbname='+dbname
  +'&article='+wgPageName+'&user='+wgUserName, 'мои правки °', 'mycontrib', 
  'Мой вклад в эту страницу');
 mw.util.addPortletLink('p-page', 
  'http://tools.wikimedia.de/~daniel/WikiSense/Contributors.php?wikilang='
  +wikilang+'&wikifam=.'+wikifam+'.org&grouped=on&order=-edit_count&page='
  +encodeURIComponent(mw.config.get('wgPageName')), 'все авторы °','',
  'Все авторы страницы');
 // editcount ° — ссылка на editcounter участника под ссылкой «Вклад участника»
 if ( (wgNamespaceNumber == 2 || wgNamespaceNumber == 3) 
  && ( tContributions = document.getElementById('t-contributions')))
   mw.util.addPortletLink('p-tb',  
    'http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?dbname='
    +dbname+ '&user=' + wgTitle, 'editcount °', 'editcount', 
    'Interiot\'s user counter','', tContributions.nextSibling); 
}
//вспомогательная функция перемещает  ссылку linkId в portlet portletId
function moveLinkToPortlet(portletId, linkId, newText){
 var portlet, ul, link;
 if (!(portlet = document.getElementById(portletId))) return;
 if (!(ul = portlet.getElementsByTagName('ul')[0])) return;
 if (!(link = document.getElementById(linkId))) return;
 ul.appendChild(link);
 if (newText) link.firstChild.innerHTML = newText;
}