Benutzer:Euku/configMonobook.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
 // von [[de:User:Euku]] (aka [[de:User:Spongo]])
 //
 // This is a graphical setup for [[de:User:PDD/monobook.js]]
 //
 // <nowiki>

 // creates a new attribute
 // e.g. newAttrib("href", "bla") returns
 //     href="bla" as an attribute for the <a>-tag
 function newAttrib(name, attrib) {
    var tmpAttrib = document.createAttribute(name);
    tmpAttrib.nodeValue = attrib;
    return tmpAttrib;
 }
 
 // creates a section heading : == section ==
 function newH1Tag(innerText, anchorText) {
    var newElement = document.createElement("h1");
        newElement.setAttributeNode(newAttrib("class", "firstHeading"));
        newElement.appendChild(document.createTextNode(innerText));
    document.getElementById("main-form").appendChild(newElement);
    // create #anchor
    newElement = document.createElement("a");
    newElement.setAttributeNode(newAttrib("name", anchorText));
    document.getElementById("main-form").lastChild.appendChild(newElement);
 }
 
 // creates a subsection heading : === subsetion ===
 function newH2Tag(innerText, anchorText) {
    var newElement = document.createElement("h2");
    newElement.appendChild(document.createTextNode(innerText));
    document.getElementById("main-form").appendChild(newElement);
    // create #anchor
    newElement = document.createElement("a");
    newElement.setAttributeNode(newAttrib("name", anchorText));
    document.getElementById("main-form").lastChild.appendChild(newElement);
 }
 
 // creates a subsubsection heading : ==== subsubsetion ====
 function newH3Tag(innerText) {
    var newElement = document.createElement("h3");
    newElement.appendChild(document.createTextNode(innerText));
    document.getElementById("main-form").appendChild(newElement);
 }

 // creates a new paragraph for comments
 function newPTag(innerText) {
    var newElement = document.createElement("p");
    newElement.appendChild(document.createTextNode(innerText));
    document.getElementById("main-form").appendChild(newElement);
 }
 
 // creates a link
 // and _appends_ it to the last element e.g. a <p>-tag
 function newLink(url, linkText, target) {
    var newElement = document.createElement("a");
        newElement.setAttributeNode(newAttrib("href", url));
        newElement.setAttributeNode(newAttrib("target", target));
    newElement.appendChild(document.createTextNode(linkText));
    document.getElementById("main-form").lastChild.appendChild(newElement);
 }
 // creates an image tag
 function newImg(url, width, height) {
    var newElement = document.createElement("img");
        newElement.setAttributeNode(newAttrib("src", url));
        newElement.setAttributeNode(newAttrib("width", width));
        newElement.setAttributeNode(newAttrib("height", height));
    document.getElementById("main-form").appendChild(newElement);
 }

 // creates an input tag in the form and adds a variable to monobookCfg
 function newVar(varName, comment, defaultVal) {
    var unknownVar = false;
    try {
        evalVar = eval(varName);
    } catch(E) {
        unknownVar = true;
        evalVar = defaultVal;
    }
    
    var newElement = document.createElement("input");
    newElement.setAttributeNode(newAttrib("type", (typeof evalVar == "boolean" ? "checkbox" : "text")));
    newElement.setAttributeNode(newAttrib("name", "form-element"));
    // value
    if (typeof evalVar == "boolean") {
        // should the checkbox be checked?
        if (evalVar)
            newElement.setAttributeNode(newAttrib("checked", "checked"));
    } else
        newElement.setAttributeNode(newAttrib("value", evalVar));
    
    // add comment
    var newTmp = document.createElement("p");
       newTmp.appendChild(newElement);
       newTmp.appendChild(document.createTextNode(" " + varName+ ": " + comment));
    document.getElementById("main-form").appendChild(newTmp);
    if (unknownVar) {
        // write a hint for new variable
        newPTag("Die vorherige Einstellung wird bei dir nicht unterstützt, weil deine Monobook.js-Version veraltet ist.");
    }
    // append to monobookCfg
    monobookCfg[monobookCfg.length] = varName;
    monobookCfgComment[monobookCfgComment.length] = comment;
    monobookCfgDefault[monobookCfgDefault.length] = defaultVal;
 }
 
 // stores the settings to [[Spezial:Mypage/monobook-cfg.js]]
 function saveConfig() {
    var newElement = document.createElement("img");
        newElement.setAttributeNode(newAttrib("src", "http://upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif"));
        newElement.setAttributeNode(newAttrib("width", 18));
        newElement.setAttributeNode(newAttrib("id", "busyImg"));
        newElement.setAttributeNode(newAttrib("height", 18));
    document.getElementById("saveBtn").appendChild(newElement);
    
    // concat the string to save
    newCfg = ' // Dieses Setup wurde automatisch generiert und gehört zu [[Benutzer:' + wgUserName + '/monobook.js]].\n // Bitte nur von Hand editieren, wenn Du weißt was du tust.\n //<nowiki>\n\n';
    newCfg += " version = '"+ versioncurrent + "';\n";
    for (i = 0; i < monobookCfg.length; ++i) {
        try {
            if (typeof monobookCfgDefault[i] == "boolean")
                evalVar = document.getElementsByName("form-element")[i].checked;
            else
                evalVar = document.getElementsByName("form-element")[i].value;
        } catch(E) {
            evalVar = "";
        }
        if (typeof evalVar == "boolean")
            newCfg += " " + monobookCfg[i] + " = " + evalVar + ";\t\t// "+ monobookCfgComment[i] + " Standardwert: " + monobookCfgDefault[i] +"\n";
        else // string or number
            newCfg += " " + monobookCfg[i] + " = '" + evalVar + "';\t\t// "+ monobookCfgComment[i] + " Standardwert: " + monobookCfgDefault[i] +"\n";
    }
    var qbTextarea = document.getElementById("main-form").qbTextarea.value;
    newCfg += "\n // Quickbarkonfiguration bitte nicht von Hand ändern:\n" + qbTextarea;
    newCfgComment = "neue Einstellungen für monobook.js gespeichert";
    // open Spezial:Mypage/monobook.config.js and save it
    newElement = document.createElement("iframe");
        newElement.setAttributeNode(newAttrib("src", mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=Benutzer:'+wgUserName +"/monobook.config.js&action=edit"));
        newElement.setAttributeNode(newAttrib("width", 0));
        newElement.setAttributeNode(newAttrib("height", 0));
        newElement.setAttributeNode(newAttrib("name", "saveFrame"));
    document.getElementById("main-form").appendChild(newElement);
    window.setTimeout("waitForSaveCfg1()", 600);
 }
 
 // waits until parent.saveFrame.document.getElementById("editform") is loaded
 function waitForSaveCfg1() {
    try {
        if (parent.saveFrame.document.getElementById("p-personal").innerHTML == '')
    	    throw ".";
    	parent.saveFrame.document.getElementById("editform").wpSummary.value = newCfgComment;
        parent.saveFrame.document.getElementById("wpTextbox1").value = newCfg;
        parent.saveFrame.document.getElementById("editform").submit();
        waitForSaveCfg2();
    } catch(e){
        window.setTimeout("waitForSaveCfg1()", 300);
    }
 }
 
 // waits until parent.saveFrame is saved
 function waitForSaveCfg2() {
    if (parent.saveFrame.document.URL != wgServer + '/wiki/Benutzer:'+ wgUserName +'/monobook.config.js')
        window.setTimeout("waitForSaveCfg2()", 300);
    else {
        document.getElementById("main-form").busyImg.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/8/80/Symbol_OK.svg/18px-Symbol_OK.svg.png";
        document.getElementById("main-form").saveBtn.disabled = true;
    }
 }
 
 // create TOC-content
 function newTOCelement(text, anchor) {
    return "<li class='toclevel-1'><a href="+anchor+"><span class='toctext'>"+text+"</span></a></li>";
 }

 // shows a preview of the quickbar configuration
 // TODO funktioniert nicht
 function previewQb() {
    // delete
    var tmp = document.getElementById("main-form").qbTextarea.value;
    alert(xxx);
    tmp += "\n buildQuickbar()";
    document.getElementById("p-quickbar").innerHTML = ''; //delete old Quickbar
    try {
        eval(tmp) // Errors?
    } catch(e) {
        alert("Fehler in der Quickbar-Konfiguration:" + e);
        throw (e);
    }
    alert(xxx);
     if (typeof(version) == 'undefined') var version = "?";
     if (!isEdit || zeigeversion || isPHP) {
      document.write(
          '<div align=right>',
          '<a href="#" onclick="configMonobook()" title="Einstellungen der Monobook.js">Einstell.</a>&nbsp;&nbsp;',
        (zeigeversion) ?
          ('<a href="#" onclick="amIuptodate()" title="Versionscheck">' + (adminflag ? 'A/' : '') + version + '</a>&nbsp;&nbsp;')
             : '',
     
        (!isEdit) ?
          ('<input type="checkbox" id="reloadme" name="reloadme" onchange="setReload()" title="Seite alle ' + (timeout/1000) + ' s neu laden?"></input>&nbsp;&nbsp;')
             : '&nbsp;',
     
          '<a href="/w/index.php?title=Spezial%3APrefixindex&from=',wgUserName,
              '&namespace=2" target="', qbtarget, '" title="Meine Seiten im Benutzernamensraum">',
              (wgUserName.split(' ')[0].length < 10) ? wgUserName.split(' ')[0] : 'MyPages',
          '</a>',
     
          '</div>');
     }                
     document.write(xxx,'</div>');
     
     if (scrpt > '') {
        document.write('<script> function _doopt (was) { switch (was) {', scrpt, '}}<\/script>');
        scrpt='';
     }
    //document.write(xxx);
 } 
 
 function configMonobook() {
    // create one array to save all variables and names
    monobookCfg = new Array();
    monobookCfgComment = new Array();
    monobookCfgDefault = new Array();
    // clear all content
    document.getElementById('content').innerHTML = '';
    document.getElementById('p-cactions').innerHTML = '';
    
    // create a formular to put all information in
    var mainForm = document.createElement("form");
        mainForm.setAttributeNode(newAttrib("id", "main-form"));
        mainForm.setAttributeNode(newAttrib("action", "javascript:saveConfig();"));
    document.getElementById("content").appendChild(mainForm);
    
    // Elements:
    newH1Tag("Benutzer:"+wgUserName+" - Einstellungen der monobook.js");
    // Update:
    if (versioncurrent != version) {
        newPTag("Dummy tag");
        document.getElementById("main-form").lastChild.innerHTML = "<table><tr><td width=40><img src='http://upload.wikimedia.org/wikipedia/commons/thumb/5/59/Info_blue.svg/36px-Info_blue.svg.png' height=36 width=36 /></td><td>Deine Konfiguration der monobook ist nicht mehr aktuell. Es ist möglich, dass neue Funktionen und Einstellungen für dich noch nicht verfügbar sind. Du benutzt " + version + " um sie auf " + versioncurrent + " zu aktualisieren speichere dieses Formular.<br />Die letzten Änderungen siehst du <a href='http://de.wikipedia.org/wiki/Benutzer_Diskussion:PDD/monobook.js#Versionsliste' target='_blank'>hier</a>.</td></tr></table>";    }
    // create TOC
    newPTag("Dummy tag");
    document.getElementById("main-form").lastChild.innerHTML = "<table id='toc' class='toc' summary='Übersicht'><tr><td><div id='toctitle'><h2>Übersicht</h2></div><ul>" +
            newTOCelement("Funktionen in der Quickbar", "#qb") +
            newTOCelement("Default-Funktionen aus MediaWiki:Monobook.js", "#mediawiki") +
            newTOCelement("Modul: changeBeschriftungen.js", "#changeBeschriftungen") +
            newTOCelement("Modul: changeSZtoSS.js", "#changeSZtoSS") +
            newTOCelement("Modul: eintragen.js", "#eintragen") +
            newTOCelement("Modul: hinweise.js", "#hinweise") +
            newTOCelement("Modul: delete.js", "#delete") +
            newTOCelement("Modul: godmode-light.js", "#godmode-light") +
            newTOCelement("Modul: addEditAndRevertLinks.js", "#addEditAndRevertLinks") +
            newTOCelement("Modul: addLogsLink.js", "#addLogsLink") +
            newTOCelement("Modul: markUTF8.js", "#markUTF8") +
            newTOCelement("Modul: reftoggle.js", "#reftoggle") +
            newTOCelement("Modul: newgallery.js", "#newgallery") +
            newTOCelement("Modul: APPERs Rechtschreibprüfung.js", "#APPERrs") +
            newTOCelement("Modul: APPERs IP-Patrol Vandalenmarkierer.js", "#APPERipvandal") +
            newTOCelement("Modul: fixdiffwidth.js", "#fixdiffwidth") +
            newTOCelement("Modul: wikiminiatlas2.js", "#wikiminiatlas2") +
            newTOCelement("Modul: coordinates.js", "#coordinates") +
            newTOCelement("Modul: unsigned.js", "#unsigned") +
            newTOCelement("Modul: signing.js", "#signing") +
            newTOCelement("Modul: SearchBox.js", "#SearchBox") +
            newTOCelement("Modul: customToolbar.js", "#customToolbar") +
            newTOCelement("Modul: popups.js (Lupin, Navpop)", "#popups") +
            newTOCelement("weitere Module", "#weitereM") +
            newTOCelement("Quickbarkonfiguration", "#quickbar") +
            "</ul></table>";
    // create SETUP
    newH2Tag("Funktionen in der Quickbar (oben links)", "qb");
    newVar("zeigeversion", "monobook-Version anzeigen?", false);
    newVar("zeigehilfe", "Kurze Hilfetexte beim überfahren mit der Maus anzeigen?", true);
    newVar("qbnewpage", "Sollen Seiten aus dem QuickBar im neuen Fenster aufgerufen werden?", false);
    newVar("neueVariable", "diese Variable ist beim Benutzer noch nicht definiert.", "ganz neu (test)");  // TEST einer unbekannten variable
    newVar("rclimit", "angezeigte Anzahl auf 'Letzte Änderungen'", 500);
    newVar("nplimit", "angezeigte Anzahl auf 'Neue Artikel'", 500);
    newVar("nulimit", "angezeigte Anzahl auf 'Neuanmeldungs-Logbuch'", 1000);
    newVar("usedropdown", "Wenn keine Dropdowns gewünscht sind, hier deaktivieren!", false);
    newVar("timeout", "Wie lange auf das Neuladen der Seite warten? In Milisekunden", 50000);
    newVar("timezoneshift", "Unterschied lokale Zeit zur Systemzeit (bleibt für Mitteleuropäer 0)", 0);
    newVar("debugme", "Debug-Modus?", false);
    newVar("qbfontsize", "Schriftgröße im QuickBar (relativ in Prozent)", 100);

    newH2Tag("systemweite Default-Funktionen aus MediaWiki:Monobook.js", "mediawiki");
    newVar("NavigationBarShowDefault", "Navi-Leisten: alle einklappen == 0; alle ausklappen == 15. Siehe dazu: ", 0);
     newLink("http://de.wikipedia.org/wiki/Hilfe:Navigationsleisten#Navigationsleisten_dynamisch_ein-_und_ausklappen", "Hilfe:Navigationsleisten", "_blank");
    newVar("oldEditsectionLinks", "'Bearbeiten'-Links bei Abschnitten ganz nach rechts?", false);
    newVar("enable_linkFA", "'Featured Articles' in fremdsprachigen Wikipedias markieren?", true);
    
    newH2Tag("Modul: changeBeschriftungen.js", "changeBeschriftungen");
    newVar("beschriftungen", "Kosmetische Änderungen an der MediaWiki-Oberfläche?", true);
    newVar("markhandsoff", "Fremde Benutzerseiten grafisch markieren?", false);
    newVar("markbecareful", "Verschiedene Buttons rot markieren?", false);
    newH3Tag("Beschriftungen: personal toolbar");
    newVar("cbmytalk", "", "Meine Diskussion");
    newVar("cbprefs", "", "Einstellungen");
    newVar("cbwatchlist", "", "Beobachtungsliste");
    newVar("cbmyconts", "", "Meine Beiträge");
    newVar("cblogout", "", "X");
    newH3Tag("Beschriftungen: current article");
    newVar("cbedit", "", "Bearbeiten");
    newVar("cbhistory",  "", "Versionen");
    newVar("cbmove", "", "Verschieben");
    newVar("cbwatch", "", "Beobachten");
    newVar("cbunwatch", "", "Ignorieren");
    newH3Tag("Beschriftungen: tools");
    newVar("cbwhatlinkshere", "", "Links a. d. Seite");
    newVar("cblinked", "", "Verlinkte Änderungen");
    newVar("cbmail", "", "E-Mail senden");
    newVar("cbupload", "", "Bild hochladen");
    newVar("cbprint", "", "Druckversion");
    newVar("cbblock", "", "User sperren");
    newH3Tag("Beschriftungen: portlets", "");
    newVar("cblang", "", "Interwiki");
    
    newH2Tag("Modul: changeSZtoSS.js", "changeSZtoSS");
    newVar("changeszlig", "'ß' in 'ss' ändern (nach Schweizer Rechtschreibung)?", false);
    
    newH2Tag("Modul: eintragen.js", "eintragen");
    newVar("autosave", "Automatisches Speichern von QS/LA/SLA/BildLA/Vandal-Einträgen?", false);
    newVar("signogrundparam", "auf true setzen, wenn Signatur das SLA-Eintragen behindert", false);
    newVar("emptylinesafterhr", "Leerzeilen zwischen LA-Baustein und Artikeltext", 1);
    newVar("defaultSLA", "Standard-SLA-Grund", "Kein Artikel");
    newVar("defaultVandal", "Standardgrund für Vandalismusmeldung", "vandaliert in [[]]");
    
    newH2Tag("Modul: hinweise.js", "hinweise");
    newVar("hinweis", "Portal- und Redaktionshinweis verwenden?", true);
    // doppelte Benutzung
    
    newH2Tag("Modul: godmode-light.js", "godmode-light");
    newVar("godmodelight", "'Zurücksetzen' einblenden?", true);
    newVar("godmodenewstyle", "Neuer Rollback-Kommentartext?", true);
    
    newH2Tag("Modul: addEditAndRevertLinks.js", "addEditAndRevertLinks");
    newPTag("Zur Verdeutlichung: ");
     newLink("http://de.wikipedia.org/wiki/Bild:Spongo-monobook_Revert.png", "Bild:Spongo-monobook_Revert.png", "_blank");
    newVar("editlinkoldversion", "Bearbeiten-Link für ältere Versionen anzeigen?", true);
    newVar("editlinktxt", "Text des Edit-Links", "edit");
    newVar("revertwithreason", "Revert-Link mit Grund-Eingabe anzeigen?", true);
    newVar("revlinktxt", "Text des Revert-Links", "rev");
    newVar("revlinkshowuser", "beim Revertieren über (Rev)-Link letzten Benutzer angeben?", true);
    newVar("rvisminor", "Sind Reverts mit '(rev)'-Link Minor-Changes?", false);
    newVar("aearldefault", "Defaultgrund beim Revertieren", "Grund: Unfug bzw. Vandalismus");
    newVar("aerhistory", "Links auch in der Versionsgeschichte?", true);
    newVar("aearlhere", "Revertaktion im selben Browserfenster?", true);
    
    newH2Tag("Modul: addLogsLink.js", "addLogsLink");
    newVar("addlogslink", "Zusatzlinks zu Spezial:Log einfügen?", true);
    newVar("pagelogtext", "Text des Seitenlogbuch-Links", "Page:Log");
    newVar("userlogtext1", "Texte der beiden Benutzerlog-Links", "User:Log:1");
    newVar("userlogtext2", "Texte der beiden Benutzerlog-Links", "User:Log:2");
    
    newVar("addusercontriblink", "Auf Benutzerseiten auch noch Link auf Contributions?", true);
    newVar("usercontribtext", "Text des Contributions-Links ('Benutzerbeiträge')", "User:Contribs");
    newVar("userdeledittext", "Text des Links auf Deleted Edits", "User:DelEdits");
    newVar("userstatstext", "Text des Links auf Benutzerstatistik", "User:Stats");
    newVar("userstimmrechttext", "Text des Links auf Stimmrechtcheck", "User:Stimmrecht");
    newVar("adduserarticlelink", "Auf Benutzerseiten Link auf erstellte Artikel?", true);
    newVar("userarticletext", "Text des Links auf erstellte Artikel", "User:Articles");
    
    newVar("addbrowselink", "Auf allen Seiten Link zum alphabetischen Browsen einblenden?", true);
    newVar("browseuserprefix", "Bei Nutzerseiten stattdessen alle Unterseiten des Nutzers zeigen?", true);
    newVar("browsetext", "Text des Links auf Browsing-Seite", "Browse");
    
    newVar("addiusagelink", "Bei Bildern Link zur Bildnutzung (Commons)?", true);
    newVar("imgusagetext", "Text des Links auf Bildnutzung", "IMG:C-Usage");
    
    newH2Tag("Modul: addEditSection0.js", "addEditSection0");
    newVar("addeditintro", "TAB zum Editieren des Nullabschnitts (Intros) einer Seite hinzufügen?", true);
    newVar("editintrotext", "Beschriftung des TABs", "IntroBearbeiten");
    newVar("addpurge", "TAB zum Purgen (Servercache-Updaten) einer Seite hinzufügen?", true);
    newVar("purgetext", "Beschriftung des TABs", "Purge");
    
    newH2Tag("Modul: markAdmins.js", "markAdmins");
    newPTag("Zur Verdeutlichung: ");
     newLink("http://de.wikipedia.org/wiki/Bild:Spongo-monobook.png", "Bild:Spongo-monobook.png", "_blank");
    newVar("markadmins", "Admins besonders hervorheben?", true);
    newVar("marksubpages", "Auch Links auf Admin-Unterseiten markieren", true);
    newVar("mawatchlist", "Auch auf der Beobachtungsliste?", true);
    newVar("macontribs", "Auch auf den Benutzerbeiträgen?", true);
    newVar("markatxt", "Markierung für Admins", "A");
    newVar("markrenatxt", "Markierung für umbenannte Admins", "A-Ren");
    newVar("markbureautxt", "Markierung für Bürokraten", "B");
    newVar("markstewtxt", "Markierung für Stewards", "S");
    newVar("markcomadmins", "Commons-Admins besonders hervorheben?", true);
    newVar("markcomatxt", "Markierung für Commons-Admins", "Com-A");
    newVar("markexadmins", "Ex-Admins besonders hervorheben?", true);
    newVar("markexatxt", "Markierung für Ex-Admins", "Ex-A");
    newVar("markexbureautxt", "Markierung für Ex-Bürokraten", "Ex-B");
    newVar("markarbcom ", "Schiedsgericht besonders hervorheben?", true);
    newVar("markarbcomtxt", "Markierung für Schiedsgerichtler", "SG");
    newVar("markadmarbcomtxt", "Markierung für adminisierte Schiedsgerichtler", "SG-A");
    
    newH2Tag("Modul: markUTF8.js", "markUTF8");
    newVar("markutf8", "Sonderzeichenbenutzernamen besonders hervorheben?", false);
    newVar("muwatchlist", "Auch auf der Beobachtungsliste?", true);
    newVar("mucontribs", "Auch auf den Benutzerbeiträgen?", false);
    newVar("markutf8txt", "Markierung für UTF8-kodierte Nutzernamen etc.", "UTF8!");
    newVar("markltrtxt", "Markierung für Lemmata mit LTR-Mark", "UTF8:LTR!");
    
    newH2Tag("Modul: reftoggle.js", "reftoggle");
    newVar("reftoggle", "'Quellen verstecken'/'Quellen anzeigen'-Schalter für Fußnoten?", false);
    
    newH2Tag("Modul: newgallery.js", "newgallery");
    newVar("newgallery", "Anzahl Bilder/Zeile in Galerien verändern?", false);
    newVar("gallery_len", "Breite der Galerien", 6);
    newVar("bCategory", "In Kategorien ändern?", true);
    newVar("bArticle", "In Artikeln ändern?", true);
    
    newH2Tag("Modul: quickedit.js", "quickedit");
    newVar("qeEnabled", "QuickEdit aktivieren? Weitere Informationen ", false);
     newLink("http://de.wikipedia.org/wiki/Wikipedia:Skin/Baukasten#ASM", "hier", "_blank");
    newVar("qeEnableSection0", "QuickEdit-Link für Abschnitt 0 (Einleitung)?", false);
    newVar("qeEnableAccessKeys", "Tastaturbefehle aktivieren?", true);
    newVar("qeTextboxHeight", "Höhe des Textfelds", 20);
    
    newH2Tag("Modul: APPERs Rechtschreibprüfung", "APPERrs");
    newVar("rechtschreibpruefung", "Rechtschreibprüfung aktivieren? Weitere Informationen unter ", false);
     newLink("http://de.wikipedia.org/wiki/Benutzer:APPER/RP", "Benutzer:APPER/RP", "_blank");
    newVar("AutorunRP", "Automatische Rechtschreibprüfung, sonst manuell", false);
    
    newH2Tag("Modul: APPERs IP-Patrol Vandalenmarkierer", "APPERipvandal");
    newVar("ippvandalmark", "IP-Patrol-Vandalenmarkierung aktivieren? Weitere Informationen unter ", false);
     newLink("http://de.wikipedia.org/wiki/Benutzer:APPER/IP-Patrol", "Benutzer:APPER/IP-Patrol", "_blank");
    
    newH2Tag("Modul: wikiminiatlas2.js", "wikiminiatlas2");
    newImg("http://upload.wikimedia.org/wikipedia/commons/thumb/0/00/MiniWikiAtlas_screenshot.png/250px-MiniWikiAtlas_screenshot.png", 250, 151);
    newVar("miniatlas", "WikiMiniAtlas aktivieren? Weitere Infomationen unter ", false);
     newLink("http://de.wikipedia.org/wiki/Benutzer:Dschwen/WikiMiniAtlas", "Benutzer:Dschwen/WikiMiniAtlas", "_blank");
    
    newH2Tag("Modul: coordinates.js", "coordinates");
    newVar("coordinates", "Koordinate_Artikel in Editfenster generierbar? Für dieses Modul im CSS #editpage-copywarn nicht ausblenden!", false);
    
    newH2Tag("Modul: unsigned.js", "unsigned");
    newVar("unsigning", "Einfügen von {{Unsigned|.. bei unsignierten Beiträgen auf Diskussionsseiten erleichtern?", true);
    
    newH2Tag("Modul: signing.js", "signing");
    newVar("signing", "automatische Unterschrift auf Diskussionsseiten?", false);
    // Liste der Nicht-Diskussionsseiten, die ebenfalls unterschrieben werden sollen:
 //var regpages = new Array(':Verbesserungsvorschläge', ':Löschkandidaten', ':Löschprüfung', ':Entsperrwünsche', ':Adminkandidaturen', ':Qualitätssicherung', ':Fragen_zur_Wikipedia', ':Meinungsbilder', ':Review', ':Bilderwünsche',':Kandidaten');
    
    newH2Tag("Modul: SearchBox.js", "SearchBox");
    newVar("searchbox", "erweitertes Suchen/Ersetzen", false);
    
    newH2Tag("Modul: customToolbar.js", "customToolbar");
    newImg("http://upload.wikimedia.org/wikipedia/commons/thumb/1/14/Extra-Editbuttons.png/800px-Extra-Editbuttons.png", 800, 63);
    newVar("customtoolbar", "Mehr Buttons in der Symbolleiste einblenden?", false);
    newVar("customEditButtons", "Anzahl und Reihenfolge wählbar (siehe: ", "A,B,C,E,F,G,H,I1,I2,J1,K,L,M,Q,R,R3,S,T,U,V,W,X");
     newLink("http://de.wikipedia.org/wiki/Benutzer:Olliminatore/Extra-Editbuttons", "Benutzer:Olliminatore/Extra-Editbuttons)", "_blank");
    // zu entfernende Standard-Edit buttons (0...10)
  //var rmEditButtons = [6,7,10]; // Standardbutton entfernen

    newH2Tag("Modul: popups.js (Lupin, Navpop)", "popups");
    newVar("lupinpopups", "Popup-Modul einbinden?", false);
    newPTag("Optionen für Lupin-Popups (ausführliche Liste siehe ");
     newLink("http://de.wikipedia.org/wiki/Wikipedia:Helferlein/Navigation-Popups", "Wikipedia:Helferlein/Navigation-Popups", "_blank");
    newPTag("Bzw. aktueller und auf englisch ");
     newLink("http://en.wikipedia.org/wiki/Wikipedia:Tools/Navigation_popups", "en:Wikipedia:Tools/Navigation popups#Options)", "_blank");
    newVar("popupDelay", "Popupverzögerung in s", 1);
    newVar("simplePopups", "aktivieren, wenn Laden im Hintergrund unerwünscht ist", false);
    newVar("popupStructure", "Aussehen der Popups", "menus");
    newVar("popupActionsMenu", "separates 'actions'-Menu", true);
    newVar("popupImages", "Bilder im Popup erwünscht?", true);
    newVar("popupSubpopups", "Popups für Links innerhalb von Popups generieren?", true);
    newVar("popupAdminLinks", "Funktionen, die nur Admins nutzen können", false);
    
    newVar("removeTitles", "Originaltitel der Links nach popups verschieben? Diese Option sollte bei Verwendung von showRedundantLinks.js *nicht* gesetzt werden", true);
    newVar("popupFixRedirs", "Links auf Redirects korrigieren?", false);
    newVar("popupWatchRedirredPages", "korrigierte Seite beobachten?", "null"); // ?!?!?!?
    newVar("popupRedirAutoClick", "ausgeführte Aktion beim Korrigieren von Redirects", "wpSave");
    newVar("popupRedlinkRemoval", "Rote Links entfernen?", false);
    newVar("popupFixDabs", "Links auf BKLs korrigieren?", false);
    newVar("popupWatchDisambiggedPages", "korrigierte Seite beobachten?", false);
    newVar("popupLastModified", "Zeit seit letzter Änderung anzeigen?", true);
    newVar("popupDiffDates", "Änderungsdaten bei Diffs anzeigen?", true);
    newVar("popupOnlyArticleLinks", "Popups nur für Artikel-Links", true);
    newVar("imagePopupsForImages", "Bildvorschau laden, wenn Mausposition über Bild?", false);
    newVar("popupMaxWidth", "Maximalbreite des Popup-Fensters", 400);
    newVar("popupRevertSummaryPrompt", "Prompt zum Ändern des Revert-Kommentars?", false);
    newVar("popupMaxPreviewSentences", "Anzahl der angezeigten Sätze in der Vorschau", 4);
    newH3Tag("deutsche Texte für Lupin");
    // TODO variablen
    newVar("popupFixDabsSummary", "", "Ersetze BKL-Seite [[%s]] durch [[%s]] mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]");
    newVar("popupExtendedRevertSummary", "", "Revert auf Version vom %s von Benutzer %s, oldid %s mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]");
    newVar("popupRevertSummary", "", "Revert auf Version %s mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]");
    newVar("popupRevertToPreviousSummary", "", "Revert auf Vorgängerversion der Version %s mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]");
    newVar("popupQueriedRevertSummary", "", "Revert auf Version $1 vom $2 von $3 mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]");
    newVar("popupQueriedRevertToPreviousSummary", "", "Revert auf Vorgängerversion der Version $1 vom $2 von $3 mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]");
    newVar("popupFixRedirsSummary", "", "Ersetze Redirect [[%s]] durch [[%s]] mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]");
    newVar("popupRedlinkSummary", "", "Entferne Link auf leere Seite [[%s]] mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]");
    newVar("popupRmDabLinkSummary", "", "Entferne Link auf BKL-Seite [[%s]] mit [[Wikipedia:Helferlein/Navigation-Popups|Popups]]");
    
    newH2Tag("weitere Module", "weitereM");
    newVar("showredundantlinks", "Doppelte Links anzeigen?", false);
    newVar("ripe", "Ripe - Tooltips?", false);
    newVar("irrenhaus", "Script für mehr Abwechslung im 'neue Nachrichten'-Balken", false);
    newVar("js_highlight", "JavaScript-code farbig hervorheben (.js and pre-tags)", false);
    newVar("dellinknowcommons", "Special rights options", true);
 
    newH1Tag("Quickbarkonfiguration", "quickbar");
    // textarea for Quickbar
    var settings = loadFile("User:"+ wgUserName + "/monobook.config.js");
    tmp = settings.search(/\ \/\/\ Quickbarkonfiguration\ bitte\ nicht\ von\ Hand\ ändern\:/);
    settings = (tmp == -1 ? "keine Konfiguration gefunden" : settings.slice(tmp + 54, settings.length));
    
    var qbTextarea = document.createElement("textarea");
        qbTextarea.setAttributeNode(newAttrib("id", "qbTextarea"));
        qbTextarea.setAttributeNode(newAttrib("rows", 25));
        qbTextarea.setAttributeNode(newAttrib("cols", 100));
        qbTextarea.appendChild(document.createTextNode(settings));
    document.getElementById("main-form").appendChild(qbTextarea);
    newPTag("Zur Erklärung der w() Funktion, siehe ");
     newLink(mw.config.get('wgServer') + mw.config.get('wgScriptPath') + "/index.php?title=Benutzer:PDD/monobook.js/w()", "hier. (existiert noch nicht)", "_blank"); // FIXME: gibt es noch nicht
  //  newPTag("Für eine Live-Vorschau der Quickbarkonfiguration, hier ");
  //   newLink("javascript:previewQb()", "klicken", "_self"); // FIXME tut nicht
     
    // SAVE-Button
    document.getElementById("main-form").appendChild(document.createElement("br"));
    var saveBtn = document.createElement("input");
        saveBtn.setAttributeNode(newAttrib("type", "submit"));
        saveBtn.setAttributeNode(newAttrib("id", "saveBtn"));
        saveBtn.setAttributeNode(newAttrib("value", "Einstellungen speichern "));
    document.getElementById("main-form").appendChild(saveBtn);
    newPTag("Dummy tag");
    document.getElementById("main-form").lastChild.innerHTML = "<b>Hinweis:</b> Leere nach dem Speichern den Browser-Cache, um die Änderungen zu sehen: <b>Mozilla/Firefox:</b> Shift-Strg-R, <b>Internet Explorer:</b> Strg-F5, <b>Opera:</b> F5, <b>Safari</b>: ?-R, <b>Konqueror:</b> Strg-R.";
 }