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: Выберите очистку кеша в меню Инструменты → Настройки
//jQuery, import scripts //mw.loader.load('http://code.jquery.com/jquery-1.7.2.min.js'); if(wgAction == 'edit' || wgAction == 'submit') { importScript('MediaWiki:Editpage.js'); } if(wgAction == 'view' || wgAction == 'submit') { importScript('MediaWiki:Collapsebuttons.js'); } function sysopProtectPage(){ var inp = document.getElementById('mwProtect-level-edit') if (inp) addHandler(inp, 'change', noMoveAutoconfirmedProtection) function noMoveAutoconfirmedProtection(){ var inp = document.getElementById('mwProtectUnchained') if (!inp || inp.checked) return inp = document.getElementById('mwProtect-level-move') if (inp && inp.selectedIndex==1) inp.selectedIndex = 0 inp = document.getElementById('mwProtect-level-delete') if (inp && inp.selectedIndex==1) inp.selectedIndex = 0 } } $(sysopProtectPage); function newSectionLink(){ var plus = document.getElementById('ca-addsection') if (!plus) return var custom = document.getElementById('add-custom-section') if (!custom) return plus.firstChild.setAttribute('href', custom.getElementsByTagName('a')[0].href) } $.getScript('http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-56974f7a629a6df1'); $(function(){ if( (null && typeof EnablePlusOne == 'undefined') || (wgNamespaceNumber != 0 && wgNamespaceNumber != 6 && wgNamespaceNumber != 100) || (wgAction != 'view') || (/(oldid|diff)=/.test(window.location)) ) return; $('#firstHeading').prepend( '<div id="socialButtons" class="noprint"><div align="right" style="float:right; position: relative;' + 'margin: 10px 0 0 0; z-index: 110; width: 230px"><div id="socialWrapper" align="right" style="width: 230px"' + 'style="float:right"></g:plusone><div class="addthis_toolbox addthis_default_style "><a class="addthis_button_preferred_1"></a>' + '<a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a>' + '<a class="addthis_button_compact"></a><a class="addthis_counter addthis_bubble_style"></a>' + '<div class="g-plusone" data-size="small"></div></div></div></div>' ); (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); }); /* Авторы: разработчики Викиреальности с некоторой помощью Mithgol the Webmaster */ $(function() { $('.jnav').each(function(i,e) { $(this).data('i', i+1).click(function() { var $this = $(this), $jnavb = $('#jnavb-' + $this.data('i')); if( $this.hasClass('jnav-inactive') ) { $('.jnav-active').removeClass('jnav-active').addClass('jnav-inactive'); $('.jnavb').slideUp(250); $this.removeClass('jnav-inactive').addClass('jnav-active'); $jnavb.slideDown(300); } else { $this.removeClass('jnav-active').addClass('jnav-inactive'); $jnavb.slideUp(300); } return false; }); }); if($('.jnavpm').width() > 0) { $('.jnavpm').each(function(i,e) { $(this).data('i', i+1).click(function() { var $this = $(this), $jnavb = $('#jnavb-' + $this.data('i')); if( $this.hasClass('jnavpm-inactive') ) { $('.jnavpm-active').removeClass('jnavpm-active').addClass('jnavpm-inactive'); $('.jnavb').slideUp(250); $this.removeClass('jnavpm-inactive').addClass('jnavpm-active'); $jnavb.slideDown(300); } else { $this.removeClass('jnavpm-active').addClass('jnavpm-inactive'); $jnavb.slideUp(300); } return false; }); }); } }); /* Автор Tachikoma, доработано руководством Викиреальности */ $(function() { if(wgUserName != null && typeof jsForceNewRefs == 'undefined') return; if(!($('ol.references').size())) return; $('ol.references').before($('<a href="#">[показать примечания]</a>').click( function(e){e.preventDefault(); $('ol.references').toggle()})).hide(); $('.reference a').live('click', function(e) { e.preventDefault(); var x = $(this), iscurrent = x.hasClass('curreference'), i = $('.fref').hide(250); $('.curreference').removeClass('curreference'); if (iscurrent) return; var par = x.parent(), o = par.offset(), l = o.left, t = o.top+13; var b = $('body'), mh = b.height(), mw = b.width(); var c=$(x.attr('href')).clone().find('a:first').remove().end().html(); x.addClass('areference').addClass('curreference'); if (!i.size()) i = $('<div/>').addClass('fref'); c=c.replace(/↑/,'').replace(/<sup>.*<\/sup> /g,'').replace(/^ /,''); i.appendTo(b).queue(function() { i.empty().append(c).css({ 'left': l-((l+i.width() >= mw) && i.width()), 'top': t-((t+i.height() >= mh) && (i.height()+24)) }).dequeue() }).show(350); }); $(window).click(function(e) { if (!($(e.target).hasClass('areference') || $(e.target).parents().andSelf().hasClass('tooltip'))) { $('.tooltip').hide(350); $('.curreference').removeClass('curreference') } }); }); /* ref_standard -- 26 June 2010. Автор: [[Участник:SuspectedSockPuppet]]. Устанавливает положение сноски всегда ПОСЛЕ знаков препинания (точка, запятая, точка с запятой). */ function ref_standard() { var refs = document.getElementsByClassName('reference'); var cur, prev, next, res; for(i=0;i<refs.length;i++) { cur = refs[i]; if( !( prev = cur.previousSibling ) || !( next = cur.nextSibling ) ) break; if(res = next.textContent.match(/^[.,;]/)) { next.textContent = next.textContent.substr(1); cur.parentNode.insertBefore(document.createTextNode(res), cur); } } } $(ref_standard); /* + ссылка «править» для нулевой секции. */ $(function(){ if( (wgNamespaceNumber != 0 && wgNamespaceNumber != 6 && wgNamespaceNumber != 100) || wgAction != 'view' || /(oldid|diff)=/.test(window.location) ) return; $('#firstHeading').append('<span class="editsection">[<a title="Править секцию: 0" href="/w/index.php?title=' + encodeURIComponent(wgPageName) + '&action=edit§ion=0">править преамбулу</a>]</span>'); $('#firstHeading .editsection').show().css('text-shadow', 'none'); }); (function() { $('#top').after('<div id="yandex_rtb_R-A-91320-1" class="firstHeading" align="center"></div>'); })(); (function(w, d, n, s, t) { if(wgUserName != null) return; w[n] = w[n] || []; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "R-A-91320-1", renderTo: "yandex_rtb_R-A-91320-1", async: true }); }); t = d.documentElement.firstChild; s = d.createElement("script"); s.type = "text/javascript"; s.src = "https://yandex.ru/ads/system/context.js"; s.setAttribute("async", "true"); t.insertBefore(s, t.firstChild); })(window, document, "yandex_context_callbacks"); (function() { $('#p-search').after('<div id="yandex_ad" class="portlet"></div>'); })(); (function(w, d, n, s, t) { if(wgUserName != null) return; w[n] = w[n] || []; w[n].push(function() { Ya.Direct.insertInto(91320, "yandex_ad", { site_charset: "utf-8", ad_format: "direct", font_size: 1.0, type: "vertical", limit: 3, title_font_size: 2, site_bg_color: "FFFFFF", header_bg_color: "6699CC", title_color: "006699", url_color: "006699", text_color: "000000", hover_color: "6699CC", favicon: true }); }); t = d.documentElement.firstChild; s = d.createElement("script"); s.type = "text/javascript"; s.src = "https://yandex.ru/ads/system/context.js"; s.setAttribute("async", "true"); t.insertBefore(s, t.firstChild); })(window, document, "yandex_context_callbacks"); (function() { $('#mw-content-text').after('<div id="yandex_rtb_R-A-91320-2" class="mw-content-ltr" align="center"></div>'); })(); (function(w, d, n, s, t) { if(wgUserName != null) return; w[n] = w[n] || []; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "R-A-91320-2", renderTo: "yandex_rtb_R-A-91320-2", async: true }); }); t = d.documentElement.firstChild; s = d.createElement("script"); s.type = "text/javascript"; s.src = "https://yandex.ru/ads/system/context.js"; s.setAttribute("async", "true"); t.insertBefore(s, t.firstChild); })(window, document, "yandex_context_callbacks"); // Размеры версий в истории правок function returnOfTheDiffSizes(){ var classes = [ '.mw-plusminus-pos', '.mw-plusminus-neg', '.mw-plusminus-null' ] for(i=0;i<=2;i++) { $(classes[i]).each( function(i, elem) { var title = elem.title.replace(/Размер после изменения: ([0-9 ]+ байта?)/, "$1") $('<span />').text(' . . ('+title+')').insertAfter($(elem)) } ) } } if (wgAction == 'history') { returnOfTheDiffSizes() } /** * @author Falchenko Maxim aka be3 * @plugin_page http://tops.net.ua/jquery_addtocopy/ * @desc Adds a link to the copied text * @version 1.2 * @example * $("#content").addtocopy(); * @license free **/ jQuery.fn.addtocopy = function(usercopytxt) { var options = {htmlcopytxt: '<br>More: <a href="'+window.location.href+'">'+window.location.href+'</a><br>', minlen: 25, addcopyfirst: false} $.extend(options, usercopytxt); var copy_sp = document.createElement('span'); copy_sp.id = 'ctrlcopy'; copy_sp.innerHTML = options.htmlcopytxt; return this.each(function(){ $(this).mousedown(function(){$('#ctrlcopy').remove();}); $(this).mouseup(function(){ if(window.getSelection){ //good times var slcted=window.getSelection(); var seltxt=slcted.toString(); if(!seltxt||seltxt.length<options.minlen) return; var nslct = slcted.getRangeAt(0); seltxt = nslct.cloneRange(); seltxt.collapse(options.addcopyfirst); seltxt.insertNode(copy_sp); if (!options.addcopyfirst) nslct.setEndAfter(copy_sp); slcted.removeAllRanges(); slcted.addRange(nslct); } else if(document.selection){ //bad times var slcted = document.selection; var nslct=slcted.createRange(); var seltxt=nslct.text; if (!seltxt||seltxt.length<options.minlen) return; seltxt=nslct.duplicate(); seltxt.collapse(options.addcopyfirst); seltxt.pasteHTML(copy_sp.outerHTML); if (!options.addcopyfirst) {nslct.setEndPoint("EndToEnd",seltxt); nslct.select();} } }); }); } if (wgUserName == null) { $(document).addtocopy({htmlcopytxt: '<br>Подробнее: <a href="'+window.location.href+'">'+window.location.href+'</a>'}); } $(function() { $('.dynnav-button').each(function(i,e) { $(this).data('i', i+1).click(function() { var $this = $(this), $template = $('#dynnav-template-' + $this.data('i')); if( $this.hasClass('dynnav-button-inactive') ) { $('.dynnav-button-active').removeClass('dynnav-button-active').addClass('dynnav-button-inactive'); $('.dynnav-template').slideUp(250); $this.removeClass('dynnav-button-inactive').addClass('dynnav-button-active'); $template.slideDown(300); } else { $this.removeClass('dynnav-button-active').addClass('dynnav-button-inactive'); $template.slideUp(300); } return false; }); }); });