MediaWiki:Common.js
aus Kamelopedia, der wüsten Enzyklopädie
Hinweis: Leere nach dem Speichern 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: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
//== hilfsfunktionen ========================================= /* Variablen füllen, damit's im Code etwas übersichtlicher bleibt */ var Seitenname = mw.config.get( 'wgPageName' ); var NamensraumNr = mw.config.get( 'wgNamespaceNumber' ); var Aktion = mw.config.get( 'wgAction' ); var Kamelname = mw.config.get( 'wgUserName' ); /* nochn paar ehemalige globals für Dateihochladen... */ var wgScript = mw.config.get( 'wgScript' ); var wgAjaxUploadDestCheck = mw.config.get( 'wgAjaxUploadDestCheck' ); var wgAjaxLicensePreview = mw.config.get( 'wgAjaxLicensePreview' ); var wgUploadSourceIds = mw.config.get( 'wgUploadSourceIds' ); /* werden hier benutzt die vars */ var wgUserName = mw.config.get( 'wgUserName' ); var wgUserGroups = mw.config.get( 'wgUserGroups' ); var wgTitle = mw.config.get( 'wgTitle' ); var wgIsArticle = mw.config.get( 'wgIsArticle ' ); var wgCanonicalNamespace = mw.config.get( 'wgCanonicalNamespace' ); var wgScriptPath = mw.config.get( 'wgScriptPath' ); /*codeEditor*/ var wgNamespaceNumber = mw.config.get( 'wgNamespaceNumber' ); /* CategoryTree-Extension */ var wgServer = mw.config.get( 'wgServer' ); /* Wikikontrolle */ var stylepath = mw.config.get( 'stylepath' ); /* CSS per ResourceLoader nachladen */ function importCSS(title) { mw.loader.load( wgServer + wgScriptPath + '/index.php?title=' + encodeURIComponent(title) + '&action=raw&ctype=text/css&smaxage=21600&maxage=86400&*', 'text/css', 'true' ); } /* JS per ResourceLoader nachladen */ function importJS(title) { mw.loader.load( wgServer + wgScriptPath + '/index.php?title=' + encodeURIComponent(title) + '&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400&*', 'text/javascript' ); } //== Konstanten =============================================== function CSS(page) { return {type: "CSS", page: page}; } function JS(page) { return {type: "JS", page: page}; } var defaultCSS = CSS(null); var defaultJS = JS(null); /* Zum "Übersetzen" von Sidebar-Einträgen und Menüs bitte das hier verwenden! */ var libTranslate = JS("MediaWiki:Skin/translate.js"); //== Zeug laden =============================================== // für "MediaWiki:Skin/Namensraum:Seitenname.css" defaultCSS verwenden // für "MediaWiki:Skin/Namensraum:Seitenname.js" defaultJS verwenden // für andere Seiten JS("Seite") oder CSS("Seite") verwenden var loadStuff = { // Artikel "Arschkarte": [ CSS("MediaWiki:Skin/Projekt:Ka-Mel-Oh!.css") ], //TODO: mal in die Kartenvorlagen reinflanschen "Artikelbaukasten": [ defaultJS ], "Bewegung": [ defaultJS ], "DIR": [ defaultCSS ], "Gefälle": [ defaultCSS ], "Krumm, schief und wackelig": [ defaultCSS ], "Gelbsucht": [ defaultJS ], "Latein": [ JS("MediaWiki:Skin/pagina_latina.js") ,libTranslate ], "Lorem Ipsum": [ JS("MediaWiki:Skin/pagina_latina.js") ,libTranslate ], "Pseudolink": [ defaultCSS ], "Taschenlampe": [ defaultCSS, defaultJS ], "Wirklich leere Seite": [ defaultCSS ], "Roter Knopf/Gedrückt": [ defaultCSS ], // Kamelopedia "Commons:Kugel": [ defaultCSS, defaultJS ], "Kamelopedia:Kalender": [ defaultCSS ], "Kamelopedia:Harmoniehütte": [ defaultCSS ], "Kamelopedia:Zeitreisemaschine": [ defaultJS, JS("Kamel:J*/lib/async.js"), JS("Kamel:J*/lib/wiki.js") ], // Projekt "Projekt:Ka-Mel-Oh!": [ defaultCSS ], "Projekt:Bürokratenspiel/9. Runde/Organe/Geheimdienst": [ JS("MediaWiki:Skin/Projekt:BS9Geheimdienst.js") ], "Projekt:Adventure/176": [ JS("MediaWiki:Skin/Projekt:Adventure/176.js") ], "Projekt:Adventure/459": [ JS("MediaWiki:Skin/Projekt:Adventure/459.js") ], "Projekt:Panini/Frauenfussballweltmeisterschaft 2015" : [ defaultCSS ], // Forum "Forum:Kamelopedia-Design-Wettbewerb": [ defaultJS ], "Projekt:Adventure 2.0": [ CSS("MediaWiki:Skin/Projekt:Adventure2.css") , JS("MediaWiki:Skin/Projekt:Adventure2/init.js")], "Projekt:Adventure 2.0/Autoren-Handbuch/Scripting-Anleitung": [ defaultCSS ], // Spezial "Spezial:Hochladen": [ defaultCSS, defaultJS ], "Spezial:RatedPages": [ defaultJS ], "Spezial:KamelBox": [ defaultCSS ], "Spezial:Buschtrommel": [JS("MediaWiki:Skin/Trommel.js")], // Frage "Frage:Ich verschenke eine Million Euro, wer sie haben will muss sich nur melden und sagen, warum er oder sie das Geld haben will.": [ defaultJS ], // Echzeit-Letzte-Änderungen //"Kamelopedia:RTRC": [JS("MediaWiki:Skin/Kamelopedia:RTRC.js")], "Kamelopedia:Aktive Seiten": [ defaultJS ], "Kamelopedia:Statistik": [ defaultCSS, defaultJS ], "News:Aktuelle ErregnisseS": [CSS("MediaWiki:Skin/KameloExpress.css")], "": [] // damit oben überall Kommata stehen bleiben können }; // var pageName = [Seitenname.replace(/_/g, " ")]; // var stuffOnThisPage = loadStuff[pageName]; if (stuffOnThisPage == null) stuffOnThisPage = []; for (var i = 0; i < stuffOnThisPage.length; i++) { var item = stuffOnThisPage[i]; if (item.type == "CSS") { if (item.page == null) item.page = "MediaWiki:Skin/"+pageName+".css"; importCSS(item.page); } else if (item.type == "JS") { if (item.page == null) item.page = "MediaWiki:Skin/"+pageName+".js"; importJS(item.page); } } // lade [[Hilfe:Edittools.js]], wenn Seite bearbeitet wird (und neue toolbar aus) // if ((Aktion == 'edit' || Aktion == 'submit') ) { importCSS("MediaWiki:Skin/Edittools.css"); //MW1.17 -> evtl. erst in Hilfe:Edittools.js anderen Krempel per resourceloader nachladen lassen importJS("Hilfe:Edittools.js"); } // Bild-Box-Lizenz-Gedöns für Datei-Seitenbearbeitung // if ((NamensraumNr == 6 ) && (Aktion == 'edit' || Aktion == 'submit')) { importCSS('MediaWiki:Skin/Spezial:Hochladen.css'); importJS('MediaWiki:Skin/Spezial:Hochladen.js'); } // ================================================================== // Schwesterprojekte // ================================================================== // KameloNews, Skin und Script if (NamensraumNr == 108 && (Aktion == 'view' || Aktion == 'submit') && wgTitle != "Aktuelle ErregnisseS"){ importCSS("MediaWiki:Skin/KameloNews.css"); importJS("MediaWiki:Skin/KameloNews.js"); } // Gute Frage, Skin und Script if (NamensraumNr == 114 || NamensraumNr == 115 || (Seitenname == "Spezial:Suche" && location.href.indexOf("Suchwort&ns114=1&fulltext") > 0)) { importCSS("MediaWiki:Skin/Frage.css"); importJS("MediaWiki:Skin/Frage.js"); } // KameloBooks, Skin und Script if (NamensraumNr == 112 || NamensraumNr == 113){ importCSS("MediaWiki:Skin/KameloBooks.css"); importJS("MediaWiki:Skin/KameloBooks.js"); } // Kamelionary, Skin und Script if (NamensraumNr == 106 || NamensraumNr == 107) { importCSS("MediaWiki:Skin/Kamelionary.css"); importJS("MediaWiki:Skin/Kamelionary.js"); } // Kamelomedia Commons, Skin if (NamensraumNr == 110 || NamensraumNr == 111 || Seitenname.indexOf ("Kategorie:Commons:") != -1 || Seitenname.indexOf ("Kategorie:Dateien_nach_Motiv") != -1){ importCSS("MediaWiki:Skin/Commons.css"); } // Dateinamensraum, Skin - und Datei-Tags werden zu Links if ( NamensraumNr == 6 || NamensraumNr == 10) { importCSS("MediaWiki:Skin/Datei.css"); } // Forum, Skin if (NamensraumNr == 102) { importCSS("MediaWiki:Skin/Forum:Kamelopedia.css"); } // Archiv, Skin if (NamensraumNr == 104 || NamensraumNr == 105) { importCSS("MediaWiki:Skin/Archiv.css"); } // ================================================================== // Tag-Redirects if (Seitenname.indexOf ("Kategorie:Commons:") != -1 ){ importJS("Kamel:J*/lib/nulledit.js"); var nulledit_count = 0; function ne_report (text,p) { nulledit_count += p; if(nulledit_count == 0) jQuery("#tag_redirect_info").text("Fertig. Bitte lade die Seite neu und schau nach, ob noch Dateien übrig geblieben sind."); else jQuery("#tag_redirect_info").text(text + " – noch " + nulledit_count + " Nulledits"); } jQuery(document).ready( function () { jQuery("#tag_redirect_go").bind("click",function () { categoryNulledit(Seitenname, ne_report); }); }); } // Adventure 2.0 wieder vernünftig bearbeitbar machen: if (Seitenname.indexOf("Projekt:Adventure_2.0/") == 0) { importCSS("MediaWiki:Skin/Projekt:Adventure2.css") } // Feedback if (NamensraumNr % 2 == 0 && NamensraumNr != 2 && NamensraumNr != 102 && NamensraumNr != 104 && Aktion == "view" ) { //importJS("MediaWiki:Skin/Feedbackknopf.js"); /* Ultrakurzfeedbackdings */ function fb_error_callback () { jQuery('#mw-js-message').html("Bei der Zurückfütterung ist ein Fehler aufgetreten!"); jQuery('#mw-js-message').slideDown('fast'); } jQuery(document).ready(function(){ jQuery("#p-namespaces ul").append("<li id='ca-feedback'><span><a title='Ein kurzes Feedback zu dieser Seite abgeben'>F/b</a></span></li>"); jQuery("body").append("<div id='f_b_background' style='display: none; position:fixed; opacity: 0.5; -moz-opacity: 0.5; width: 100%; height: 100%; top: 0px; left 0px; background-color: black;'> </div>"); jQuery("body").append("<div id='f_b' style='display: none; position:fixed; border: 1px black solid; background: white; left: 50%; top: 50%; width: 340px; height: 240px; padding: 30px; margin-left: -185px; margin-top: -135px;'><h5>Ultrakurzfeedback abgeben</h5><div style='font-size: 80%'>Füttere den Autor zurück: Text oder Bewertung oder beides.</div><div id='fb_preview_frame' style='display:none; font-size: 80%;'><div id='fb_preview_area'></div><div>(In der Vorschau werden die Schlangenlinien noch nicht ersetzt, später auf der Seite schon.)</div></div><form id='fb_form'><textarea style='height:100px;' /><br/><label for='fb_rating'>Kurzbewertung:</label><select name='fb_rating' id='fb_rating'><option value=''>ohne Kurzbewertung</option><option value='0'>0 Höcker –– grottenschlecht</option><option value='1'>1 Höcker –– schwach</option><option value='2'>2 Höcker –– neutrales Mittelfeld</option><option value='3'>3 Höcker –– gut</option><option value='4'>4 Höcker –– sehr gut</option><option value='5'>5 Höcker –– Spitzenbeitrag</option></select><br/><input type='checkbox' id='fb_autosign' name='fb_autosign' checked='checked' style='display:none;'><label for='fb_autosign' style='color:#777;font-size:0.8em;'>Dein Feedback wird automatisch unterschrieben!</label><br/><input type='submit' value='Abschicken' /><input id='fb_preview' type='button' value='Vorschau'><input id='fb_reset' type='reset' value='abbrechen'></form></div>"); jQuery("#fb_reset").click( function () { jQuery("#f_b_background, #f_b").hide(); }); jQuery("#fb_preview").click( function () { jQuery.ajax({ url: "/api.php", type: "POST", data: { action: "parse", text: "\n{{Kurzfeedback|text="+jQuery("#fb_form textarea").val()+(jQuery("#fb_autosign")[0].checked ? " -- ~~"+"~~" : "")+"|r="+jQuery("#fb_form select").val()+"}}", format: "xml" }, success: function (tr) { jQuery("#fb_preview_frame").show(); jQuery("#fb_preview_area").html(jQuery(tr).find("text").text()); jQuery("#f_b").css("height","350px"); jQuery("#f_b").css("margin-top","-190px"); jQuery("#f_b").css("width","540px"); jQuery("#f_b").css("margin-left","-195px"); } }); }); jQuery("#fb_form").submit( function () { var wgFormattedNamespaces = mw.config.get( 'wgFormattedNamespaces' ); var wgNamespaceNumber = mw.config.get( 'wgNamespaceNumber' ); var wgTitle = mw.config.get( 'wgTitle' ); if (jQuery("#fb_form textarea").val()+jQuery("#fb_form select").val() == "") { alert("Eins von beidem, Text oder Bewertung, solltest du schon mindestens ausfüllen!"); return false; } window.fb_data = { url: "/api.php", data: { action: "edit", title: wgFormattedNamespaces[wgNamespaceNumber+1]+":"+wgTitle, summary: "Kurzfeedback", appendtext: "\n{{Kurzfeedback|text="+jQuery("#fb_form textarea").val()+(jQuery("#fb_autosign")[0].checked ? " -- ~~"+"~~" : "")+"|r="+jQuery("#fb_form select").val()+"}}" }, success: function () { jQuery("#f_b_background, #f_b").hide(); jQuery("#ca-feedback").addClass("done"); jQuery('#mw-js-message').html("Die Zurückfütterung war erfolgreich!"); jQuery('#mw-js-message').slideDown('fast'); }, error: fb_error_callback, type: 'POST' }; jQuery.ajax({ cache: false, url: "/api.php", data: { format: "xml", action: "query", prop: "info", intoken: "edit", titles: wgFormattedNamespaces[wgNamespaceNumber+1]+":"+wgTitle }, type: 'GET', success: function(tr) { var token = jQuery(tr).find("api query pages page").attr('edittoken'); fb_data.data.token = token; var section_data = jQuery.ajax({ async: false, url: "/api.php", data: { action: "parse", prop: "sections", page: fb_data.data.title, format: "xml" }, error: fb_error_callback }).responseXML; fb_data.data.section = jQuery(section_data).find('s[line="Kurzfeedback"]').index() + 1; if (fb_data.data.section == 0) { fb_data.data.section = "new"; fb_data.data.text = fb_data.data.appendtext; delete fb_data.data.appendtext; } jQuery.ajax(fb_data); }, error: fb_error_callback }); return false; } ); jQuery("#ca-feedback").click(function () { jQuery("#f_b_background, #f_b").show(); jQuery("#fb_form textarea").focus(); }); }); } // Tausche [[Special:Specialpages]] gegen [[Kamelopedia:Spezialseiten]] jQuery(document).ready(function(){ document.getElementById("t-specialpages").innerHTML = '<a href="' + wgScriptPath +'/index.php/Kamelopedia:Spezialseiten">Spezialitäten</a>'; }); //Gedudel auf [[Aufzug]] und [[Gedudel]] und [[Kamelopedia:WiKa-Sekte]] if (Seitenname == 'Aufzug' || Seitenname == 'Gedudel' || Seitenname == 'Kamelopedia:WiKa-Sekte' ) { document.write('<embed src="' + wgServer +'/images/c/cb/Aufzug.mid" autostart="true" type="audio/midi" loop="true" hidden="true" height="0" width="0">'); } //Gedudel auf [[Mausetot]] if (Seitenname == 'Mausetot' ) { document.write('<embed src="' + wgServer +'/images/a/a3/Fuchs.mid" autostart="true" type="audio/midi" loop="true" hidden="true" height="0" width="0">'); } //[[Popupblocker]] if (Seitenname == 'Popupblocker') { alert("Ihr Popupblocker ist aktiviert"); } //================================================================================ // Ka-Mel-Oh! CSS IMMER nachladen, damit z.B. auch [[Arschkarte]] nicht doof aussieht // oder doch nicht, kostet nämlich auch ressourcen! // importCSS("MediaWiki:Skin/Projekt:Ka-Mel-Oh!.css"); // Der doofe server stürzt dauernd ab, wenn das script da unten läuft ... if (Seitenname == "Kinderporno" || Seitenname == "Server_Error") { //MW1.17+ ? window.onload... window.onload = function() { if (!document.getElementById("ServerError")) return; document.getElementsByTagName("body")[0].style.backgroundColor = "#ffffff"; document.getElementsByTagName("body")[0].style.backgroundImage = "none"; document.getElementsByTagName("body")[0].style.fontSize = "12px"; document.getElementsByTagName("body")[0].style.padding = "10px"; document.getElementsByTagName("body")[0].innerHTML = document.getElementById("ServerError").innerHTML; } } // ================================================================================ // //MW1.18+ ??? -> jQuery-Klapp standardmässig aktiviert (class mw-collapsible) // // Ein- und Ausblenden per Javascript // mit den folgenden Funktionen lässt sich ein div-Konstrukt in ein Einblende-Ausblende-Ding verwandeln // // Variante 1 (Klick irgendwo blendet ein oder aus): // <div class="klapp"> // <div class="klapp_t">Titel im ausgeblendeten Zustand</div> // <div class="klapp_e">Titel im ausgeblendeten Zustand</div> // <div class="klapp_i">Einzublendender Inhalt</div> // </div> // // Variante 2 (ein- und ausblenden nur mit Links): // <div class="klapp_x"> // <div class="klapp_t">Titel im ausgeblendeten Zustand mit <span class="klapp">Einblendelink</span></div> // <div class="klapp_e">Titel im ausgeblendeten Zustand mit <span class="klapp">Ausblendelink</span></div> // <div class="klapp_i">Einzublendender Inhalt</div> // </div> function ausklapp( element ) { var klapp_i = null; var klapp_e = null; var klapp_t = null; for (i=0; i<element.childNodes.length; i++) { if( element.childNodes[i].nodeType == 1 ) { if ( element.childNodes[i].className == "klapp_i" ) klapp_i = element.childNodes[i]; else if ( element.childNodes[i].className == "klapp_t" ) klapp_t = element.childNodes[i]; else if ( element.childNodes[i].className == "klapp_e" ) klapp_e = element.childNodes[i]; } if ( klapp_i && klapp_t && klapp_e ) break; } if( klapp_i.style.display != "none") { klapp_i.style.display = "none"; klapp_e.style.display = "none"; klapp_t.style.display = "block"; } else { klapp_i.style.display = "block"; klapp_e.style.display = "block"; klapp_t.style.display = "none"; } } function getKlappDiv( obj ) { while ( obj && obj.parentNode && obj.className != "klapp_x" ) obj = obj.parentNode; return obj; } // Event-Handler für alle class="klapp"-Objekte zuweisen function makeAusklapp() { // klapp-div-Rahmen var a = document.getElementsByTagName("div"); for ( div=0; div<a.length; div++ ) { if ( a[div].className == "klapp" ) { a[div].onclick = function () { ausklapp(this);} } } // klapp-spans-Rahmen als Link-Ersatz var a = document.getElementsByTagName("span"); for ( span=0; span<a.length; span++ ) { if ( a[span].className == "klapp" ) { a[span].onclick = function () { ausklapp(getKlappDiv( this ));} } } urlKlapp(); } /* * liest aus der URL aus, ob ein bestimmtes Objekt ausgeklappt werden soll. * angegeben werden kann eine oder mehrere Objekt-Id: * index.php?title=Hauptseite&klapp=id1/id2/id3 */ function urlKlapp() { var arg = location.href; var reg = new RegExp(/[?&]klapp=(.*?)($|[?&])/); arg = arg.match(reg); if( arg == null ) return; arg = arg[0].replace(reg,"$1"); if( arg == "" ) return; arg = arg.split("/"); for(var i=0; i<arg.length; i++) { try { ausklapp(document.getElementById(arg[i])); } catch(e) { } } } // Nach dem Laden des Fensters folgendes Ausführen: jQuery(document).ready(makeAusklapp); // ================================================================================ // altes dragobject für die Seiten, wo benutzt, ansonsten raus (alles mit class='jstest' ist dragbar) if (Seitenname == 'Projekt:Gummistiefel' || Seitenname == 'Kamel_Diskussion:AnnaLog/Archiv' || Seitenname == 'Windowspedia' || Seitenname == 'Gut_versteckt' || Seitenname == 'B-Wegung' || Seitenname == 'Wortspiel' || Seitenname == 'Kamel:Atreju/Spielplatz' || Seitenname == 'Kamel:Pille' || Seitenname == 'Bewegliche_Feiertage' || Seitenname == 'Kamel:J*/Ka-Mel-Oh/Testgelände' || Seitenname == 'Fallstudie' || Seitenname == 'Projekt_Diskussion:Gummistiefel') { mw.loader.using( ['jquery.ui.draggable'], function(){ jQuery(document).ready(function(){ jQuery( ".jstest" ).draggable({ stack: ".jstest" }); }); }); } // ================================================================================ // username template /** * Username replace function ([[Vorlage:USERNAME]]) * Inserts user name into <span id="insertusername"></span> * By [[wikia:User:Splarka|Splarka]] */ jQuery(document).ready(function(){ if (typeof(disableUsernameReplace) != 'undefined' && disableUsernameReplace) return; if (!document.getElementById('pt-userpage')) return; var spans = document.getElementsByTagName("span"); for (var i=0; i<spans.length; i++) { var span = spans[i]; if (span.getAttribute('id') == "insertusername") { span.innerHTML = wgUserName; } } }); // ================================================================================ // FDP-Version & Zitierhilfe, nur mal so zum Spass... if (NamensraumNr == 0 || NamensraumNr == 106) { jQuery(document).ready(function(addFDPVersion){ var aZit = document.createElement("a"); aZit.title = "Seite zitieren"; aZit.href = mw.config.get( 'wgServer' ) + "/index.php/" + "Hilfe:Zitierhilfe"; aZit.appendChild(document.createTextNode("Seite zitieren")); var aPDF = document.createElement("a"); aPDF.title = "FDP-Version"; aPDF.href = mw.config.get( 'wgServer' ) + "/index.php/" + "PDF?klapp=pdfgen"; aPDF.appendChild(document.createTextNode("FDP-Version")); var LiZit = document.createElement("li"); LiZit.style.whiteSpace = "nowrap"; LiZit.id = "x-zitieren"; LiZit.appendChild(aZit); var LiPDF = document.createElement("li"); LiPDF.style.whiteSpace = "nowrap"; LiPDF.id = "x-pdf"; LiPDF.appendChild(aPDF); var ToolboxUl = document.getElementById("p-tb").getElementsByTagName("ul"); ToolboxUl[0].appendChild(LiPDF); ToolboxUl[0].appendChild(LiZit); }) }; /* Artikel-Review-Autovervollständigungs-script */ if (NamensraumNr == 1 && Aktion == 'edit' && window.location.href.split('&')[2] == 'articlereview=true') { var hoecker = '~~'; templateCode = '{{Artikeltest\r' + '| Humor/pkt =\r' + '| Humor/txt =\r' + '| Konzept/pkt =\r' + '| Konzept/txt =\r' + '| Formatierung/pkt =\r' + '| Formatierung/txt =\r' + '| Bilder/pkt =\r' + '| Bilder/txt =\r' + '| Gesamt/txt =\r' + '| ' + hoecker + hoecker + '\r' + '}}' window.onload = function() { var originalSource = document.getElementById('wpTextbox1').value; var newSource = originalSource.replace(/\{\{Artikeltest\}\}/g, templateCode); document.getElementById('wpTextbox1').value = newSource; } } // externe links in neuem browser Fenster öffnen (nicht bei interwikis) function externalWindow(){ if ((typeof(disableLinkWindow) != 'undefined' && disableLinkWindow) || (!document.getElementById ('bodyContent'))) { return; } var allinks = document.getElementById('bodyContent').getElementsByTagName('a'); for(var i = 0; i < allinks.length; i++) { if(allinks[i].href.indexOf('' + wgServer +'/') == -1 && allinks[i].parentNode.className.indexOf('noblank') == -1){ allinks[i].target = '_blank'; } } } jQuery(document).ready(externalWindow); //experimenteller HTML5-Player für die Datei-Seite // jQuery(document).ready(function(){ if ((mw.config.get( 'wgCanonicalNamespace' )=="File") && (Aktion == 'view') && (wgTitle.indexOf('.og') != -1) &&(!$.browser.msie)) { var isogg = true; var mtyp = wgTitle.substr((wgTitle.length)-3, 3); var $media = jQuery('#file.fullImageLink:first'); var $mediaLink = $media.find('a'); switch (mtyp) { case "ogg": var $mime = jQuery('<audio controls />').attr('src', $mediaLink.attr('href')).wrap('<div />'); break; case "oga": var $mime = jQuery('<audio controls />').attr('src', $mediaLink.attr('href')).wrap('<div />'); break; case "ogv": var $mime = jQuery('<video controls />').attr('src', $mediaLink.attr('href')).wrap('<div />'); break; default: isogg = false; break; } if (isogg) { var $info = jQuery('<div id="html5info" />').html('Der Player für diese Datei wird nur in oggfreundlichen<br />und HTML5fähigen Browsern angezeigt <a href="' + wgServer + '/index.php/Forum:Video-/_Audio-Player_(aktuelle_Infos_zu_OGG-Dateien)">(Info)</a>.<br />Alternativ die Datei halt herunterladen (Link direkt hier drunter)'); $media.html($mime).append($info); } } }); /* Funktionen zur Zeitsteuerung */ function dateFromServer () { return new Date(jQuery(jQuery(jQuery.ajax({ url: "/api.php", data: {action:"parse", format:"xml", text:"{{#timel: m_d,_Y_H:i:s}}", prop:"text"}, dataType: "xml", async: false, timeout: 300 }).responseXML).find("api parse text").text()).text().replace(/[\s\n]/g, "").replace(/_/g," ")); } function dateFromClient () { return new Date(); } // Zeit vom wahlweise Server oder vom Client holen var now = dateFromClient(); // oben: hohe Priorität, unten: niedrige Priorität // Parameter: aktuelle Zeit als Date Objekt // Rückgabewert: true zurückgeben, um weitere Aktionen zu unterbinden, sonst false // Achtung: Monate werden ab 0 gezählt, Monatstage ab 1 var dateSpecificActions = [ // cAPSLOCK dAY //function (d) { // if ((d.getMonth() == 9 && d.getDate() == 22) || // (d.getMonth() == 5 && d.getDate() == 28) ) // { // importJS("MediaWiki:Skin/dateSpecific/CAPSLOCK.js") // return true; // } // return false; //} ]; for (var i=0; i<dateSpecificActions.length; i++) { if (dateSpecificActions[i](now)) break; } /* Twütter Sönderzeichen-Füx vön Jüttstürnchen */ //MW1.17 (raus, Twitter funzte eh nicht) if (Seitenname=="Spezial:Badtitle" && document.referrer != null && (document.referrer.indexOf("twitter.com") != -1 || document.referrer.indexOf("Forum:Twittern") != -1)) { location.href = unescape(location.href); } // Vorlage:DISPLAYTITLE jQuery(document).ready(function () { var newTitle = jQuery("#title_replacement"); if (newTitle.length && newTitle.length > 0) { jQuery("#firstHeading").text(newTitle.text()); } }); /* Warnung für Seite Kamelopedia:Das größte Schweinekamel */ if (Seitenname == "Kamelopedia:Das_größte_Schweinekamel" && (Aktion == "edit" || Aktion =="submit")) { jQuery(document).ready(function(addSchwein){ var tSchwein = document.createTextNode("Achtung, diese Seite ist purer Quatsch! Niemand hält dich für ein Schweinekamel. Per JavaScript bekommt jedes angemeldete Kamel seinen eigenen Namen auf dieser Seite angezeigt. Also nicht aufregen ;)"); var DivSchwein = document.createElement("div"); DivSchwein.style.fontSize = "130%"; DivSchwein.style.fontWeight = "bold"; DivSchwein.style.backgroundColor = "#FFD800"; DivSchwein.style.padding = "15px"; DivSchwein.appendChild(tSchwein); var warn = document.getElementById("firstHeading"); warn.appendChild(DivSchwein); }); } /* Skripte für autoconfirmed */ /* wegen Latenzen direkt hier rein, statt nachzuladen */ if ( jQuery.inArray( "autoconfirmed", wgUserGroups ) != -1 ) { /* MediaWiki:Seitenempfehlung.js */ /* * Version 2011-05-15.1 sollte halbwegs fehlerfrei funktionieren */ var hwList; // HatWas-Liste var entry; var subpath = '/Empfehlung'; // Name bzw. Pfad der Kamelbau-Unterseiten // Es gibt KEINE Regeln bzgl. der persönlichen Empfehlungen, ein automatischer Daumen taucht jedoch nur auf // Seiten auf, wo es auch potentiell lesenswertes Zeug geben tut // // HINWEIS an ---> DUFO <---- // FINGER WEG VON DEN NAMENSRÄUMEN, wehe, du nimmst da was raus // var hwNS = (typeof(hwNS) != 'undefined') ? hwNS : new Array ("", "Talk", "File", "Kamelionary", "Kamelobooks", "News", "Projekt", "Frage"); // hierhin die Namensräume, wo der Daumen auftauchen soll (Achtung! canonical namespaces!); // Empfehlungsliste auslesen function readHwList(username, action) { jQuery.ajax({ url: mw.config.get( 'wgScript' ), data: { title: "Kamel:" + username + subpath, action: "raw" }, cache: false, // Noch keine Empfehlungs-Seite angelegt error: function() { hwList = new Array(); switch (action) { case "add": adHW(); break; case "remove": removeHW(); break; } }, // Empfehlungs-Seite auslesen success: function(data) { hwList = data.match(/\[\[.*\]\]/g); switch (action) { case "add": adHW(); break; case "remove": removeHW(); break; } } }); } // Seite zur Empfehlungsliste hinzufügen function adHW() { // edit-Token holen jQuery.ajax({ url: '/api.php', data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" }, cache: false, success: function(data) { var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken'); hwList.push(entry); // Aktuelle Seite dazu hwList = sortHW(hwList); // Sortieren // Empfehlungsliste bearbeiten jQuery.ajax({ url: '/api.php', type: 'POST', cache: false, data: { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "+ " + entry, token: edittoken }, success: function(data) { var text = '<p>Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde zu deinen <a href="' + mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> hinzugefügt.</p>'; jQuery('#mw-js-message').html(text); jQuery('#mw-js-message').slideDown('fast'); } }) } }); } function removeHW() { // edit-Token holen jQuery.ajax({ url: '/api.php', data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" }, cache: false, success: function(data) { var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken'); var i = jQuery.inArray(entry, hwList); delete hwList[i]; // Aktuelle Seite wech hwList = sortHW(hwList); // Sortieren // Empfehlungsliste bearbeiten jQuery.ajax({ url: '/api.php', type: 'POST', cache: false, data: { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "- " + entry, token: edittoken }, success: function(data) { var text = '<p>Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde von deinen <a href="' + mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> entfernt.</p>'; jQuery('#mw-js-message').html(text); jQuery('#mw-js-message').slideDown('fast'); } }) } }); } function showHW(username) { /* soll später html-Code für Empfehlungslisten ausspucken */ } // doppelte & leere Einträge entfernen + alphabetisch sortieren function sortHW(list) { var sorted = new Array(); for(var i=0; i<list.length; i++){ for(var j=i+1; j<list.length; j++){ if (list[i] == list[j]) j = ++i; } if (typeof(list[i]) != 'undefined') sorted.push(list[i]); } return sorted.sort(); } // Das ganze starten jQuery(document).ready(function() { //if(typeof(disableGaGA) != 'undefined' && disableGaGA) return; if(jQuery.inArray(mw.config.get( 'wgCanonicalNamespace' ), hwNS) != -1 && Aktion == "view") { entry = (mw.config.get( 'wgCanonicalNamespace' ) == "File") ? "[[:" + Seitenname.replace(/_/g, ' ') + "]]" : "[[" + Seitenname.replace(/_/g, ' ') + "]]"; jQuery('#p-views ul').append('<li class="icon"><span><a href="#"></a></span></li>'); jQuery('#p-views li:last').ajaxComplete(function() { if(jQuery.inArray(entry, hwList) != -1) { jQuery(this).attr('id', 'ca-unhw'); jQuery('#ca-unhw a').html('Entfehlen'); jQuery('#ca-unhw a').attr('title', 'Seite nicht mehr empfehlen'); jQuery('#ca-unhw a').unbind('click'); jQuery('#ca-unhw a').bind('click', function() { readHwList(Kamelname, 'remove') }); } else { jQuery(this).attr('id', 'ca-hw'); jQuery('#ca-hw a').html('Empfehlen'); jQuery('#ca-hw a').attr('title', 'Seite empfehlen'); jQuery('#ca-hw a').unbind('click'); jQuery('#ca-hw a').bind('click', function() { readHwList(Kamelname, 'add') }); } }); readHwList(Kamelname, false); } }) /* MediaWiki:Group-autoconfirmed.js */ /* Hinweis-text auf Empfehlungsseiten der Kamele */ if (NamensraumNr == 2 && Seitenname.indexOf ("/Empfehlung") != -1) { jQuery(document).ready(function(){ var hinweis = 'Einträge auf dieser Liste werden normalerweise über den Empfehlungsdaumen hinzugefügt bzw. entfernt. <br />'; hinweis += '<b>Wenn du diese Liste per Huf bearbeitest, beachte bitte folgendes:</b> <br />'; hinweis += 'Außer einer reinen Liste von Seitenlinks darf auf dieser Seite kein weiterer Zauber (Design, sonstige Texte etc.) stehen, damit die Listen aller Kamele einfacher ausgewertet werden können.<br />'; hinweis += 'Einträge sind ausschließlich im Format <br /><span style="font-family:monospace; font-weight:bold;">* [[Seite]]</span> <br /> vorzunehmen (bei Dateien zusätzlich einen Doppelpunkt vor Datei, also <span style="font-family:monospace; font-weight:bold;">* [[:Datei:Bild.jpg]]</span><br /><br />'; hinweis += '<b>Siehe auch: <a href="/index.php?title=Kamelopedia:Empfehlungssystem" title="Kamelopedia:Empfehlungssystem">Kamelopedia-Empfehlungssystem</a>'; // DIV basteln var DivHinweis = document.createElement("div"); DivHinweis.style.backgroundColor = "#D1ECFF"; DivHinweis.style.fontSize = "13px"; DivHinweis.style.padding = "15px"; DivHinweis.style.marginTop = "30px"; DivHinweis.innerHTML = hinweis; // an ID firstHeading dranflanschen if (Aktion == "edit" || Aktion =="submit") { jQuery('#editform').before(DivHinweis); } else { jQuery('#catlinks').before(DivHinweis); } }) } /* Link zur eigenen Liste oben zm persönlichen Kram packen */ mw.util.addPortletLink('p-personal', 'http://kamelopedia.net/index.php/Spezial:Mypage/Empfehlung', 'Empfehlungen', 'pt-empfehlung', 'meine Empfehlungen', '', '#pt-watchlist') }; // end autoconfirmed