Ugrás a tartalomhoz

MediaWiki:Gadget-userpage-customization.js

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Tacsipacsi (vitalap | szerkesztései) 2016. október 21., 23:47-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (Common.js szerkesztői lapot testreszabó részei)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

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
  • Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
/**********************************************************
*     Szerkesztői lapokhoz kapcsolódó függvények          *
**********************************************************/

/*
 * Visszaadja, hogy a jelenlegi lap névtere a tiltott névterek közé tartozik-e
*/
 
function isDeniedNamespace() {
  var namespaceNumber = mw.config.get('wgNamespaceNumber');
  // nem akarjuk, hogy ahol nem kell, ott címet lehessen cserélni vagy ikont lehessen pakolni
  if (namespaceNumber == 0 || namespaceNumber == 1 || // fő névtér és vitája
      namespaceNumber == 6 || namespaceNumber == 7 || // kép és vitája
      namespaceNumber == 10 || namespaceNumber == 11 || // sablon és vitája
      namespaceNumber == 14 || namespaceNumber == 15 || // kategória és vitája
      namespaceNumber == 101 // portálvita
     )
  {
    return true;
  } else {
    return false;
  }
}
 
/* 
 * Ikonok elrendezése a cím mellé, ablakátméretezés esetén újrapozícionálás
 * az engedélyezett névterekbe tartozó lapokon (lásd az isDeniedNamespace függvényt)
*/
$(document).ready(function() {
  if (isDeniedNamespace()) 
     return;
  var sarokIcons = [];
 
  /* ikonok repozícionálása */
  function reposIcons() {
    if (sarokIcons.length == 0) return;
    var offset = $('#firstHeading').offset();
    var top = offset.top;
    var maxheight = $('#firstHeading').height();
    var right = offset.left + $('#firstHeading').width();
    for (var i = sarokIcons.length -1; i > -1; i--) {
       var thisTop = (sarokIcons[i].height > maxheight ?
                   top - (sarokIcons[i].height - maxheight) / 2 :
                   top + maxheight/2 - sarokIcons[i].height / 2);
       $('#sarokikon' + i)
         .css('top', (thisTop < 0 ? 0 : thisTop))           
         .css('left', right - sarokIcons[i].width);
       right = right - sarokIcons[i].width - 5;
    }
  };
 
  var sarokIconSpans = $('.sarokikon');
  if (sarokIconSpans.length == 0) return;
  sarokIconSpans.each(function() {
    // ugye a div fogja magát és kitolja 100%-ra a width-ét, így nem tudjuk mérni
    // a spannál meg a szöveg height-ű lesz egy képet tartalmazó span-is, még ha nagyobb is
    // ezért először inline lemérjük a div width-ét
    // majd elvesszük az inline css-osztályt, és lemérjük a height-et
    var xwidth = $(this).width();
    $(this).removeClass('sarokikon');
    var xheight = $(this).height();
    sarokIcons.push({
      html: $(this).html(),
      height: xheight,
      width: xwidth
    });
    $(this).remove();
  });
  if (sarokIcons.length > 0) {
    var offset = $('#firstHeading').offset();
    var right = offset.left + $('#firstHeading').width();
    for (var i = sarokIcons.length -1; i > -1; i--) {
      var iconDiv = $('<div></div>')
        .addClass('sarokikon_fenn')
        .attr('id', 'sarokikon' + i)
        .html(sarokIcons[i].html)
        .css({
           position: 'absolute',
           width: sarokIcons[i].width,
           height: sarokIcons[i].height,
           zIndex: 99
       });
       switch (mw.config.get('skin')) {
           case "monobook":
              iconDiv.appendTo('#globalWrapper');
              break;
           case "vector":
              iconDiv.css('font-size', '0.8em');
              iconDiv.appendTo('body');
              break;
           default:
              iconDiv.appendTo('body');
              break;
       }
       right = right - sarokIcons[i].width - 5;
    }
    reposIcons();
 
    var resizeTimer = null;
    $(window).bind('resize', function() {
        if (resizeTimer) clearTimeout(resizeTimer);
        resizeTimer = setTimeout(reposIcons, 100);
    });    
  }
});
 
