MediaWiki:Common.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), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
/* Размещённый здесь JavaScript код будет загружаться всем пользователям при обращении к каждой странице */

/* Google Analytics 4 */
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-7GQKFDLJSL');
$('head').append($('<script/>').attr('async', 1).attr('src', 'https://www.googletagmanager.com/gtag/js?id=G-7GQKFDLJSL'));
/* /Google Analytics 4 */

$.ajax({ /* http://absurdopedia.net/wiki/MediaWiki:Gadget-friends.js */
  url: '//absurdopedia.net/w/load.php?debug=false&lang=ru&modules=ext.gadget.friends&skin=monobook',
  dataType: 'script',
  cache: true
});

/* Ссылка для модераторов */
$(function(){
  var groups = mw.config.get('wgUserGroups');
  if(groups.indexOf('sysop') != -1 || groups.indexOf('moderator') != -1) $('#n-recentchanges').append($('<li/>').attr('id', 'n-moderation').append($('<a/>').attr('href', '/wiki/Special:Moderation').append('Модерация')));
});

/*Добавляем кнопку викификатора*/
mw.hook( 'wikieditor.toolbar.wikificator' ).add(function(){
	// Переместить кнопку в начало.
	$('.group-format').prepend( $('a[title*="Викификатор"]') )
});
mw.loader.load('https://ru.wikipedia.org/w/index.php?title=MediaWiki:Gadget-wikificator.js&action=raw&ctype=text/javascript&oldid=114525856')

/* 12 May 2012 -- adapted for ResourceLoader & jQuery by Edward_Chernenko */
 
window.dynavbar  = {
 
  // set up the words in your language
  Hide: '[скрыть]',
  Show: '[показать]',
 
 
  // Максимальное число развёрнутых шаблонов
  // (если их будет больше, чем dynavbar.Max,
  // то они все будут свёрнуты автоматически)
  // Пример:
  // Max: 0, // сворачивать всегда
  // Max: 1, // сворачивать, если на странице более одного шаблона
 
  Max: 2,
 
  // shows and hides content and picture (if available) of navigation bars
  // Parameters:
  //     idx: the index of navigation bar to be toggled
  toggle: function(idx) {
     var NavToggle = $("#NavToggle" + idx)[0];
     var NavFrame = $("#NavFrame" + idx)[0];
 
     if(!NavFrame || !NavToggle)
       return false;
 
     if(NavToggle.firstChild.data == dynavbar.Hide)
     {
         $(NavFrame).children().filter('.NavContent, .NavPic').hide();
         NavToggle.firstChild.data = dynavbar.Show;
     }
     else if(NavToggle.firstChild.data == dynavbar.Show)
     {
         $(NavFrame).children().filter('.NavContent, .NavPic').show();
         NavToggle.firstChild.data = dynavbar.Hide;
     }
  },
 
  collapseTable: function( tableIndex )
  {
     var Button = $("#collapseButton" + tableIndex)[0];
     var Table = $("#collapsibleTable" + tableIndex)[0];
 
     if(!Table || !Button)
       return false;
 
     var Rows = $($(Table).find('tr').toArray().splice(1));
 
     if ( Button.firstChild.data == dynavbar.Hide ) {
         Rows.hide();
         Button.firstChild.data = dynavbar.Show;
     }
     else
     {
         Rows.show();
         Button.firstChild.data = dynavbar.Hide;
     }
  }
};
 
/* Добавить ссылки [показать]/[скрыть] */
$(function() {
     var indexNavigationBar = 0;
     // iterate over all < div >-elements 
     var divs = $("div.NavFrame");
     for(
             var i=0; 
             NavFrame = divs[i]; 
             i++
         ) {  
             indexNavigationBar++;
 
            /* Автоматическое сворачивание */
            var isCollapsed = $(NavFrame).hasClass("collapsed");
            if(isCollapsed)
                $(NavFrame).children().filter('.NavContent, .NavPic').hide();
 
            var NavToggle = $('<a/>')
                 .attr('class', 'NavToggle')
                 .attr('id', 'NavToggle' + indexNavigationBar)
                 .attr('href', 'javascript:dynavbar.toggle(' + indexNavigationBar + ')')
                 .append(isCollapsed ? dynavbar.Show : dynavbar.Hide);
 
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
             for(
               var j=0; 
               j < NavFrame.childNodes.length; 
               j++
             ) {
               if ($(NavFrame.childNodes[j]).hasClass("NavHead"))
                 NavFrame.childNodes[j].appendChild(NavToggle[0]);
             }
             NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
     }
 
     // if more Navigation Bars found than Default: hide all
     if (dynavbar.Max < indexNavigationBar) {
         for(
                 var i=1; 
                 i<=indexNavigationBar; 
                 i++
         ) dynavbar.toggle(i);
     }
});
 
$(function(){
     var tableIndex = 0;
     var NavigationBoxes = new Object();
     var Tables = $("table.collapsible");
 
     for ( var i = 0; i < Tables.length; i++ ) {
             NavigationBoxes[ tableIndex ] = Tables[i];
             Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
 
             var Button = $('<span/>')
                 .attr('style', 'float: right; font-weight: normal; text-align: right; width: 6em;')
                 .append($('<a/>')
                     .attr('id', 'collapseButton' + tableIndex)
                     .attr('href', 'javascript:dynavbar.collapseTable(' + tableIndex + ');')
                     .append(dynavbar.Hide)
                 )[0];
 
             var Header = $($(Tables[i]).find('tr')[0]).find('th')[0];
             /* only add button and increment count if there is a header row to work with */
             if (Header) {
                 Header.insertBefore( Button, Header.childNodes[0] );
                 tableIndex++;
             }
     }
 
     for(var i = 0;  i < tableIndex; i++ )
     {
         if ( $(NavigationBoxes[i]).hasClass("collapsed") || ( tableIndex >= dynavbar.Max && $(NavigationBoxes[i]).hasClass( "autocollapse" ) ) )
             dynavbar.collapseTable( i );
     }
});
 
/* </pre> */