|
|
| (56 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| /* Konfiguration */ | | var CODEWORT = "Kamel"; // Das ist das gefragte Codewort. Groß- und Kleinschreibung beachten! |
| | var HREF = "Hauptseite"; // Auf dieser Seite geht's weiter! |
|
| |
|
| /* | | // VARIANTE 1: Mit anzeigender Grafik |
| * das imgklick-Objekt:
| |
| * hier wird festgelegt, welche Einfügeboxen erzeugt werden, welche Auswahlmöglichkeiten es gibt, welche
| |
| * Optionen, usw. Es wird auch festgelegt, welche Daten beim Hinzufügen ins Feld eingefügt werden.
| |
| *
| |
| * Erklärung:
| |
| * var imgklick =
| |
| * [
| |
| * { genau 1 Element pro Auswahlfeld
| |
| * name: String, der als Titel angezeigt wird, z.B. "Bildtechnik" oder "Lizenzen"
| |
| * arg: String, der Argumentname benutzt wird z.B. "Technik" wird dann zu "|Technik=",
| |
| * prefix: String, Teil des Namens der Vorlage vor dem Schrägstrich, z.B. "Bildquelle",
| |
| * opts: Array für die Auswahlmöglichkeiten
| |
| * [
| |
| * { genau 1 Element pro Auswahlmöglichkeit
| |
| * info: String, Beschreibungstext des Auswahlfeldes,
| |
| * vorlage: String, Teil des Namens der Vorlage nach dem Schrägstrich, z.B. "Wiki",
| |
| * args: Array für die zusätzlichen Optionen
| |
| * [
| |
| * { genau 1 Element pro Option
| |
| * arg: String, Name des Arguments, z.B. "1" ( wird dann zu "{{...|1=...}}" ),
| |
| * type: String, "text" für Textbox, "textarea" für mehrere Zeilen,
| |
| * info: String, Beschreibungstext für die Option
| |
| * }
| |
| * ]
| |
| * }
| |
| * ]
| |
| * }
| |
| * ]
| |
| *
| |
| * Sieht leider recht kompliziert aus, einfach mal unten ansehen:
| |
| */
| |
|
| |
|
| var imgklick =
| | addOnloadHook( function () { |
| [
| | // INIT |
| { | | document.getElementById("eingabe1").innerHTML=("<form action='#' onsubmit='return false;' ><input id='ef1' type='text'/> <span id='er1'></span></form>"); |
| name: "Bildtechniken",
| | document.getElementById("er1").innerHTML = document.getElementById("eingabe_falsch").innerHTML; |
| arg: "Technik",
| | document.getElementById("ef1").onkeyup = function () { |
| prefix: "Bildtechnik",
| | if (this.value == CODEWORT) |
| opts:
| | // Grafik austauschen und Link erzeugen |
| [
| | document.getElementById("er1").innerHTML = document.getElementById("eingabe_ok").innerHTML + " <a href='"+wgScript+"?title="+encodeURI(HREF)+"'>Weiter geht's</a>"; |
| {
| | else |
| name: "Unbekannt",
| | document.getElementById("er1").innerHTML = document.getElementById("eingabe_falsch").innerHTML; |
| info: "Es wurde kein Bildtyp angegeben.",
| |
| vorlage: "Unbekannt",
| |
| args: [ /* keine */ ]
| |
| },
| |
| {
| |
| name: "Foto",
| |
| info: "Das Bild wurde fotographiert",
| |
| vorlage:"Foto",
| |
| args: [ /* keine */ ]
| |
| },
| |
| {
| |
| name: "was anderes",
| |
| info: "",
| |
| vorlage: "?",
| |
| args:
| |
| [
| |
| { arg: "1", type: "text", info: "Das Bild wurde ... ", pre: ""}
| |
| ]
| |
| }
| |
| ]
| |
| }, | |
| {
| |
| name: "Quellen",
| |
| arg: "Quellen",
| |
| prefix: "Bildquelle", | |
| opts:
| |
| [
| |
| {
| |
| name: "Wikipedia",
| |
| info: "Das Bild stammt aus der Wikipedia.",
| |
| vorlage: "Wiki",
| |
| args:
| |
| [
| |
| { arg: "1", type: "text", info: "Bildname:", pre: "Bild:" }
| |
| ]
| |
| | |
| }, | |
| { | |
| name: "Stupidedia",
| |
| info: "Das Bild stammt aus der Stupidedia.",
| |
| vorlage: "Stupi",
| |
| args:
| |
| [
| |
| { arg: "1", type: "text", info: "Bildname:", pre: "Bild:" }
| |
| ]
| |
| }, | |
| {
| |
| name: "Selbst",
| |
| info: "Das Bild wurde komplett selbst erzeugt.",
| |
| vorlage: "Selbst",
| |
| args:
| |
| [ /* keine */ ]
| |
| }
| |
| | |
| ]
| |
| } | | } |
| | }); |
|
| |
|
| ];
| | // VARIANTE 2: Mit OK-Button |
|
| |
|
| grundvorlage =
| | addOnloadHook( function () { |
| {
| | // INIT |
| name: "Bild",
| | document.getElementById("eingabe2").innerHTML=("<form action='#' id='form2'><input id='ef2' type='text'></input> <input type='submit' value='Ich bin mir da ganz sicher!' id='okbtn2'/></form>"); |
| einfg: "Bild\n"
| | document.getElementById("form2").onsubmit = function () { |
| };
| | if (document.getElementById("ef2").value == CODEWORT) |
| | | { |
| /* Programmablauf */
| | // Ergebnis ausspucken und weiterleiten |
| | | alert("Richtig! Weiter geht's!"); |
| /*
| | location.href = wgScript+"?title="+encodeURI(HREF); |
| * fügt zu einer Auswahl die Optionsbeschreibung und die Argumente ein.
| | } |
| * element: nummer des Arrayelementes ( imgklick[?] )
| | else |
| * t: das Auswahlelement (select)
| |
| */
| |
| function mk_opts( element, t ) | |
| { | |
| out = create_opts( element, t.value ); | |
| document.getElementById(imgklick[element].name+"_opt").innerHTML = out; | |
| return true;
| |
| };
| |
| | |
| /*
| |
| * gibt zu einer Auswahl die Optionsbeschreibung zurück.
| |
| * element: nummer des Arrayelementes imgklick[?]
| |
| * val: nummer des Arrayelements imgklick[].opts[?] bzw. Nummer der Auswahl
| |
| */
| |
| function create_opts( element, val )
| |
| {
| |
| var out = imgklick[element].opts[val].info + " ";
| |
| for ( i = 0; i<imgklick[element].opts[val].args.length; i++ )
| |
| {
| |
| arg = imgklick[element].opts[val].args[i];
| |
| if ( arg.type == "textarea" )
| |
| out += arg.info + " <textarea>"+arg.pre+"</textarea>";
| |
| else
| |
| out += arg.info + " <input type='" + arg.type + "' value='"+arg.pre+"' id='"+imgklick[element].name+"_arg_" + i + "'/>";
| |
| }
| |
| return out;
| |
| }
| |
| | |
| /*
| |
| * fügt Text in die Textbox ein (eigentliches Klicktag)
| |
| */
| |
| function mk_add( element )
| |
| {
| |
| obj = imgklick[element].opts[document.getElementById(imgklick[element].name+"_select").value]; | |
| var args = "";
| |
| for( i=0; i<obj.args.length; i++ )
| |
| {
| |
| args += "|" + obj.args[i].arg + "=" + document.getElementById(imgklick[element].name+"_arg_"+i).value; | |
| }
| |
| var box = document.getElementById("wpUploadDescription");
| |
| var val = "{{"+imgklick[element].prefix+"/"+obj.vorlage+args+"}}";
| |
| | |
| var arg = imgklick[element].arg;
| |
| var reg = new RegExp("{{"+grundvorlage.name+"[\s\n]*([|](.|\n)*)?}}");
| |
| var reg_has_arg = new RegExp("({{"+grundvorlage.name+"[\s\n]*([|](.|\n)*)?[|][\s\n]*"+arg+"=)((.|\n)*}})");
| |
| var reg_hasnt_arg = new RegExp("({{"+grundvorlage.name+"[\s\n]*)(([|](.|\n)*)?}})");
| |
| | |
| if ( -1 == box.value.search(reg) )
| |
| { // kein Grundvorlage
| |
| alert("Grundvorlage nicht gefunden.");
| |
| }
| |
| else if ( -1 != box.value.search(reg_has_arg))
| |
| box.value = box.value.replace( reg_has_arg, "$1\n"+val+"$4" );
| |
| else
| |
| box.value = box.value.replace( reg_hasnt_arg, "$1|"+arg+"=\n"+val+"\n$2");
| |
|
| |
| };
| |
| | |
| /*
| |
| * returnt eine Box zum Einfügen der übergeordneten Vorlage
| |
| */
| |
| function mk_g_box ()
| |
| {
| |
| var out = "";
| |
| out += "<div style='border: 1px red dotted; margin: 5px; padding: 5px;'>";
| |
| out += "<form><h4>Grundvorlage einfügen</h4>";
| |
| out += "Klickvorlage hinzufügen: <input type='button' value='Hinzufügen!' onclick='mk_add_g();'>";
| |
| out += "</form>";
| |
| out += "</div>";
| |
| return out;
| |
| }
| |
| | |
| /*
| |
| * fügt die Grundvorlage ein
| |
| */
| |
| function mk_add_g ()
| |
| {
| |
| box = document.getElementById("wpUploadDescription");
| |
| if ( -1 == box.value.search(new RegExp("{{"+grundvorlage.name+"(\s|\n)*([|](.|\n)*)?}}")) )
| |
| {
| |
| box.value += "{{"+grundvorlage.einfg+"}}";
| |
| }
| |
| else
| |
| alert("Wiki sagt: Ich glaube, da gibt es schon eine Grundvorlage.");
| |
| } | |
| | |
| /*
| |
| * am Anfang alles reinladen
| |
| */
| |
| addOnloadHook(mkALL);
| |
| function mkALL()
| |
| {
| |
| // die Zeile wird im "echten" Betrieb weggelöscht
| |
| mk_my_page();
| |
| | |
| var out = "";
| |
| out += mk_g_box();
| |
| for ( e=0; e<imgklick.length; e++ )
| |
| {
| |
| out += "<div style='border: 1px red dotted; margin: 5px; padding: 5px;'>"; | |
| out += "<form><h4>"+imgklick[e].name+" hinzufügen</h4>";
| |
| out += "<select name='" + e + "' id='" + imgklick[e].name + "_select' size='1' onchange='mk_opts( "+e+", this );'>";
| |
| for ( i = 0; i<imgklick[e].opts.length; i++ )
| |
| { | | { |
| out += "<option value='" + i + "'>" + imgklick[e].opts[i].name + "</option>"; | | // Ergebnis ausspucken und weiterleiten |
| | alert("Das war wohl nix."); |
| | // Nachfolgende Zeile auskommentieren oder entfernen um dem Nutzer mehrere Eingabeversuche zu erlauben. |
| | location.href = wgScript+"?title="+encodeURI("Grabkammer des Pharao"); |
| } | | } |
| out += "</select>";
| | return false; //Für den IE |
| out += " <span id='" + imgklick[e].name + "_opt'>"+create_opts( e, 0 )+"</span> <input type='button' value='Hinzufügen' onclick='mk_add("+e+");'>";
| |
| out += "</form>";
| |
| out += "</div>";
| |
| | |
| } | | } |
| document.getElementById("klicktag").innerHTML = out;
| | }); |
| }; | |
| | |
| /* Wir simulieren eine Hochladeseite */
| |
| function mk_my_page() {
| |
| document.getElementById("J_FRAME").innerHTML =
| |
| '<form id="upload" method="post" enctype="multipart/form-data" action="#">'+
| |
| ' <table border="0">'+
| |
| ' <tbody><tr>'+
| |
| ' '+
| |
| ' <td align="right" valign="top"><label for="wpUploadFile">Datei:</label></td>'+
| |
| ' <td align="left">'+
| |
| ' <input tabindex="1" name="wpUploadFile" id="wpUploadFile" onchange=\'fillDestFilename("wpUploadFile")\' size="40" type="file"><input name="wpSourceType" value="file" type="hidden">'+
| |
| | |
| ' </td>'+
| |
| ' </tr>'+
| |
| ' <tr>'+
| |
| ' <td align="right"><label for="wpDestFile">Dateiname:</label></td>'+
| |
| ' <td align="left">'+
| |
| ' <input tabindex="2" name="wpDestFile" id="wpDestFile" size="40" value="" onkeyup="wgUploadWarningObj.keypress();" type="text">'+
| |
| ' </td>'+
| |
| ' </tr>'+
| |
| ' <tr>'+
| |
| ' <td align="right"><label for="wpUploadDescription">Beschreibung:<br>'+
| |
| '<span style="color: rgb(192, 0, 0); font-weight: bold; text-decoration: underline; background-color: rgb(255, 255, 64);">(Quelle angeben!)</span></label></td>'+
| |
| ' <td align="left">'+
| |
| ' <textarea tabindex="3" name="wpUploadDescription" id="wpUploadDescription" rows="6" cols="80"></textarea>'+
| |
| ' </td>'+
| |
| ' </tr>'+
| |
| ' <tr>'+
| |
| ' <td></td>'+
| |
| ' <td>'+
| |
| ' <input tabindex="7" name="wpWatchthis" id="wpWatchthis" value="true" type="checkbox">'+
| |
| ' <label for="wpWatchthis">Diese Seite beobachten</label>'+
| |
| ' <input tabindex="8" name="wpIgnoreWarning" id="wpIgnoreWarning" value="true" type="checkbox">'+
| |
| ' <label for="wpIgnoreWarning">Warnungen ignorieren</label>'+
| |
| ' </td>'+
| |
| ' </tr>'+
| |
| ''+
| |
| ' <tr><td colspan="2" id="wpDestFile-warning"> </td></tr>'+
| |
| ' <tr>'+
| |
| ' <td></td>'+
| |
| ' <td align="left"><input tabindex="9" name="wpUpload" value="Datei hochladen" title="Hochladen starten [s]" accesskey="s" type="submit"></td>'+
| |
| ' </tr>'+
| |
| ' <tr>'+
| |
| ' <td></td>'+
| |
| ' <td align="left">'+
| |
| ' <div style="color: rgb(45, 100, 161); font-size: smaller;">Zum Vermeiden unnötiger Artikelversionen bitte den <b>Vorschau-Button</b> benutzen!</div>'+
| |
| ''+
| |
| ' </td>'+
| |
| ' </tr>'+
| |
| ''+
| |
| ' </tbody></table>'+
| |
| ' <input name="wpDestFileWarningAck" id="wpDestFileWarningAck" value="" type="hidden">'+
| |
| '</form>';
| |
| };
| |