MediaWiki:Common.js: различия между версиями
Перейти к навигации
Перейти к поиску
Gevron (обсуждение | вклад) мНет описания правки |
Gevron (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */ | /* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */ | ||
/** | |||
* Instead of cluttering up the global scope with | |||
* variables, they should instead be set as a | |||
* property of this global variable | |||
* | |||
* E.g: Instead of | |||
* myVar = 'blah'; | |||
* use | |||
* mcw.myVar = 'blah'; | |||
*/ | |||
var mcw = window.mcw = {}; | |||
/* Keep track of delegated events on dynamic content */ | |||
mcw.events = {}; | |||
// Добавляет ссылку для редактирования нулевого раздела (введения; преамбулы) | // Добавляет ссылку для редактирования нулевого раздела (введения; преамбулы) |
Текущая версия от 20:40, 1 июля 2024
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */ /** * Instead of cluttering up the global scope with * variables, they should instead be set as a * property of this global variable * * E.g: Instead of * myVar = 'blah'; * use * mcw.myVar = 'blah'; */ var mcw = window.mcw = {}; /* Keep track of delegated events on dynamic content */ mcw.events = {}; // Добавляет ссылку для редактирования нулевого раздела (введения; преамбулы) var wgNamespaceNumber = mw.config.get( 'wgNamespaceNumber' ); var wgPageName = mw.config.get( 'wgPageName' ); if (wgNamespaceNumber > -1){ var edittopHTML = '<span class="mw-editsection">' + '<span class="mw-editsection-bracket" style="margin-right: 0.25em;color: #555555;">[</span>' + '<a href="/index.php?title=' + wgPageName + '&action=edit&section=0" title="Править «введение» этой страницы">править введение</a>' + '<span class="mw-editsection-bracket" style="margin-left: 0.25em;color: #555555;">]</span>' + '</span>'; $('#firstHeading').append(edittopHTML); } // Честно стащено с бывшей официальной Minecraft Wiki // Добавляет кнопку для очистки кэша if ( !$( '#ca-purge' ).length ) { $( '#p-cactions' ).find( 'ul' ).append( $( '<li>' ).attr( { 'id': 'ca-purge', 'class': 'mw-list-item' } ).append( $( '<a>' ).attr( { 'href': mw.util.getUrl( null, { action: 'purge' } ), 'title': 'Очистить серверный кэш страницы' } ).append( $( '<span>' ).text( 'Очистить кэш' ) ) ) ); } // Если кнопка «Ещё» у нас скрыта, отображаем её, но не на спецстраницах. if ($( '#p-cactions' ).hasClass( 'emptyPortlet' ) & !$( '#p-views' ).hasClass( 'emptyPortlet' )){ $( '#p-cactions' ).removeClass( 'emptyPortlet' ) } // Меняем обычную ссылку очистки кэша на API-запрос, чтобы избежать окна подтверждения mw.loader.using( 'mediawiki.api' ).then( function() { $( '#ca-purge a' ).on( 'click', function( e ) { new mw.Api().post( { action: 'purge', titles: mw.config.get( 'wgPageName' ) } ).then( function() { location.reload(); }, function() { mw.notify( 'Purge failed', { type: 'error' } ); } ); e.preventDefault(); } ); } ); // from Minecraft Wiki /* Добавляет кнопку «Вверх» слева */ function scrollTop(){ $(window).scroll(function(e) { if($(window).scrollTop()>0) { $("#scroll-top").fadeIn(300); } else{ $("#scroll-top").fadeOut(300); } }); }$(function(){ $("footer#footer").append($("<span></span>") .attr({ "id": "scroll-top", "title": "Наверх" }) ); $("#scroll-top").click(function(e) { $('body,html').animate({scrollTop:0},300); }); scrollTop(); }); /* Fired whenever wiki content is added. (#mw-content-text, live preview, load page, etc.) */ mw.hook( 'wikipage.content' ).add( function( $wikipageContent ) { // Только при редактировании, вне режима визуального редактора добавляем викификатор или панель редактирования в целом. if ( mw.config.get( 'wgAction' ) == 'edit' || mw.config.get( 'wgAction' ) == 'submit' ) { console.log('MediaWiki:Common.js — editFunction start'); if ( !mw.user.options.get( 'usebetatoolbar' ) || mw.user.options.get( 'usebetatoolbar' ) == '0' || mw.user.options.get( 'usebetatoolbar' ) == '' ) { mw.loader.load('https://wiki.ss220.space/index.php/MediaWiki:LegacyToolbar.js?action=raw&ctype=text/javascript'); console.log('MediaWiki:Common.js — legacyToolbar enabled'); } else { mw.loader.load( 'https://wiki.ss220.space/index.php/MediaWiki:Wikificator.js?action=raw&ctype=text/javascript' ); console.log('MediaWiki:Common.js — Wikificator enabled with betatoolbar'); }; console.log('MediaWiki:Common.js — after Wikificator call msg'); } /** * Element animator * * Will cycle the active class on any child elements * within an element with the animated class. */ ( function() { if ( !mcw.animate ) { mcw.animate = setInterval( function() { $( '.animated' ).each( function() { var $elem = $( this ); var $current = $elem.children( '.active' ); var $next = $current.nextAll( ':not(.skip):first' ); // Loop back to the start if ( !$next.length ) { $next = $elem.children( ':not(.skip):first' ); } $current.removeClass( 'active' ); $next.addClass( 'active' ); } ); }, 2000 ); } }() ); } ); /* End wiki content hook */