MediaWiki:Gadget-nearbypages.js

Bonjour, vous êtes venu ici pour chercher la signification du mot MediaWiki:Gadget-nearbypages.js. Dans DICTIOUS, vous trouverez non seulement toutes les significations du dictionnaire pour le mot MediaWiki:Gadget-nearbypages.js, mais vous apprendrez également son étymologie, ses caractéristiques et comment dire MediaWiki:Gadget-nearbypages.js au singulier et au pluriel. Tout ce que vous devez savoir sur le mot MediaWiki:Gadget-nearbypages.js est ici. La définition du mot MediaWiki:Gadget-nearbypages.js vous aidera à être plus précis et correct lorsque vous parlerez ou écrirez vos textes. Connaître la définition deMediaWiki:Gadget-nearbypages.js, ainsi que celles d'autres mots, enrichit votre vocabulaire et vous fournit des ressources linguistiques plus nombreuses et de meilleure qualité.
// ]
function WiktNearby() {
  this.alwaysLeftToRight = mw.cookie.get('WiktNearbyAlwaysLTR') == "true";
  this.counter = 0;
  this.pending = 0;

  // helper functions
  function mwEncodeURIComponent(term) {
    return encodeURIComponent(term).replace(/%2F/g, "/");
  }

  this.makeHeadingLink = function (term, langname, tagName) {
    var ele = document.createElement(tagName);
    if (tagName == "a") {
      var href = "https://dictious.com/fr/";
      if (mw.config.get( 'wgNamespaceNumber' ) != 0)
        href += mw.config.get( 'wgCanonicalNamespace' ) + ":";
      href += mwEncodeURIComponent(term);
      if (/^/.test(langname))
        href += "#" + langname; 
      ele.href = href;
    }
    if (this.alwaysLeftToRight)
      term = "\u200e" + term;
    ele.appendChild(document.createTextNode(term));
    return ele;
  }

  this.doHeadings = function(nearby) {
    var arrows = ;

    // point to toward a and z or always point toward z?
    var larr = Math.floor(Math.random()*2);

    var bc = document.getElementById("bodyContent");
    var h2s = bc.getElementsByTagName("h2");

    outer: for (var i = 0; i < h2s.length; ++i) {
      var spans = h2s.getElementsByTagName("span");
      inner: for (var j = 0; j < spans.length; ++j) {
        if (spans.className == "mw-headline") {
          langname = spans.textContent || spans.innerText;
          if (nearby.langname == langname) {
            // add in reverse order since we use insertBefore
            var div = document.createElement("div");
            div.className = "nearby-pages";
            div.title = "Alphabetical order";
            var bold = document.createElement("b");
            bold.appendChild(document.createTextNode("Pages proches : "));
            div.appendChild(bold);
            if ("prev" in nearby) {
              for (k = 0; k < nearby.prev.length; ++k) {
                div.appendChild(this.makeHeadingLink(nearby.prev, nearby.langname, "a"));
                div.appendChild(document.createTextNode("\xa0" + arrows + " "));
              }
            }
            div.appendChild(document.createTextNode(" "));
            div.appendChild(this.makeHeadingLink(mw.config.get( 'wgTitle' ), nearby.langname, "b"));
            div.appendChild(document.createTextNode(" "));
            if ("next" in nearby) {
              for (k = 0; k < nearby.next.length; ++k) {
                div.appendChild(document.createTextNode(" " + arrows + "\u00a0"));
                div.appendChild(this.makeHeadingLink(nearby.next, nearby.langname, "a"));
              }
            }
            h2s.parentNode.insertBefore(div, h2s.nextSibling);
          }
        }
      }
    }
  }

  this.doNavBar = function(nearby) {
      var terms = ;
      var mid = 0;

      if ("prev" in nearby) {
        for (i = 0 ; i < nearby.prev.length; ++i)
          terms.push(nearby.prev);
        mid = nearby.prev.length;
      }
      terms.push(nearby.inputterm);
      if ("next" in nearby) {
        for (i = 0 ; i < nearby.next.length; ++i)
          terms.push(nearby.next);
      }
      
      // language name or namespace name or "browse"
      var heading;
      var is_language = false;
      if (nearby.langname.substr(0,1) == "_") {
        heading = nearby.langname.substr(1);
      } else if (nearby.langname == "*") {
        heading = "Browse";
      } else {
        heading = nearby.langname;
        is_language = true;
      }

      // create a portlet
      var navPortlet = document.getElementById("p-navigation");
      if (!navPortlet) return;

      var nearbyWrapper = document.getElementById("p-nearby");

      if (!nearbyWrapper) {
        nearbyWrapper = document.createElement("div");
        nearbyWrapper.id = "p-nearby";
        navPortlet.parentNode.insertBefore(nearbyWrapper, navPortlet.nextSibling);
      }

      var portlet = document.createElement('div');
      portlet.className = skin == "vector" ? "portal" : "portlet";
      var num = "seq" in nearby ? nearby.seq : this.counter;
      this.counter++;
      portlet.id = 'p-nearby-' + num;

      // find the right place to add this language
      var beforeHere = null;
      var portlets = nearbyWrapper.getElementsByTagName("div");
      for (var i = 0; i < portlets.length; i++) {
        if (portlets.id.substr(9) > num) {
          beforeHere = portlets;
          break;
        }
      }

      if (beforeHere)
        nearbyWrapper.insertBefore(portlet, beforeHere);
      else
        nearbyWrapper.appendChild(portlet);

      var ph5 = document.createElement('h5');
      ph5.setAttribute('lang','en');
      ph5.setAttribute('xml:lang','en');
      portlet.appendChild(ph5);

      var ha = document.createElement("a");
      ha.href += "#" + nearby.langname;
      ha.style.textDecoration = "none";
      ph5.appendChild(ha);

      ha.appendChild(document.createTextNode(heading));

      var pBody = document.createElement('div');
      pBody.className = skin == "vector" ? "body" : "pBody";
      portlet.appendChild(pBody);

      var pul = document.createElement('ul');
      pBody.appendChild(pul);

      // add link to portlet
      for (var i=0; i<terms.length; i++) {
        var pli = document.createElement('li');
        pul.appendChild(pli);

        var pla = document.createElement('a');
        var href = "https://dictious.com/fr/";
        if (mw.config.get( 'wgNamespaceNumber' ) != 0)
          href += mw.config.get( 'wgCanonicalNamespace' ) + ":";
        href += mwEncodeURIComponent(terms);
        if (is_language)
          href += "#" + nearby.langname;
        pla.href = href;

        if (i == mid) {
          if (nearby.exists)
            pla.style.fontWeight = "bold";
          else
            pla.style.color = "#ba0000";
        }
        pli.appendChild(pla);

        pla.appendChild(document.createTextNode(terms));
      }
  }

  // toolserver has sent back results. add them to the page
  this.callback = function(nearby) {
    // we will always give up if there's an error in the json response
    if ("error" in nearby) return;

    // in the future we may handle multiple languages per request
    if (!"langname" in nearby) return;

    var doHeadings = mw.cookie.get('WiktNearbyPagesLangHeadings') == "true";
    var doNavBar = mw.cookie.get('WiktNearbyPagesNavbar') == "true";

    // since these options are new they default to off
    // so having nearbypages enabled with both options off means the old behaviour
    // which means display both
    if (doHeadings == false && doNavBar == false)
      doHeadings = doNavBar = true;

    if (doHeadings)
      this.doHeadings(nearby);

    if (doNavBar)
      this.doNavBar(nearby);

    --this.pending;
  }

  // entry point
  this.execute = function() {
    var bc = document.getElementById("bodyContent");
    var langname;

    // article = page = entries
    if (mw.config.get( 'wgNamespaceNumber' ) == 0) {
      // redirect
      var cs = document.getElementById("contentSub");
      cs = cs.textContent || cs.innerText;
      if (cs == "Redirect page") {
        ++this.pending;
        query("_Redirect", mw.config.get( 'wgTitle' ));

      // normal article = page = entries
      } else {
        var h2s = bc.getElementsByTagName("h2");
        var nolangs = true;

        var n = 1;
        outer: for (var i = 0; i < h2s.length; ++i) {
          var spans = h2s.getElementsByTagName("span");
          inner: for (var j = 0; j < spans.length; ++j) {
            if (spans.className == "mw-headline") {
              ++this.pending;
              query(spans.textContent || spans.innerText, mw.config.get( 'wgTitle' ), n++);
              nolangs = false;
            }
          }
        }
        // normal article = page with no language headings
        // this is usually while editing or viewing a redlink
        if (nolangs) {
          // re-enabled with new implementation
          ++this.pending;
          query("*", mw.config.get( 'wgTitle' ));
        }
      }
    // other namespace
    } else {
      ++this.pending;
      query("_" + mw.config.get( 'wgCanonicalNamespace' ), mw.config.get( 'wgTitle' ));
    }

    function query(lang, term, seq) {
      mw.loader.load(
        "http://toolserver.org/~jackpotte/nearbypages.fcgi?"
        + "langname=" + lang + "&term=" + term + "&num=4"
        + (seq ? "&seq=" + seq : "")
        + "&callback=wiktNearby.callback");
    }
  }
}

// we need a globally visible JSONP callback
var wiktNearby;

jQuery(function () {
  wiktNearby = new WiktNearby();
  wiktNearby.execute();
} );