Benutzer:Stündle/wikiZeitmaschine.js

aus Wikipedia, der freien Enzyklopädie

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
/**
 WikiZeitmaschine WZ

 by Stündle (c) 2010 Public Domain

 
*/

var WZDatumVersatz = "1231"; // Monat + Tag
var WZOldidList = new Array(); // Deklaration
// var WZTitle = ;

function WikiZeitmaschine(){
  //... code ...

  // create portlet
  var WZportlet = WZCreatePortlet("p-WZ", "Zeitmaschine");

  if (mw.config.get('skin') == 'vector' || mw.config.get('skin') == 'vector-2022') {
    var sidecol = document.getElementById ('mw-panel');//'panel');
  } else {
     var sidecol = document.getElementById ('portal');//column-one');
  }

  sidecol.insertBefore(WZportlet, document.getElementById('p-tb'));


  WZOldidDatenEinlesen();



  // add links to portlet
  var c = WZOldidList.length;
  //alert("y=" + c);

  while(c > 0) {
//  if(c>0) {
    c = c -1;
    var data = WZOldidList.pop();
    if(data) {
      var jahr = data[0];
      var oldid = data[1];
      mw.util.addPortletLink ('p-WZ', "/w/index.php?title=" + mw.config.get('wgPageName') + "&oldid=" + oldid,
          'Jahr ' + jahr, 'pt-jahr'+jahr);
    }
  }

}


/**
 * Portlet maker.
 * Creates and returns a portlet
 */

function WZCreatePortlet (name, title)
{
  var nportlet = document.createElement ('div');
  var nh5 = document.createElement ('h5');
  var ntit = document.createTextNode (title);
  var nbody = document.createElement ('div');
  var nul = document.createElement ('ul');

  if (mw.config.get('skin') == 'vector'|| mw.config.get('skin') == 'vector-2022') {
      nportlet.setAttribute ('id', name);
      nportlet.setAttribute ('class', 'portal expanded');
      nh5.setAttribute ('xml:lang', 'en');
      nh5.setAttribute ('lang', 'en');
      nbody.setAttribute ('class', 'body');    
  } else {
      nportlet.setAttribute ('id', name);
      nportlet.setAttribute ('class', 'portlet');
      nbody.setAttribute ('class', 'pBody');
      nul.setAttribute ('id', name);
  }
/*
  for (var i = 0; i < links.length; i++)
    nul.appendChild (
      shortcutsMakeLink (links[i]['name'], links[i]['article'])
    );
*/
  nh5.appendChild (ntit);
  nportlet.appendChild (nh5);
  nbody.appendChild (nul);
  nportlet.appendChild (nbody);

  return nportlet;
}

function WZSingleNode(parent, name)
{
  return parent.getElementsByTagName(name)[0]; 
}

function WZCallback(xmlHttp, jahr)
{
  if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // evaluate
    var xmlDoc;
    var nodeRevision;
    xmlDoc = xmlHttp.responseXML;
    if(xmlDoc)
      nodeRevision = WZSingleNode(xmlDoc, 'rev');
    if (nodeRevision) {
      // alert("nodeRevision");
      // get attribut revid
      var oldid = nodeRevision.getAttribute("revid");
      if(oldid) {
        alert("Jahr: " + jahr + " Oldid: " + oldid);
        WZOldidList.push(new Array(jahr, oldid));
      }
    }
  }
}

function WZOldidDatenEinlesen()
{
  var xmlHttp;
  for (var jahr = 2001; jahr <= 2010; jahr++) {
    xmlHttp = new XMLHttpRequest();
    var date = jahr + WZDatumVersatz + "000000";
    //alert(date);
    // prepare
    if (xmlHttp) {
      //alert('api.php?action=query&prop=revisions&rvlimit=1&rvprop=ids&&rvstart=' + date +
      //'&titles=Polymerase-Kettenreaktion&format=xml');
/*
      xmlHttp.open('GET',
         '/w/api.php?action=query&prop=revisions&rvlimit=1&rvprop=ids&&rvstart=' + date +
         '&titles=' + wgPageName + '&format=xml',
         false);
*/
      xmlHttp.open('GET',
         '/w/api.php?action=query&prop=revisions&rvlimit=1&rvprop=ids&&rvstart=' + date +
         '&titles=' + mw.config.get('wgPageName') + '&format=xml',
         false);
//      alert('api.php?action=query&prop=revisions&rvlimit=1&rvprop=ids&&rvstart=' + date +
//         '&titles=' + 'wikipedia' + '&format=xml');

    // hook
//      xmlHttp.onreadystatechange = function() {
//          WZCallback(xmlHttp, jahr);
//      };

      xmlHttp.send(null); // execute request
  if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // evaluate
    var xmlDoc;
    var nodeRevision;
    //alert(xmlHttp.responseText);
    xmlDoc = xmlHttp.responseXML;
    if(xmlDoc)
      nodeRevision = WZSingleNode(xmlDoc, 'rev');
    if (nodeRevision) {
      // alert("nodeRevision");
      // get attribut revid
      var oldid = nodeRevision.getAttribute("revid");
      if(oldid) {
        //alert("Jahr: " + jahr + " Oldid: " + oldid);
        WZOldidList.push(new Array(jahr, oldid));
      }
    }
  }
      
    }

// http://meta.wikimedia.org/w/api.php?action=query&prop=revisions&rvprop=ids|timestamp&&rvstart=20060105000000&titles=Main%20Page        
// http://de.wikipedia.org/w/api.php?action=query&prop=revisions&rvlimit=1&rvprop=ids|timestamp&&rvstart=20100101000000&titles=Diode&format=xml    
  }
}


if(mw.config.get('wgAction')==="view") {
  $(WikiZeitmaschine);
}


// http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/Guide/Ajax