MediaWiki:Common.js
Zur Navigation springen
Zur Suche springen
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: Gehe zu Menü → Einstellungen (Opera → Einstellungen auf dem Mac) und dann auf Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien.
//== 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