MediaWiki:Common.js

A Wikidézetből, a szabad idézetgyűjteményből.

Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.

  • Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
  • Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
  • Internet Explorer / Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
  • Opera: Nyomj Ctrl–F5-öt
/* Az ide elhelyezett JavaScript kód minden felhasználó számára lefut az oldalak betöltésekor. */


/*
== Képjegyzet ==
*/

if (mw.config.get('wgNamespaceNumber') != -1
    && mw.config.get('wgAction') && (mw.config.get('wgAction') == 'view' || mw.config.get('wgAction') == 'purge') 
    && document.URL.search (/[?&]oldid=/) < 0
    && document.URL.search (/[?&]diff=/) < 0
    && mw.config.get('imageAnnotator.disabled', false) != true) {
  mw.loader.load('//commons.wikimedia.org/w/index.php?title=MediaWiki:Gadget-ImageAnnotator.js&action=raw&ctype=text/javascript');
}


/*
== Becsukható <div> ==
*/

// ============================================================
 // BEGIN Dynamic Navigation Bars (experimantal)
 
 // set up the words in your language
 var NavigationBarHide = '▲ becsuk';
 var NavigationBarShow = '▼ kinyit';
 
 // set up max count of Navigation Bars on page,
 // if there are more, all will be hidden
 // NavigationBarShowDefault = 0; // all bars will be hidden
 // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
 var NavigationBarShowDefault = 0;
 
 
 // shows and hides content and picture (if available) of navigation bars
 // Parameters:
 //     indexNavigationBar: the index of navigation bar to be toggled
 function toggleNavigationBar(indexNavigationBar) {
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
    if (!NavFrame || !NavToggle) {
        return false;
    }
 
    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;
 
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'block';
            }
        }
    NavToggle.firstChild.data = NavigationBarHide;
    }
 }
 
 // adds show/hide-button to navigation bars
 function createNavigationBarToggleButton() {
    var indexNavigationBar = 0;
    // iterate over all < div >-elements
    for(var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++) {
        // if found a navigation bar
        if (NavFrame.className == "NavFrame") {
 
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
            
            var NavToggleText = document.createTextNode(NavigationBarHide);
            NavToggle.appendChild(NavToggleText);
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
            var NavLength = NavFrame.childNodes.length;    //Menet közben valamiért bekerül a végére egy undefined gyerek
            for(var j=0; j < NavLength; j++) {
              if (NavFrame.childNodes[j].className == "NavHead") {
                NavFrame.childNodes[j].appendChild(NavToggle);
              }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
    // if more Navigation Bars found than Default: hide all
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(var i=1; i<=indexNavigationBar; i++) {
            toggleNavigationBar(i);
        }
    }
 
 }
 
 if (!fCreateNavigationBarToggleButton)
   $(createNavigationBarToggleButton);
 var fCreateNavigationBarToggleButton = 1;
 
 // END Dynamic Navigation Bars
 // ============================================================


/*
== Becsukható táblázat ==
 * Az angol változattól annyiban tér el, hogy 'sticky' class esetén
 * megjegyzi a tábla állapotát (lap-szinten, nem tábla-szinten).
 * A lapneveket egy sütibe gyűjti -> csak kevés oldalon használd!
 * TODO: collapseTable/createCollapseButtons átírása, hogy változót
 * használjanak az id-s gányolás helyett, és a megjegyzés lehessen id-alapú
*/

/** Collapsible tables *********************************************************
 *
 *  Description: Allows tables to be collapsed, showing only the header. See
 *               Wikipedia:NavFrame.
 *  Maintainers: User:R. Koot
 */

var autoCollapse = 2;
var collapseCaption = "▲ becsuk";
var expandCaption = "▼ kinyit";

function collapseTable( tableIndex, sticky ) {
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
    if ( !Table || !Button ) {
        return false;
    }
 
    if (sticky) {
        var closedTables = $.cookie('closedTables');
        if (closedTables == null) closedTables = '';
        var pageRE = new RegExp('\\b' + escapeRegexp(mw.config.get('wgPageName')) + '\\b');
    }
 
    var Rows = Table.getElementsByTagName( "tr" ); 
 
    if ( Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = 'none';
        }
        Button.firstChild.data = expandCaption;
        if (sticky && !closedTables.match(pageRE)) {
            $.cookie('closedTables', closedTables + ' ' + mw.config.get('wgPageName'), {expires: 7});
        }
    } else {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
        if (sticky && closedTables.match(pageRE)) {
            closedTables = closedTables.replace(pageRE, '').replace(/  /, ' ').replace(/(^ | $)/, '');
            $.cookie('closedTables', closedTables, {expires:7});
        }
    }
}
 
function createCollapseButtons() {
    var tableIndex = 0;
    var NavigationBoxes = new Object();
    var Tables = document.getElementsByTagName( "table" );
 
    for ( var i = 0; i < Tables.length; i++ ) {
        if ( $(Tables[i]).hasClass("collapsible" ) ) {
            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
 
            var Button     = document.createElement( "span" );
            var ButtonLink = document.createElement( "a" );
            var ButtonText = document.createTextNode( collapseCaption );
 
            Button.style.styleFloat = "right";
            Button.style.cssFloat = "right";
            Button.style.fontWeight = "normal";
            Button.style.textAlign = "right";
            Button.style.width = "6em";
 
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
            if ( $( Tables[i]).hasClass("sticky" ) ) {
                ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ", true);" );
            } else {
                ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ", false);" );
            }
            ButtonLink.appendChild( ButtonText );
 
            Button.appendChild( ButtonLink );
 
            var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "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++;
            }
        }
    }
 
    var closedTables = $.cookie('closedTables');
    var pageRE = new RegExp('\\b' + escapeRegexp(mw.config.get('wgPageName')) + '\\b');
    var isClosed = (closedTables && closedTables.match(pageRE));
 
    for ( var i = 0;  i < tableIndex; i++ ) {
        if ( $(NavigationBoxes[i]).hasClass("sticky" ) ) {
            if (isClosed) collapseTable( i );
        }
        else if ( $(NavigationBoxes[i]).hasClass("collapsed" ) || ( tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass("autocollapse" ) ) ) {
            collapseTable( i );
        }
    }
}

