MediaWiki:Skin/Artikelbaukasten.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
J* (Diskussion | Beiträge) (fehler gefunden *grr*) |
J* (Diskussion | Beiträge) (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(" | + | 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.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";
}
}