MediaWiki:Gadget-add cats.js
Aus DCPedia
// Alle Kategorien können so eingefügt werden. function add_cat(kat){ if (mw.config.get('wgPageName') == 'Spezial:Hochladen') { var tb = document.getElementById('wpUploadDescription'); } else { var tb = document.editform.wpTextbox1; } var scroll = tb.scrollTop; var output= ''; if (tb.value.indexOf('Kategorie:' + kat + ']]') == -1) { if (mw.config.get('wgPageName') == 'Spezial:Hochladen' && tb.value.indexOf('Kategorie:') == -1) { output += '\n'; } output += '\n[[Kategorie:' + kat + ']]'; } tb.value += output; tb.scrollTop = scroll; } function search_cats(){ var word = document.getElementById('cat_search_word').value; $('#kat_div_2').remove(); add_cats_init(word); } function reset_cats(){ $('#kat_div_2').remove(); add_cats_init(); } function add_cats_init(word){ //word ist der optionale Parameter, der übergeben wird, wenn über search_cats() die Kategorien gefiltert werden. var helptext = 'In das Textfeld oben einfach eine Zeichenfolge eingeben und bestätigen (>Enter< drücken oder >[ok]< klicken).\nEs werden dann nur noch die Kategorien angezeigt, die diese Zeichenfolge enthalten.'; var inhalt = '<div style="background:none; z-index: 50; float: right;" id="cat_search_div">'; inhalt += '<form name="cat_search" id="cat_search" action="javascript:search_cats()">'; inhalt += '<input type="text" size="15" id="cat_search_word" value="(in Kats suchen)" onclick="if(this.value == \'(in Kats suchen)\') this.value = \'\';"></input>'; inhalt += '</form><a href="javascript:document.getElementById(\'cat_search\').submit();">[ok]</a> <a href="javascript:reset_cats()">[reset]</a> <a href="javascript:alert(\'' + helptext + '\')">[hilfe]</a></div>'; inhalt += '<div style="background:none; z-index: 50; height: 200px; width: 200px; overflow: auto; float: right; clear: both;" id="cat_div">'; if (mw.config.get('wgNamespaceNumber') == 6 || mw.config.get('wgPageName') == 'Spezial:Hochladen') { inhalt += '<b>Typkategorien:</b><br />' + '<i>Für Bilder:</i><br />' + '<a href="javascript:add_cat(\'Datei:Animation\')">Animation</a><br />' + '<a href="javascript:add_cat(\'Datei:Foto\')">Foto</a><br />' + '<a href="javascript:add_cat(\'Datei:Fotomontage\')">Fotomontage</a><br />' + '<a href="javascript:add_cat(\'Datei:Grafik\')">Grafik</a><br />' + '<a href="javascript:add_cat(\'Datei:Screenshot\')">Screenshot</a><br />' + '<a href="javascript:add_cat(\'Datei:Zeichnung\')">Zeichnung</a><br />' + '<i>Für Audiodateien:</i><br />' + '<a href="javascript:add_cat(\'Datei:Gesprochene Artikel\')">Gesprochene Artikel</a><br />' + '<a href="javascript:add_cat(\'Datei:Musikstück\')">Musikstück</a><br />' + '<a href="javascript:add_cat(\'Datei:Sprache\')">Sprache</a><br /><br />'; } inhalt += '<b>Kategorien einfügen:</b><br />'; var kategorien = new Array('Superheld', 'Superschurke', 'Superhelden-Team', 'Richtiger Name', 'Männlich', 'Weiblich', 'Superschurken-Team', 'Ehapa', 'Hethke', 'Amerika', 'Amerikaner', 'Carlsen', 'Dino', 'Panini', 'Nachname', 'Helden in den Kontinenten', 'Europa', 'Afrika', 'Australien', 'Nord-Amerika', 'Süd-Amerika', 'Planeten').sort(compare_strings); if (mw.config.get('wgNamespaceNumber') == 6 || mw.config.get('wgPageName') == 'Spezial:Hochladen') { kategorien = new Array('Datei:Icon', ).sort(compare_strings); } if(typeof word != 'string'){ // Eine Schleife, wenn noch keine Suchanfrage eingegeben wurde for(var i=0; kat=kategorien[i]; i++){ if( (kat.charAt(0) != letzter_buchstabe) && (kat.charAt(0) != '!') ){ inhalt += '<span style="float:right; font-size: 15pt;">' + kat.charAt(0) + '</span><hr>'; } inhalt += '<a href="javascript:add_cat(\'' + kat + '\')">' + kat.replace(/^Datei:/, '') + '</a><br />' var letzter_buchstabe = kat.charAt(0); } } else{ // und eine für den anderen Fall for(var i=0; kat=kategorien[i]; i++){ var katL = kat.toLowerCase(); var wordL = word.toLowerCase(); if(katL.indexOf(wordL) == -1) continue; if( (kat.charAt(0) != letzter_buchstabe) && (kat.charAt(0) != '!') ){ inhalt += '<span style="float:right; font-size: 15pt;">' + kat.charAt(0) + '</span><hr>'; } inhalt += '<a href="javascript:add_cat(\'' + kat + '\')">' + kat.replace(/^Datei:/, '') + '</a><br />' var letzter_buchstabe = kat.charAt(0); } } var kat_div_2 = document.createElement('div'); kat_div_2.id = 'kat_div_2'; kat_div_2.style.backgroundColor = 'white'; kat_div_2.style.cssFloat = 'right'; kat_div_2.innerHTML += inhalt; if (mw.config.get('wgPageName') == 'Spezial:Hochladen') { $('#mw-htmlform-description').before(kat_div_2); } else { $('.editOptions').after(kat_div_2); } $('#kat_div_2').css('margin-left', '15px').css('margin-bottom', '15px'); } function compare_strings(a, b) { a = a.toLowerCase(); a = a.replace("ä", "a"); a = a.replace("ö", "o"); a = a.replace("ü", "u"); a = a.replace("ß", "s"); b = b.toLowerCase(); b = b.replace("ä", "a"); b = b.replace("ö", "o"); b = b.replace("ü", "u"); b = b.replace("ß", "s"); return (a == b)? 0: (a > b)? 1: -1; } // Beim Bearbeiten einer Seite ... if ((global.isEditing === true && $.inArray(mw.config.get('wgNamespaceNumber'), [0, 6, 102, 106]) != -1) || mw.config.get('wgPageName') == 'Spezial:Hochladen') { // ... wird, wenn die Seite fertig geladen ist, der Container mit den Kategorien eingefügt. addOnload(add_cats_init); } //</syntaxhighlight>