Hilfe:Edittools.js

aus Kamelopedia, der wüsten Enzyklopädie
Version vom 3. Juli 2009, 23:17 Uhr von Kameloid (Diskussion | Beiträge) (Sicherheitshalber, man weiss ja nie)
Zur Navigation springen Zur Suche springen

//


//Diese Seite wird von [[MediaWiki:Monobook.js]] aus geladen, sobald eine Seite bearbeitet wird

/** fügt Klick-Kat (kat) am Ende des Textes im Editierfensters ein */ 
function add_cat(kat) {
    document.editform.wpTextbox1.value += '\n[[Kategorie:' + kat + ']]';
}
//-----------Holt aus einer Vorlage den Text zwischen dem ersten "<pre>{{" und "}}" raus 
//-----------und patched das ins Eingabefeld  
function Get_Page(Page){
	var temp = new Ajax.Request(wgScript,
		{method:'get', parameters:'title='+Page+'&action=raw&templates=expand', onComplete: function(req){Ajax_insert(req.responseText);} }
	);
}
function Ajax_insert(Text){
	var x=Text.split("<pre>");
	if (x[1]){
		var y = x[1].replace(/.*\s*{{/,"").split("}}");
		insertVorlage('{{', '}}', y[0]);
	}else{
		alert("kein verwertbares Objekt. <pre> vorhanden?")
	}
}
//------------------------------------------------------------------------------------

/** bastelt die Edittools-Box */
addOnloadHook(function() {
    var kategorieNamen = [
        "Abkürzung",
        "Adel",
        "Ägypten",
        "Aliens",
        "Alkohol",
        "Amphibien",
        "Anatomie",
        "Architektur",
        "Artikel, die wo so aussehen, wie die Dinge, die sie beschreiben tun",
        "Artikel und Kamele mit eigenem Skin",
        "Astronomie",
        "Aua",
        "Ausgestorben",
        "Auto",
        "Bahn",
        "Bären",
        "Baum",
        "Bayern",
        "Beruf",
        "Bildung",
        "Biographie",
        "Biologie",
        "Böses Kamel",
        "Botanik",
        "Brauchtum",
        "Chamäleons",
        "Chemie",
        "China",
        "Computer",
        "Denkmal",
        "Desserts & Salate",
        "Deutschland",
        "Dichter & Denker",
        "Dickhäuter",
        "Dienstleistung",
        "Drogen",
        "Eier",
        "Elektrotechnik",
        "Entdecker",
        "Enten",
        "Erfinder",
        "Eulen",
        "Fabelwesen",
        "Fäkalien",
        "Farben",
        "Fastfood",
        "Feminismus",
        "Film",
        "Fische",
        "Fleisch",
        "Fluss",
        "Freizeit",
        "Frisuren",
        "Gastronomie",
        "Gebäck",
        "Gebirge",
        "Geheim",
        "Geheimdienst",
        "Geistlicher",
        "Genie & Wahnsinn",
        "Geographie",
        "Geologie",
        "Geschichte",
        "Gesellschaft",
        "Getränk",
        "Gewässer",
        "Gilden",
        "Google",
        "Götter",
        "Grammatik",
        "Gutes Kamel",
        "Gutmenschentum",
        "Häh?",
        "Haushaltsgeräte",
        "Herdenverhalten",
        "Helden",
        "Hunde",
        "Hygiene",
        "Industrie",
        "Insekten",
        "Inseln",
        "Jahrestag",
        "Japan",
        "Kalender",
        "Kamele",
        "Kamelkunde",
        "Kamelopedia",
        "Kasusativ",
        "Katzen",
        "Kleidung",
        "Komische Kamele",
        "Komische Typen",
        "Kommunikation",
        "Kosmetik",
        "Krabbeltiere",
        "Krankheiten",
        "Krieg",
        "Kulinarik",
        "Kulturgut",
        "Kunst",
        "Kunstrichtung",
        "Künstler",
        "Land & Leute",
        "Landschaften",
        "Landwirtschaft",
        "Lied",
        "Listen",
        "Literatur",
        "Löcher",
        "Logik",
        "Luft & Raumfahrt",
        "Lyrik",
        "Märchen",
        "Maschinen",
        "Maßeinheit",
        "Mathematik",
        "Mechanik",
        "Medien",
        "Medizin",
        "Microsoft",
        "Mikroben",
        "Milch & Käse",
        "Mischwesen",
        "Möbel",
        "Mode",
        "Musik",
        "Musiker",
        "Musikinstrument",
        "Musikrichtungen",
        "Mythologie",
        "Nachrichten",
        "Nagetiere",
        "Name",
        "Natur",
        "Nudeln & Pasta",
        "Oberflächliches",
        "Obst & Gemüse",
        "Optik & Lichttechnik",
        "Organisationen",
        "Ort",
        "Pferde & Esel",
        "Philosophie",
        "Physik",
        "Pilze",
        "Planeten",
        "Plem-Plem",
        "Politik",
        "Politiker",
        "Projekt",
        "Psychologie",
        "Pyramiden",
        "Raubtier",
        "Re(h)kursion",
        "Recht",
        "Religion",
        "Rezepte",
        "Rindviecher",
        "Rohstoffe",
        "Sammelartikel",
        "Saurier",
        "Schach",
        "Schafe",
        "Schauspieler & Entertainer",
        "ScheibchenWelt",
        "Schifffahrt",
        "Schlangen",
        "Schnecken",
        "Schöner Wohnen",
        "Schule",
        "Schweine",
        "Schweiz",
        "Sexualität",
        "Soziologie",
        "Spezies",
        "Spiel",
        "Sport",
        "Sportler",
        "Sprache",
        "Sprachwissenschaft",
        "Staat",
        "Stadt",
        "Stuchbabe",
        "Süßigkeiten",
        "Suppen & Soßen",
        "Technik",
        "Theorie",
        "Tiger",
        "Tisch",
        "Touristik",
        "Uhren",
        "Umfrage",
        "Unternehmer",
        "Unterwasser",
        "Verkehr",
        "Verkehrsmittel",
        "Verpackung",
        "Verschwörungstheorien",
        "Verwechslungen",
        "Vögel",
        "Waffen",
        "Wale",
        "Wärmetechnik",
        "Werbung",
        "Werkzeuge & Geräte",
        "Wetter",
        "Wikipedia",
        "Wirtschaft",
        "Wissenschaft",
        "Wissenschaftler",
        "Wortsinn & Tiefsinn",
        "WTF-8",
        "Würmer",
        "Wüste",
        "Wurst",
        "Zahl",
        "Zauberei",
        "Zeit",
        "Zeitgeschehen",
        "Zum Kotzen",
        "Zusammenrottung"
    ];
        
    function kategorienHTML() {
        var html    = '<span id="clickein"><a href="javascript:einaus(\'kats\',\'clickein\',\'clickaus\')">[anzeigen]</a></span><span id="clickaus" style="Display:none;"><a href="javascript:einaus(\'kats\',\'clickein\',\'clickaus\')">[verbergen]</a></span><span id ="kats" style="display:none;"><br />';
        
        for (var i=0; i<kategorieNamen.length; i++ ) {
            var kat = kategorieNamen[i];
            html += '<a href="javascript:add_cat(\'' + kat + '\')">· ' + kat + '</a><br />';
        }
        
        html += '</span><br /><br />';
        return html;
    }
    
    function sonderzeichenHTML() {
        var html = '<b>Sonderzeichen:</b><br />';
        html += '<span id="sonderein"><a href="javascript:einaus(\'sonder\',\'sonderein\',\'sonderaus\')">[anzeigen]</a></span><span id="sonderaus" style="Display:none;"><a href="javascript:einaus(\'sonder\',\'sonderein\',\'sonderaus\')">[verbergen]</a></span><span id ="sonder" style="display:none;font-family:monospace;font-size:9pt;line-height:1.6em;"><br />';

        // siehe auch addButton() in wikibits.js
        function knopf(tagOpen, tagClose, sampleText, displayedText) {
            // sampleText wird eingefügt falls man nichts markiert hat (z.Z. überall leer)
            html += "<a href=\"javascript:insertTags";
            html += "('"+tagOpen+"','"+tagClose+"','"+sampleText+"');\">";
            html += displayedText;
            html += "</a> ";
        }
        
        function zeichen(s) { knopf(s,'','', s); }
        function klammer(tagOpen, tagClose) { knopf(tagOpen, tagClose,'', tagOpen+tagClose); }
        function trenn() { html += '<br />'; }
        
        zeichen('Ä');
        zeichen('ä');
        zeichen('Ö');
        zeichen('ö');
        zeichen('Ü');
        zeichen('ü');
        trenn();
        zeichen('ß');
        klammer('„','“');
        zeichen('’');
        klammer('‚','‘');
        zeichen('–');
        trenn();
        klammer('«','»');
        zeichen('°');
        zeichen('′');
        zeichen('″');
        trenn();
        zeichen('…');
        zeichen('€');
        zeichen('†');
        zeichen('§');
        zeichen('™');
        zeichen('•');
        trenn();
        zeichen('·');
        zeichen('×');
        zeichen('÷');
        zeichen('±');
        zeichen('−');
        zeichen('‰');
        trenn();
        zeichen('²');
        zeichen('³');
        zeichen('½');
        zeichen('¼');
        zeichen('¾');
        zeichen('‣');
        trenn();
        zeichen('≈');
        zeichen('≠');
        zeichen('≙');
        zeichen('≤');
        zeichen('≥');
        zeichen('∑');
        trenn();
        zeichen('→');
        zeichen('←');
        zeichen('↔');
        zeichen('⇝');
        zeichen('⇒');
        zeichen('⇔');
        trenn();
        zeichen('☛');
        zeichen('†');
        zeichen('☠');
        zeichen('☢');
        zeichen('☣');
        zeichen('☭');
        trenn();
        zeichen('ſ');
        zeichen('Œ');
        zeichen('œ');
        zeichen('Ç');
        zeichen('ç');
        trenn();
        zeichen('İ');
        zeichen('ı');
        zeichen('Ğ');
        zeichen('ğ');
        zeichen('Ş');
        zeichen('ş');
        trenn();
        klammer('[[',']]');
        zeichen('|');
        zeichen('¦');
        zeichen('&nbsp;');
        trenn();
        klammer('{{','}}');
        zeichen('~~~~');
        
        html += '</span><br /><br />';
        return html;
    }
 //------------------------------------------------------------------

   var VorlagenNamen = [
	"°Hinweise",
	"siehe°s",
	"siehe auch°sa",
	"besuche bitte°bb",
	"siehe vielleicht°sv",
	"Lies mal°lm",
	"siehe besser°sb",
	"Siehe dazu lieber°sl",
	"negativ beeinflussen°nb",
	"Dann geh doch°gd",
	"siehe nicht°sn2",
	"Siehe besser nicht°sn",
	"auf gar keinen Fall°sk",
	"siehe eben nicht°sn",
	"Hier wartet man°hwm",
	"nichts zu tun mit°nt",
	"Vergleiche mit°vg",
	"verwechseln mit°zv",
	"Nicht zu verwechseln°nv",
	"Tut nichts zur Sache°st",
	"WWW°sw",
	"siehe Kamelionary°sy",

	"°Auszeichnungen",
	"GaGAWahl",
	"GanzGut",
	"GanzGut2",
	"GanzGut3",
	"Hw",
	"Exzellent",
	"Wahl°Wahl | Start = ~~~~~ | Stimmen =<br><!--Ab hier Stimmen abgeben--><br><br><!--Aber nur bis hierher-----><br>",
	"Wahlende",
	"Geschmiedet",

	"°Qualitätssicherung",
	"Trash",
	"Begraben",
	"Überarbeiten",
	"Humorantrag",
	"Relevanz",
	"Kompatibel",
	"Privatkram",
	"Weltbild",
	"Kuhdorf",
	"Dorftrottel",
	"Schlechtschreibung",
	"Glossar",
	"Urv",

	"°Ab da wirds nett",
	"Stub",
	"Gleicht",
	"Nicht versenken",
	"Schizophren",
	"Was",
	"Text fehlt°Text",
	"Mager",

	"°Praktisches",
	"Bügeln",
	"Fortsetzung",
	"Schon gewusst",
	"GaGA Teaser°GaGATeaser<br>| Kopfzeile = Schlagzeile<br>| Bild = Bildname ohne "Bild:"<br>| Grösse = Bildbreite ohne "px"<br>| Bildausrichtung = right oder left<br>| Text = Teasertext<br>| Fußzeile = Weitere...<br>| Bildunterschrift = <br>",
	"Dieser Artikel",
	"Schmiede",
	"Untot",
	"Nix kapiche",
	"BegriffsklärungWP",
	"WPTitel",
	"Kamelionary°Load°Vorlage:Kamelionary/preload",

	"°Für Bilder",
	"img°img<br>| Bildname (ohne Bild:)<br>| alt =<br>| name =<br>| title = Tooltip<br>| link =<br>| width =<br>| height =<br>",
	"Drexxzeuch",
	"NichtGNU",
	"Wiki doof",
	"TempBild",
	"ROSTklärung°ROSTklärung|~~~",

	"°Listen",
	"Listenartikel",
	"TOC",

	"°Andere Welt",
	"Gesungene Kamelopedia",
	"Tourismus",

	"°Kamelbox positiv",
	"Moin",
	"Glückwunsch",
	"Glückwunsch2",
	"Hallo",
	"Keks",
	"Preis",
	"Hinweise",
	"DankeKAT",
	"Lesezirkelwerbung",
	"Pate",
	"Patenkind",
	"Patenkind?",

	"°Kamelbox negativ",
	"Artikelschwemme",
	"Vorschau", 
	"Urlaub",
	"Vermisst",
	"Rüge",
	"Kacka",
	"Gangsta",
	"Plonk",
	"URV-Mahnung",
	"Versiegelt",

	"°Artikelschmuck",
	"Begriffsklärung",
	"Begriffsklärung2",
	"Begriffsklärung3",
	"BegriffsklärungVoll",
	"BegriffsklärungWP",
	"Begriffsverzerrung",
	"Cool",
	"Elektrohinweis",
	"Gesichtet",
	"Gesundheitshinweis",
	"Kotzen",
	"Merkelsatz",
	"Merksatz",
	"Navbox",
	"Ref°Ref|1",
	"Note°Note|1|Norddeutsches Amtsblatt",
	"Rechtshinweis",
	"Religionshinweis",
	"Scherz",
	"Selbstlöschung",
	"Spoiler",
	"Systematik°Load°Vorlage:Systematik",
	"Systematik Film°Load°Vorlage:Systematik_Film",
	"Tipp",
	"Topsecret",
	"Traurig",
	"Vorlagenfrei",
	"Vorlagenwahn",
	"Warnung°Warnung|Grund",
	"Wikipedia",
	"Zitat°Zitat|Zitattext|Zitierter|Thema",

	"°Artikel-Navis",
	"Alphabet",
	"Europa",
	"Farben",
	"Kapst",
	"Klassiker",
	"Kontinente",
	"Mammon",
	"PSE",
	"PSEBIG",
	"Partei",
	"Pronomen",
	"Sinn",
	"Umwelt",
	"WOMO",
	"Werbeblock",
	"Zahlen",
	"Zahlenstrahl"
    ];

    function add_Templ(T) {
	var Teil = T.split("°");

	if (Teil[0]){
		var html = "<a href=\"javascript:insertVorlage('\{\{','\}\}','";
		if (Teil[1]){
			if (Teil[1]=="Load"){
				var html = "<a href=\"javascript:Get_Page('" + Teil[2] + "');\">"
			}else{
				var html = "<a href=\"javascript:insertVorlage('\{\{','\}\}','" + Teil[1] + "');\">"
			}
		}else{
			var html = "<a href=\"javascript:insertVorlage('\{\{','\}\}','" + Teil[0] + "');\">"
		}
		html +="<span style=\"white-space:nowrap;\">" + Teil[0] + "</span></a>";
	}else{
		var html = "<br /><span style=\"background-color:NavajoWhite;white-space:nowrap;\">"+Teil[1]+"</span>";
	}
        return html;
    }


    function VorlagenHTML() {
        var html = '<b>Vorlagen:</b><br />';
        html += '<span id="Templein"><a href="javascript:einaus(\'Templ\',\'Templein\',\'Templaus\')">[anzeigen]</a></span><span id="Templaus" style="Display:none;"><a href="javascript:einaus(\'Templ\',\'Templein\',\'Templaus\')">[verbergen]</a></span><span id ="Templ" style="display:none;">';

        for (var i=0; i<VorlagenNamen.length; i++ ) {
            html += add_Templ(VorlagenNamen[i]) + "<br />";
        }
        
        html += '</span><br /><br />';
        return html;
    }
//-------------------------------------------------------------------------------
    
    var inhalt = '<b>Klick-Kategorien:</b> <a href="/index.php/Hilfe:Edittools" target="_blank" title="Hilfe (in neuem Fenster)"><sup>?</sup></a><br />';
    
    inhalt  += kategorienHTML();
    inhalt  += "<br /><br />";
    inhalt  += sonderzeichenHTML();
    inhalt  += "<br /><br />";
    inhalt  += VorlagenHTML();
    inhalt  += "<br /><br />";
        
    var kat_div_2 = document.createElement('div');
    kat_div_2.id = 'kat_div_2';
    kat_div_2.innerHTML += inhalt;
    document.getElementById('editform').insertBefore(kat_div_2, document.getElementById('editpage-copywarn'));
    
    // Leerzeilen am Ende des Artikeltextes entfernen
    document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(/\s+$/, "");
});

//----------------------------------------------------------------------------
//Brauche ich wegen NL-Problem bei der Paramter-Übergabe für Vorlagen:
//selText = sampleText.replace(/<br>/g,"\n");
	function insertVorlage(tagOpen, tagClose, sampleText) {
		var txtarea;
		if (document.editform) {
			txtarea = document.editform.wpTextbox1;
		} else {
			// some alternate form? take the first one we can find
			var areas = document.getElementsByTagName('textarea');
			txtarea = areas[0];
		}
		var selText, isSample = false;

		if (document.selection  && document.selection.createRange) { // IE/Opera

			//save window scroll position
			if (document.documentElement && document.documentElement.scrollTop){
				var winScroll = document.documentElement.scrollTop;
			}else if (document.body){
				var winScroll = document.body.scrollTop;
			}
			//get current selection  
			txtarea.focus();
			var range = document.selection.createRange();
			selText = range.text;
			//insert tags
			selText = sampleText.replace(/<br>/g,"\n");
			range.text = tagOpen + selText + tagClose;
			//mark sample text as selected
			if (range.moveStart) {
				if (window.opera){tagClose = tagClose.replace(/\n/g,'');}
				range.moveStart('character', - tagClose.length); 
				range.moveEnd('character', - tagClose.length); 
			}
			range.select();   
			//restore window scroll position
			if (document.documentElement && document.documentElement.scrollTop){
				document.documentElement.scrollTop = winScroll;
			}else if (document.body){
				document.body.scrollTop = winScroll;
			}
		} else if (txtarea.selectionStart || txtarea.selectionStart == '0') { // Mozilla

			//save textarea scroll position
			var textScroll = txtarea.scrollTop;
			//get current selection
			txtarea.focus();
			var startPos = txtarea.selectionStart;
			var endPos = txtarea.selectionEnd;
			selText = txtarea.value.substring(startPos, endPos);
			//insert tags
			selText = sampleText.replace(/<br>/g,"\n");
			txtarea.value = txtarea.value.substring(0, startPos) + tagOpen + selText + tagClose	+ txtarea.value.substring(endPos, txtarea.value.length);
			//set new selection
			txtarea.selectionStart = startPos + tagOpen.length + selText.length;
			txtarea.selectionEnd = startPos + tagOpen.length + selText.length;
			//restore textarea scroll position
			txtarea.scrollTop = textScroll;
		} 

	}

//