/* 
 * Cím és alcím cseréje az engedélyezett névterekbe
 * tartozó lapokon (lásd az isDeniedNamespace függvényt)
*/
$(document).ready(function() {
  if (mw.config.get('wgAction') != "view" || isDeniedNamespace()) 
     return;
  if ($('#sajatcim').length > 0) {
    if ($('#sajatcim').hasClass('nincsszerk') == false &&
          $('#firstHeading > .mw-editsection').length > 0) {
       var movededit =
          $('<div>').append(
             $("#firstHeading > .mw-editsection")
             .eq(0).clone()
          ).html();
      $('#firstHeading').html($('#sajatcim').html() + ' ' + movededit);
    } else {
      $('#firstHeading').html($('#sajatcim').html());
    }
    /* a $('title') nem megy IE8 (meg gondolom a korábbiak) alatt */
    document.title = $('#sajatcim').html().replace(/<\/?[^>]+>/gi, '') + ' - Wikipédia';
    $('#sajatcim').remove();
  }
  // alcímet csak a júzernévtérben cserélgessünk
  if (!(mw.config.get('wgNamespaceNumber') == 2 || mw.config.get('wgNamespaceNumber') == 3)) return;
  if ($('#sajatalcim').length > 0 && $('#siteSub').length > 0) {
    $('#siteSub').html($('#sajatalcim').html());
    $('#sajatalcim').remove();
  }
});
 
 
/*
 * Virtuális kategóriák összegyűjtése és megjelenítése az igazi kategóriák mögött a szerkesztői lapokon
 * TODO: kategória hozzáadása, ha nincs kat.
*/
$(document).ready(function() {
  if (mw.config.get('wgAction') == "view" && mw.config.get('wgNamespaceNumber') == 2 && $('#mw-normal-catlinks').length > 0 && $('.kategoria').length > 0) {
    var catlinksA = $('<div>').append(
                      $('#mw-normal-catlinks > a')
                      .eq(0).clone()
                    ).html();
    var oldCats = [];
    $('#mw-normal-catlinks > span').each(function() {
      oldCats.push(     
        $('<div>').append(
          $(this)
          .eq(0).clone()
        ).html()
 
      );
    });
    var catOutput = catlinksA + ': ';
    for (var i = 0;i<oldCats.length;i++) {
       catOutput = catOutput + oldCats[i];
       if (i < oldCats.length -1)
          catOutput = catOutput + ' | ';
    }
    $('.kategoria').each(function() {
        catOutput = catOutput + ' | ' + 
            $('<div>').append(
               $('<a>').attr('href', '#globalWrapper').html($(this).html())
            ).html();
        $(this).remove();
    });
    $('#mw-normal-catlinks').html(catOutput);
  }
});
 
var disableUserFonts = false;
var disableUserBackgrounds = false;

/*
 * Betűtípus lecserélése szerkesztői lapokon
*/

$(document).ready(function() {
  if (mw.config.get('wgAction') == "view" && !disableUserFonts && (mw.config.get('wgNamespaceNumber') == 2 || mw.config.get('wgNamespaceNumber') == 3) && $('#betutipus').length > 0) { 
    var userFont = $('#betutipus').html();
    $('#firstHeading').css('font-family', userFont);
    $('#bodyContent').css('font-family', userFont);
    $('#betutipus').remove();
  }
});

/*
 * Háttérszín lecserélése szerkesztői lapokon
*/

$(document).ready(function() {
  if (mw.config.get('wgAction') == "view" && !disableUserBackgrounds && (mw.config.get('wgNamespaceNumber') == 2 || mw.config.get('wgNamespaceNumber') == 3) && $('#hatterszin').length > 0) { 
    $('#content').css('background-color', $('#hatterszin').html());
    $('#hatterszin').remove();
  }
});