MediaWiki:MenuBar.js

From WikiLectures

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* <pre> */
 
/* ============== MENU - BAR, EDIT MENU ==========================
   author:      [[User:Slepi]]
   date:        09/2013, last update 2/2014
   description: scrept changes menu, creates top orange bar, search field, etc.
   sorry for the Czech comments
   ==========================================================
*/

var menuLista = {
 
  createEditMenu : function() {
 
    // získání seznamu jmenných prostorů ajaxem z api
    $.getJSON("/api.php?action=query&meta=siteinfo&siprop=namespaces&format=json", function(xmlJmenneProstory) {
 
      // hrátky s názvem současného jmenného prostoru a jeho diskusní stránky
      soucasnyProstor = parseInt(mw.config.get("wgNamespaceNumber"));
      if ((soucasnyProstor%2) == 0) {
        urlmap_mainNS = xmlJmenneProstory.query.namespaces[soucasnyProstor]["*"];
        urlmap_talkNS = xmlJmenneProstory.query.namespaces[soucasnyProstor+1]["*"] + ":";
      } else {
        urlmap_mainNS = xmlJmenneProstory.query.namespaces[soucasnyProstor-1]["*"];
        urlmap_talkNS = xmlJmenneProstory.query.namespaces[soucasnyProstor]["*"] + ":";
      }
 
      // základy url pro odkazy na editaci atd.
      urlmap_base = mw.config.get("wgServer") + mw.config.get("wgScript") + "/";
      urlmap_name = encodeURI(mw.config.get("wgTitle"));
 
      // dvojtečka za jmenným prostorem (hlavní jmenný prostor dvojtečku nemá)
      urlmap_mainNS += (mw.config.get("wgNamespaceNumber") == 0  ? "" : ":");
 
      // vytvoření odkazů
      urlmap_mainPage = urlmap_base + urlmap_mainNS + urlmap_name;
      urlmap_talkPage = urlmap_base + urlmap_talkNS + urlmap_name;
      urlmap_editPageVE = urlmap_base + mw.config.get("wgPageName") + "?veaction=edit";
      urlmap_editPage = urlmap_base + mw.config.get("wgPageName") + "?action=edit" + (((mw.config.get("wgNamespaceNumber") % 2) == 0) ? "" : "&section=new");
      urlmap_histPage = urlmap_base + mw.config.get("wgPageName") + "?action=history";
 
      // editační políčko vedle hlavního nadpisu s odkazy na editaci, historii, apod.
			if(mw.config.get("wgNamespaceNumber") != -1) {
        possibleVEpages = [0, 2, 3, 4, 5, 12, 13];
        if(possibleVEpages.indexOf(mw.config.get("wgNamespaceNumber")) > -1) {
 		   		$('#firstHeading').append('<img style="float: right;" id="map_edit" usemap="#map_edit" src="http://www.wikiskripta.eu/images/8/88/Editarticle.png" /><map id="map_edit" name="map_edit"><area shape="rect" coords="4,4,45,35" href="' + urlmap_mainPage + '" alt="Page" title="Page"    /><area shape="rect" coords="45,4,84,35" href="' + urlmap_talkPage + '" alt="Talk page" title="Talk page"    /><area shape="rect" coords="84,4,124,35" href="' + urlmap_editPageVE + '" alt="Edit" title="Edit"    /><area shape="rect" coords="124,4,161,35" href="' + urlmap_editPage + '" alt="Edit source code" title="Edit source code"    /><area shape="rect" coords="161,4,201,35" href="' + urlmap_histPage + '" alt="History" title="History"    /></map>');
			  } else {
          $('#firstHeading').append('<img style="float: right;" id="map_edit" usemap="#map_edit" src="http://www.wikiskripta.eu/images/8/8d/Editarticle2.png" /><map id="map_edit" name="map_edit"><area shape="rect" coords="4,5,47,33" href="' + urlmap_mainPage + '" alt="Page" title="Page"    /><area shape="rect" coords="45,5,85,33" href="' + urlmap_talkPage + '" alt="Talk page" title="Talk page"    /><area shape="rect" coords="84,5,124,33" href="' + urlmap_editPage + '" alt="Edit" title="Edit source code"    /><area shape="rect" coords="122,5,162,33" href="' + urlmap_histPage + '" alt="History" title="History"    /></map>');
        }
      } 
    })
  },
 
  // překladač Google (samotná funkce je zvlášť v MediaWiki:Common.js)
  createTranslator : function() {
    $("#p-personal").prepend('<a href="#" onclick="location.hash=\'googtrans(cs|en)\'; location.reload();"><img src="http://www.wikiskripta.eu/images/5/52/Translate.png" style="margin-left: 470px" id="imgtranslgoog" alt="Translate" /></a>');
  },
 
  // vytvoření nápisu "WikiSkripta" v záhlaví stránky
  createWikiSkripta : function() {
    if(mw.config.get("wgTitle") != mw.config.get("wgMainPageTitle")) {
       $("#p-personal").prepend('<a href="' + mw.config.get("wgServer") + '"><img src="http://www.wikilectures.eu/images/a/a2/Wlnadpis.png" style="margin-left: 13px;" alt="' + mw.config.get("wgSiteName") + '" /></a>');
      $("#imgtranslgoog").css("margin-left", "310px"); // posunutí CSS překladače oproti hlavní stránce
    }
  }, 
 
  // editace sekcí
  createEditSection : function() {
    $(":header").each( function() {
      $(this).children(".mw-headline").insertBefore($(this).find(".editsection"));
    });
  },

  // skrytí cactions a dalších zbytečností na stránce VisualEditoru
  hideCactions : function() {
    if((location.href.indexOf("veaction")) > -1) {
      $("#p-cactions .menu").hide();
      $("#map_edit").hide();
      $("#fb_likebutton").hide();
      $("#catlinks").hide();
    }
  },

  // osobní menu vyjíždějící na kliknutí
  createPersonalMenu : function() {
    if((mw.config.get("wgUserName") != null) && (document.cookie.indexOf("ws_persmenu=1") == -1)) {
      $("#p-personal ul").addClass("personalHidden").hide();
      $("#p-personal").append('<span id="p_username">&#171; '+ mw.config.get("wgUserName") + '</span>');
      $("#p_username").click(function(){$(".personalHidden").show("slow"); $("#p-personal span").hide("fast");});
    }
  },
 
  install : function () {
    menuLista.createEditMenu();
    menuLista.createTranslator();
    menuLista.createWikiSkripta();
    menuLista.createEditSection();
    $(menuLista.hideCactions);
    $(menuLista.createPersonalMenu);
  }
 
};
 
// spuštění všeho
menuLista.install();

/* </pre> */