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