SkipperGuide:Interne Dokumentation/SortableTables

aus SkipperGuide, dem Online-Revierführer über die Segelreviere der Welt.
Zur Navigation springen Zur Suche springen

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.