/*
== Legördülő menü és extra gombok az edittools-ba ==
*/

if (mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit' || mw.config.get('wgPageName') == 'Special:Upload') { //scripts specific to editing pages
mw.loader.using( 'mediawiki.toolbar', function() {

	var buttons = [
	{
		'id': "button-redirect",
		'imageFile': "//upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png",
		'speedTip': "Átirányítás",
		'tagOpen': "#ÁTIRÁNYÍTÁS [[",
		'tagClose': "]]",
		'sampleText': "Cél"
	},
	{
		'id': "button-strike",
		'imageFile': "//upload.wikimedia.org/wikipedia/en/c/c9/Button_strike.png",
		'speedTip': "Áthúzott szöveg",
		'tagOpen': "<s>",
		'tagClose': "</s>",
		'sampleText': "Áthúzott szöveg"
	},
	{
		'id': "button-small",
		'imageFile': "//upload.wikimedia.org/wikipedia/en/5/58/Button_small.png",
		'speedTip': "Apró betűs szöveg",
		'tagOpen': "<small>",
		'tagClose': "</small>",
		'sampleText': "Apró betűs szöveg"
	},
	{
		'id': "button-teletype",
		'imageFile': "//upload.wikimedia.org/wikipedia/commons/3/30/Tt_icon.png",
		'speedTip': "Írógép-szöveg",
		'tagOpen': "<tt>",
		'tagClose': "</tt>",
		'sampleText': "Fix szélességű szöveg"
	},
	{
		'id': "button-insert-reflink",
		'imageFile': "//upload.wikimedia.org/wikipedia/commons/7/79/Button_reflink.png",
		'speedTip': "Forráshivatkozás",
		'tagOpen': "<ref>",
		'tagClose': "</ref>",
		'sampleText': "Hivatkozás szövegének helye"
	},
	{
		'id': "button-insert-reflist",
		'imageFile': "//upload.wikimedia.org/wikipedia/commons/f/fe/Button_refs.png",
		'speedTip': "Forráshivatkozás lábrész",
		'tagOpen': "{" + "{Jegyzetek}}",
		'tagClose': "",
		'sampleText': ""
	},
	{
		'id': "button-insert-templatelink",
		'imageFile': "//upload.wikimedia.org/wikipedia/commons/e/eb/Button_plantilla.png",
		'speedTip': "Sablon",
		'tagOpen': "{{",
		'tagClose': "}}",
		'sampleText': "Példa sablon"
	}
	];
	
	for ( var i = 0, len = buttons.length; i < len; i++ ) {
		mw.toolbar.addButton(
			buttons[i].imageFile,
			buttons[i].speedTip,
			buttons[i].tagOpen,
			buttons[i].tagClose,
			buttons[i].sampleText,
			buttons[i].id,
			buttons[i].id
		);
	}

});
}

/*
== Extra gombok WikiEditorhoz (fejlett eszköztár) ==
*/

// WikiEditor toolbar customization
$(function() {
  if ( typeof $.wikiEditor != "undefined" ) {
    $( '#wpTextbox1' ).on( 'wikiEditor-toolbar-buildSection-main', function( event, section ) {
      if (mw.config.get('wgUserLanguage')=='hu') {
        // change bold/italic icon
        var tools = section.groups.format.tools;
        if ( !( 'hu' in tools.bold.icon ) ) {
          tools.bold.icon['hu'] = 'format-bold-F.png'; // no need for full URL because this one exists in default Vector icon set
        }
        if ( !( 'hu' in tools.italic.icon ) ) {
          tools.italic.icon['hu'] = '//upload.wikimedia.org/wikipedia/commons/6/6a/Toolbaricon_italic_D.png';
        }
      }
      // change signature to en dash
      if (section.groups.insert.tools.signature) {
        section.groups.insert.tools.signature.action.options.pre = '–\u00a0~~' + '~~';
      }
    });
 
    // special characters
    $( '#wpTextbox1' ).on( 'wikiEditor-toolbar-buildSection-characters', function( event, section ) {
      var paren = function(left, right) {
        return { label: left + right, action: { type: 'encapsulate', options: { pre: left, post: right } } }; 
      };
      var pages = {
        basic: {
          layout: 'characters',
          label: 'Alap',
          characters: [ 'á', 'é', 'í', 'ó', 'ö', 'ő', 'ú', 'ü', 'ű', 'Á', 'É', 'Í', 'Ó', 'Ö', 'Ő', 'Ú', 'Ü', 'Ű',
            '~', '|', '#', paren('„', '”'), paren('»', '«'), paren('’', '’'), '’', '–', '…', paren('<', '>'), '°', '‰', 
            '×', '→', '∅', 'µ', '²', '³', '½', '⅓', '⅔', '¼', '¾', '€', '§', '†', '‡', '©', '®', '•', '·', '&nbsp;', '‑' ]
        }
      };
      for (var i in section.pages) {
        pages[i] = section.pages[i];
      }
      section.pages = pages;
    });
  }
});