MediaWiki:Skin/Artikelbaukasten.js: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
(fehler gefunden *grr*)
(puh, ob das klappt...)
Zeile 2: Zeile 2:
  
 
addOnloadHook(ab_prepare);
 
addOnloadHook(ab_prepare);
 +
 +
/* globale variablen */
 +
var ab_opts = {};
 +
var ab_finish = null;
  
 
function ab_prepare()
 
function ab_prepare()
Zeile 10: Zeile 14:
 
function ab_init()
 
function ab_init()
 
{
 
{
 +
var temp_opts = {};
 
/* alle wichtigen Daten zuerst auslesen und verarbeiten */
 
/* alle wichtigen Daten zuerst auslesen und verarbeiten */
 +
data = document.getElementsById("data").innerHTML.split("\n");
 +
for (line=0; line<data.length; line++)
 +
{
 +
var elements;
 +
var struct = {};
 +
 +
if ( data[line].indexOf("|") == -1 )
 +
elements = { data[line] };
 +
else
 +
{
 +
elements = data[line].split("|");
  
 +
for (element=1; element<elements.length; element++)
 +
{
 +
if ( elements[element].indexOf("=") == -1 )
 +
continue;
 +
var pair;
 +
pair = elements[element].split("=", 1);
 +
struct[pair[0]]=pair[1];
 +
}
 +
}
 +
 +
switch elements[0]
 +
{
 +
case "option":
 +
if ( temp_opts["options"] == null )
 +
temp_opts["options"] = [];
 +
temp_opts["options"].push( struct );
 +
break;
 +
case "flush":
 +
ab_opts[temp_opts.label.name] = temp_opts;
 +
temp_opts = new Class;
 +
default:
 +
temp_opts[elements[0]] = struct;
 +
break;
 +
}
 +
 +
 +
 +
}
 +
 +
/* http-request vortäuschen */
 
setTimeout("ab_init2()", 1000);
 
setTimeout("ab_init2()", 1000);
 
}
 
}
Zeile 18: Zeile 64:
 
{
 
{
 
/* jetzt Spezial:Artikelbaukasten vortäuschen */
 
/* jetzt Spezial:Artikelbaukasten vortäuschen */
document.getElementById("bodyContent").innerHTML = "<b>Moin, moin!</b><br/>";
+
document.getElementById("Artikel").innerHTML="<div id='Vorschau'></div><div id='Assistent'></div><div id='Textbox'></div>";
document.getElementById("bodyContent").innerHTML += "Herzlich willkommen beim Artikelbaukasten. Welchen Artikel möchtest du anlegen?";
+
ab_generate("start");
 
document.getElementsByTagName("H1")[0].innerHTML = "Spezial:Artikelbaukasten";
 
document.getElementsByTagName("H1")[0].innerHTML = "Spezial:Artikelbaukasten";
 
document.title = "Spezial:Artikelbaukasten - Kamelopedia";
 
document.title = "Spezial:Artikelbaukasten - Kamelopedia";
 
self.scroll(0,0);
 
self.scroll(0,0);
 +
}
 +
 +
function generate( label )
 +
{
 +
var out;
 +
out = ( ab_opts[label].label.text == null ?
 +
ab_opts["default"].label.text : ab_opts[label].label.text );
 +
out += "<ul class='"+(ab_opts[label].label.style == null ?
 +
ab_opts["default"].label.style :  ab_opts[label].label.style )+"'>";
 +
for(opt=0; opt<ab_opts[label].options.length; opt++)
 +
{
 +
out += "<li onclick=\"generate('"+ab_opts[label].options[opt].next+"')\">"+ab_opts[label].options[opt].text+"</li>";
 +
}
 +
out += "</ul>"
 +
 +
if( ab_opts[label].setfinish != null )
 +
ab_finish = ab_opts[label].setfinish;
 +
 +
if ( ab_finish != null )
 +
{
 +
out += "<p>"+(ab_finish.text == 0 ? ab_opts["default"].setfinish.text : ab_finish.text).replace(/\[([^\]]+)\]/,"<span onclick='ab_generateFinish()'>$1</span>")+"</p>";
 +
}
 +
 +
if ( label != "start" )
 +
{
 +
out +="<p>"+ab_opts["default"].clear.text.replace(/\[([^\]]+)\]/,"<span onclick='ab_generateFinish()'>$1</span>")+"</p";
 +
}
 
}
 
}

Version vom 25. Oktober 2008, 19:34 Uhr

/* Artikelbaukasten */

addOnloadHook(ab_prepare);

/* globale variablen */
var ab_opts = {};
var ab_finish = null;

function ab_prepare()
{
	document.getElementById("Startlink").onclick = ab_init;
}

function ab_init()
{
	var temp_opts = {};
	/* alle wichtigen Daten zuerst auslesen und verarbeiten */
	data = document.getElementsById("data").innerHTML.split("\n");
	for (line=0; line<data.length; line++)
	{
		var elements;
		var struct = {};
		
		if ( data[line].indexOf("|") == -1 )
			elements = { data[line] };
		else
		{
			elements = data[line].split("|");

			for (element=1; element<elements.length; element++)
			{
				if ( elements[element].indexOf("=") == -1 )
					continue;
				var pair;
				pair = elements[element].split("=", 1);
				struct[pair[0]]=pair[1];
			}
		}
		
		switch elements[0]
		{
			case "option":
				if ( temp_opts["options"] == null )
					temp_opts["options"] = [];
				temp_opts["options"].push( struct );
				break;
			case "flush":
				ab_opts[temp_opts.label.name] = temp_opts;
				temp_opts = new Class;
			default:
				temp_opts[elements[0]] = struct;
				break;
		}

		

	}

	/* http-request vortäuschen */
	setTimeout("ab_init2()", 1000);
}

function ab_init2()
{
	/* jetzt Spezial:Artikelbaukasten vortäuschen */
	document.getElementById("Artikel").innerHTML="<div id='Vorschau'></div><div id='Assistent'></div><div id='Textbox'></div>";
	ab_generate("start");
	document.getElementsByTagName("H1")[0].innerHTML = "Spezial:Artikelbaukasten";
	document.title = "Spezial:Artikelbaukasten - Kamelopedia";
	self.scroll(0,0);
}

function generate( label )
{
	var out;
	out = ( ab_opts[label].label.text == null ?
		ab_opts["default"].label.text : ab_opts[label].label.text );
	out += "<ul class='"+(ab_opts[label].label.style == null ?
		ab_opts["default"].label.style :  ab_opts[label].label.style )+"'>";
	for(opt=0; opt<ab_opts[label].options.length; opt++)
	{
		out += "<li onclick=\"generate('"+ab_opts[label].options[opt].next+"')\">"+ab_opts[label].options[opt].text+"</li>";
	}
	out += "</ul>"

	if( ab_opts[label].setfinish != null )
		ab_finish = ab_opts[label].setfinish;

	if ( ab_finish != null )
	{
		out += "<p>"+(ab_finish.text == 0 ? ab_opts["default"].setfinish.text : ab_finish.text).replace(/\[([^\]]+)\]/,"<span onclick='ab_generateFinish()'>$1</span>")+"</p>";
	}

	if ( label != "start" )
	{
		out +="<p>"+ab_opts["default"].clear.text.replace(/\[([^\]]+)\]/,"<span onclick='ab_generateFinish()'>$1</span>")+"</p";
	}
}