SkipperGuide:Interne Dokumentation/SortableTables
Anmerkung: Diese Erweiterung funktioniert noch nicht und ist aktuell deaktiviert
Sortierbare Tabellen sind erst ab der Mediawiki-Version 1.9 verfügbar. Sie basieren auf einer speziellen Style-Klasse und Client-Seitigem JavaScript.
Um die Funktionalität in früheren Versionen zu nutzen, kann man folgende Schritte unternehmen:
Anpassungen ./skins/common/wikibits.js
Folgende Anpassungen in der Datei ./skins/common/wikibits.js:
1. Ergänzen der Metode sortableTables():
function sortableTables() { if (getElementsByClassName(document, "table", "sortable").length != 0) { document.write('<script type="text/javascript" src="'+stylepath+'/common/sorttable.js"></script>'); } }
2. Ergänze Methode getElementsByClassName():
/* Written by Jonathan Snook, http://www.snook.ca/jonathan Add-ons by Robert Nyman, http://www.robertnyman.com Author says "The credit comment is all it takes, no license. Go crazy with it!:-)" From http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/ */ function getElementsByClassName(oElm, strTagName, oClassNames){ var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); var arrReturnElements = new Array(); var arrRegExpClassNames = new Array(); if(typeof oClassNames == "object"){ for(var i=0; i<oClassNames.length; i++){ arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)")); } } else{ arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)")); } var oElement; var bMatchesAll; for(var j=0; j<arrElements.length; j++){ oElement = arrElements[j]; bMatchesAll = true; for(var k=0; k<arrRegExpClassNames.length; k++){ if(!arrRegExpClassNames[k].test(oElement.className)){ bMatchesAll = false; break; } } if(bMatchesAll){ arrReturnElements.push(oElement); } } return (arrReturnElements) }
3. Erweiterung function runOnloadHook: Ergänzen vom Aufruf von sortableTables();
3. Erstellen der Datei .skins/common/sorttable.js:
Siehe http://de.wikipedia.org/skins-1.5/common/sorttable.js
TODOs
Offenbar funktioniert das Statement write("<script...") mit der aktuellen Version nicht korrekt. Die Initalisierung der sorttable.js findet nicht statt.
Dafür wird der Bildschirm weiß, laut DOM-Explorer besteht das Dokument nur noch aus dem sorttable.js-Element.