MediaWiki:Common.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
WiMu (Diskussion | Beiträge) K (NEU! (Hoffentlich funktioniert's): CSS per Vorlage einbinden ...) |
J* (Diskussion | Beiträge) (auch die beiden teile per using nachladen) |
||
| (357 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | /* | + | //== 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 | ||
Aktuelle Version vom 22. Juli 2015, 23:12 Uhr
//== 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