MediaWiki:Common.js: Unterschied zwischen den Versionen
aus Kamelopedia, der wüsten Enzyklopädie
(das war imho käse, mal probieren) |
K (Nein, da nicht...) |
||
(Eine dazwischenliegende Version von einem Kamel wird nicht angezeigt) | |||
Zeile 132: | Zeile 132: | ||
if ((wgNamespaceNumber != 6 ) && (wgAction == 'edit' || wgAction == 'submit')) { | if ((wgNamespaceNumber != 6 ) && (wgAction == 'edit' || wgAction == 'submit')) { | ||
addCSS("MediaWiki:Skin/Edittools.css"); | addCSS("MediaWiki:Skin/Edittools.css"); | ||
+ | // benötigt auch jQuery (Klick-Vorlagen) | ||
+ | addJQuery(); | ||
addJS("Hilfe:Edittools.js"); | addJS("Hilfe:Edittools.js"); | ||
} | } |
Version vom 9. Oktober 2010, 01:26 Uhr
//== hilfsfunktionen ========================================= /* CSS einbinden */ function addCSS(title) { document.write( '<style type="text/css">/*<![CDATA[*/ @import "/index.php?title=' + encodeURIComponent(title) + '&action=raw&ctype=text/css"; /*]]>*/</style>'); } /* JS einbinden */ function addJS(title) { document.write( '<script type="text/javascript" src="/index.php?title=' + encodeURIComponent(title) + '&action=raw&ctype=text/javascript"></script>'); } /* jQuery einbinden falls nötig */ function addJQuery() { if (!window.jQuery) document.write('<script type="text/javascript" src="/skins/common/jquery.js"></script>'); } // Zumindest während der Testphase sollte man CSS und JS auch später nachladen können: addOnloadHook( function () { /* CSS-Funktion ersetzen */ addCSS = function(title) { var s = document.createElement("LINK"); s.rel = "stylesheet"; s.type = "text/css"; s.href = wgScript + "?title=" + encodeURIComponent(title) + "&action=raw&ctype=text/css"; document.body.appendChild(s); } /* JS-Funktion ersetzen */ addJS = function(title) { var s = document.createElement("SCRIPT"); s.type = "text/javascript"; s.src = wgScript + "?title=" + encodeURIComponent(title) + "&action=raw&ctype=text/javascript"; document.body.appendChild(s); } }); //== Konstanten =============================================== function CSS(page) { return {type: "CSS", page: page}; } function JS(page) { return {type: "JS", page: page}; } function SPECIAL(key) { return {type: "SPECIAL", key: key}; } var defaultCSS = CSS(null); var defaultJS = JS(null); var libPrototype = JS("MediaWiki:Prototype.js"); var libJQuery = SPECIAL("jQuery"); 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 "Artikelbaukasten": [ defaultJS, libJQuery ], "Bewegung": [ defaultJS ], "Gelbsucht": [ defaultJS ], "Latein": [ defaultJS, libJQuery, libTranslate ], "Pseudolink": [ defaultCSS ], "Wirklich leere Seite": [ defaultCSS ], // Kamelopedia "Kamelopedia:Bildsuche": [ defaultCSS, defaultJS, libPrototype ], "Kamelopedia:Chat": [ JS("Hilfe:Javachat.js") ], // Spezial "Spezial:Hochladen": [ defaultCSS, defaultJS, libJQuery ], "Spezial:RatedPages": [ defaultJS, libJQuery ], "": [] // damit oben überall Kommata stehen bleiben können }; var pageName = [wgPageName.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"; addCSS(item.page); } else if (item.type == "JS") { if (item.page == null) item.page = "MediaWiki:Skin/"+pageName+".js"; addJS(item.page); } else if (item.type == "SPECIAL" && item.key == "jQuery") { addJQuery(); } } //================================================================================ // Bild-Box-Lizenz-Gedöns für Datei-Seitenbearbeitung if ((wgNamespaceNumber == 6 ) && (wgAction == 'edit' || wgAction == 'submit')) { addCSS("MediaWiki:Skin/Spezial:Hochladen.css"); // benötigt auch jQuery addJQuery(); addJS("MediaWiki:Skin/Spezial:Hochladen.js"); } // lade [[Hilfe:Edittools.js]], wenn Seite bearbeitet wird (und neue toolbar aus) //if ((wgNamespaceNumber != 6 ) && (wgAction == 'edit' || wgAction == 'submit') && (wgWikiEditorEnabledModules.toolbar == false)) { if ((wgNamespaceNumber != 6 ) && (wgAction == 'edit' || wgAction == 'submit')) { addCSS("MediaWiki:Skin/Edittools.css"); // benötigt auch jQuery (Klick-Vorlagen) addJQuery(); addJS("Hilfe:Edittools.js"); } // Tausche [[Special:Specialpages]] gegen [[Kamelopedia:Spezialseiten]] addOnloadHook(function() { document.getElementById("t-specialpages").innerHTML = '<a href="/index.php/Kamelopedia:Spezialseiten">Spezialitäten</a>'; }); //Gedudel auf [[Aufzug]] und [[Gedudel]] und [[WiKa-Sekte]] if (wgPageName == 'Aufzug' || wgPageName == 'Gedudel' || wgPageName == 'WiKa-Sekte' ) { document.write('<embed src="http://kamelopedia.mormo.org/images/c/cb/Aufzug.mid" autostart="true" type="audio/midi" loop="true" hidden="true" height="0" width="0">'); } //Gedudel auf [[Mausetot]] if (wgPageName == 'Mausetot' ) { document.write('<embed src="http://kamelopedia.mormo.org/images/a/a3/Fuchs.mid" autostart="true" type="audio/midi" loop="true" hidden="true" height="0" width="0">'); } //[[Popupblocker]] if (wgPageName == 'Popupblocker') { alert("Ihr Popupblocker ist aktiviert"); } // Bilder bekommen einen "ähnliche Bilder"-Link und auch die Tagwolke if ( wgNamespaceNumber == 6 || wgPageName == "Kamelopedia:Bildtagwolke") addJS("MediaWiki:Skin/Kamelopedia:Bildsuche/bild.js"); // Skin für Forum if (wgNamespaceNumber == 102) { addCSS("MediaWiki:Skin/Forum.css"); } // Skin für Archiv if (wgNamespaceNumber == 104 || wgNamespaceNumber == 105) { addCSS("MediaWiki:Skin/Archiv.css"); } // Skin und script für Kamelionary if (wgNamespaceNumber == 106 || wgNamespaceNumber == 107) { addCSS("MediaWiki:Skin/Kamelionary.css"); addJS("MediaWiki:Prototype.js"); addJS("MediaWiki:Skin/Kamelionary.js"); } // Der doofe server stürzt dauernd ab, wenn das script da unten läuft ... if (wgPageName == "Kinderporno" || wgPageName == "Server_Error") { 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; } } // ================================================================================ // 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" ) { //Leider nicht IE-Kompatibel: //var f = function () { ausklapp(this) }; //addEvent( a[div], "click", f , false ); //stattdessen: 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: addOnloadHook(makeAusklapp); // ================================================================================ // altes dragobject für die Seiten, wo benutzt, ansonsten raus (alles mit class='jstest' ist dragbar) if (wgPageName == 'Projekt:Gummistiefel' || wgPageName == 'Kamel_Diskussion:AnnaLog/Archiv' || wgPageName == 'Windowspedia' || wgPageName == 'Gut_versteckt' || wgPageName == 'B-Wegung' || wgPageName == 'Wortspiel' || wgPageName == 'Kamel:Atreju/Spielplatz' || wgPageName == 'Kamel:Pille' || wgPageName == 'Projekt:Bewegliche_Feiertage' || wgPageName == 'Kamel:J*/Ka-Mel-Oh/Testgelände' || wgPageName == 'Projekt_Diskussion:Gummistiefel') { addJS("MediaWiki:Skin/Alt_dragobject.js"); } // ================================================================================ // username template /** * Username replace function ([[Vorlage:USERNAME]]) * Inserts user name into <span id="insertusername"></span> * By [[wikia:User:Splarka|Splarka]] */ addOnloadHook(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 (wgNamespaceNumber == 0 || wgNamespaceNumber == 106) { addOnloadHook(function addFDPVersion(){ var aZit = document.createElement("a"); aZit.title = "Seite zitieren"; aZit.href = wgServer + "/index.php/" + "Hilfe:Zitierhilfe"; aZit.appendChild(document.createTextNode("Seite zitieren")); var aPDF = document.createElement("a"); aPDF.title = "FDP-Version"; aPDF.href = 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); }) }; // ================================================================================ // sitenotice // Die sitenotice per Klick verstecken (wenn eine wegklick-notice vorhanden) var siteNoticeTs; // DPL-Timestamp des letzten Edits function hideSitenotice() { if (document.getElementById("siteNoticeSub")) { if (document.getElementById("siteNoticeTime") != null) { siteNoticeTs = escape( document.getElementById("siteNoticeTime").innerHTML ); } if (document.cookie.search(new RegExp("dontshowsitenotice="+siteNoticeTs) ) != -1) { document.getElementById("siteNoticeInner").style.display = "none"; machdiesiteNoticewegduSau() } else { document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:machdiesiteNoticewegduSau()" style="position:absolute; right:0; top:9px; font-size:0.8em;">[Sitenotice verbergen]</a>'; } } } function machdiesiteNoticewegduSau() { document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:gabsdanichtmalnesiteNotice()" style="position:absolute; right:0; top:9px; font-size:0.8em;">[Sitenotice anzeigen]</a>'; document.getElementById("siteNoticeInner").style.display = "none"; var datum = new Date(); var ablauf = datum.getTime() + (265 * 24 * 60 * 60 * 1000); datum.setTime(ablauf); document.cookie = "dontshowsitenotice="+siteNoticeTs+"; path=/; expires="+datum.toGMTString(); } function gabsdanichtmalnesiteNotice() { document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:machdiesiteNoticewegduSau()" style="position:absolute; right:0; top:9px; font-size:0.8em;">[Sitenotice verbergen]</a>' document.getElementById("siteNoticeInner").style.display = "block"; document.cookie = "dontshowsitenotice=never; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT"; } addOnloadHook(hideSitenotice); // ================================================================================ /* Artikel-Review-Autovervollständigungs-script */ if (wgNamespaceNumber=1 && wgAction == '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; } } // TEST WiMus GaGA-Automatismus if (wgPageName == 'Forum:Unendliche_GaGA-Wahlen_/_neue_Wahl-Statuten_/_neue_Vorlagen' || wgPageName == 'Kamel:WiMu/GaGA-Wahl-Test/2' || wgPageName == 'Datei:Gaga-Test.gif' || wgPageName == 'Datei:Gaga-Test.png' || wgPageName == 'WiMu/GaGA-Wahl-Test/1' || wgPageName == 'Vorlage:GaGA' || wgPageName == 'Heiland_Sellarrie') { addJS("MediaWiki:Prototype.js"); addJS("MediaWiki:Skin/Test_zirkelklapp.js"); } // externe links in neuem browser Fenster öffnen (nicht bei interwikis) function externalWindow(){ if (typeof(disableLinkWindow) != 'undefined' && disableLinkWindow) return; var allinks = document.getElementById('bodyContent').getElementsByTagName('a'); for(var i = 0; i < allinks.length; i++) { if(allinks[i].className.indexOf('external') != -1 && allinks[i].parentNode.className.indexOf('noblank') == -1){ allinks[i].target = '_blank'; } } } addOnloadHook(externalWindow); //experimenteller HTML5-Video-Player für die Datei-Seite in Verbindung mit Vorlage:Video// addOnloadHook(function() { if (document.getElementById("html5video")){ var html = '<video src="http://'; html += document.getElementById("html5video").innerHTML; html += '" controls></video>'; document.getElementById("html5video").innerHTML = html; }});