MediaWiki:Common.js
Version vom 20. Februar 2010, 15:09 Uhr von Nachteule (Diskussion | Beiträge) (+ hochlade und bildsuche javascript)
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
/** 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>');
}
/* Seiten mit eigenen Skripts */
var scriptedArticles = {
"Spezial:Hochladen": "MediaWiki:Skin/Spezial:Hochladen.js",
"Kamelopedia:Bildsuche": "MediaWiki:Skin/Kamelopedia:Bildsuche.js"
};
var articleJS = scriptedArticles[wgPageName.replace(/_/g, " ")];
if (articleJS) addJS(articleJS);
// anzeigen & verbergen (siehe bald Diskussionsseite)
function einaus (inhalt, einblenden, ausblenden) {
var thisLevel = document.getElementById(inhalt);
var otherLevel = document.getElementById(einblenden);
var linkLevel = document.getElementById(ausblenden);
if (thisLevel.style.display == 'none') {
thisLevel.style.display = 'block';
otherLevel.style.display = 'none';
linkLevel.style.display = 'inline';
} else {
thisLevel.style.display = 'none';
otherLevel.style.display = 'inline';
linkLevel.style.display = 'none';
}
}
//================================================================================
// dragobject wird in [[Projekt:Gummistiefel]] verwendet
// alles mit class='jstest' ist dragbar
/***********************************************
* Drag and Drop Script: © Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
var dragobject={
z: 0, x: 0, y: 0, offsetx : null, offsety : null, targetobj : null, dragapproved : 0,
initialize:function(){
document.onmousedown=this.drag
document.onmouseup=function(){this.dragapproved=0}
},
drag:function(e){
var evtobj=window.event? window.event : e
this.targetobj=window.event? event.srcElement : e.target
if (this.targetobj.className=="jstest"){
this.dragapproved=1
if (isNaN(parseInt(this.targetobj.style.left))){this.targetobj.style.left=0}
if (isNaN(parseInt(this.targetobj.style.top))){this.targetobj.style.top=0}
this.offsetx=parseInt(this.targetobj.style.left)
this.offsety=parseInt(this.targetobj.style.top)
this.x=evtobj.clientX
this.y=evtobj.clientY
if (evtobj.preventDefault)
evtobj.preventDefault()
document.onmousemove=dragobject.moveit
}
},
moveit:function(e){
var evtobj=window.event? window.event : e
if (this.dragapproved==1){
this.targetobj.style.left=this.offsetx+evtobj.clientX-this.x+"px"
this.targetobj.style.top=this.offsety+evtobj.clientY-this.y+"px"
return false
}
}
}
dragobject.initialize();
//==================================================================================
// Prototype
addJS("MediaWiki:Prototype.js");
//================================================================================
// lade [[Hilfe:Edittools.js]], wenn Seite bearbeitet wird
if ( (wgAction == 'edit' || wgAction == 'submit') && wgCanonicalNamespace == "File" ) {
addCSS("MediaWiki:Skin/Spezial:Hochladen.css");
addJS("MediaWiki:Skin/Spezial:Hochladen.js");
}
if ( (wgAction == 'edit' || wgAction == 'submit') && wgTitle != 'Nachteule/Test2' ) {
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>';
});
//================================================================================
// lade [[Hilfe:Javachat.js]] nach, wenn auf [[Kamelopedia:Chat]] */
if (wgPageName == 'Kamelopedia:Chat') addJS("Hilfe:Javachat.js");
//================================================================================
//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">');
}
//================================================================================
//[[Popupblocker]]
if (wgPageName == 'Popupblocker') {
alert("Ihr Popupblocker ist aktiviert");
}
//================================================================================
// Bilder bekommen einen "ähnliche Bilder"-Link und auch die Tagwolke
if ( wgCanonicalNamespace == "File" || 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:Skin/Kamelionary.js");
}
// ================================================================================
// 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);
addOnloadHook(zirkelklapp);
/* Neues Zirkel-Klapp-script mit prototype-Gedöhnse */
function zirkelklapp() {
alldivs = document.getElementsByTagName('div');
for(var i = 0; i < alldivs.length; i++) {
if(alldivs[i].className == "tooltipsource zirkel") {
if(typeof zirkel == 'undefined') {
zirkel = new Array();
}
zirkel.push(alldivs[i]);
}
}
if(typeof zirkel != 'undefined') {
for(var i = 0; i < zirkel.length; i++) {
zirkel[i].getElementsByTagName('table')[0].style.display = 'none';
}
alllinks = document.getElementsByTagName('a');
for(var i = 0; i < alllinks.length; i++) {
Event.observe(alllinks[i], 'mouseover', function(event) {
Event.stopObserving(document.getElementsByTagName('body')[0], 'mousedown');
});
Event.observe(alllinks[i], 'mouseout', function(event) {
Event.observe(document.getElementsByTagName('body')[0], 'mousedown', function(event) {
for(var i = 0; i < zirkel.length; i++) {
zirkel[i].getElementsByTagName('table')[0].style.display = 'none';
}
Event.stopObserving(document.getElementsByTagName('body')[0], 'mousedown');
});
});
};
for(var i = 0; i < zirkel.length; i++) {
Event.observe(zirkel[i].getElementsByTagName('span')[0], 'click', function(event) {
this.parentNode.getElementsByTagName('table')[0].style.display = 'block';
Event.observe(document.getElementsByTagName('body')[0], 'mousedown', function(event) {
for(var i = 0; i < zirkel.length; i++) {
zirkel[i].getElementsByTagName('table')[0].style.display = 'none';
}
Event.stopObserving(document.getElementsByTagName('body')[0], 'mousedown');
});
});
}
}
}
// ================================================================================
// 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.appendChild(aZit);
var LiPDF = document.createElement("li");
LiPDF.style.whiteSpace = "nowrap";
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
addOnloadHook(hideSitenotice);
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:3.3em; top:9px; font-size:0.8em;">[Sitenotice verbergen]</a>';
}
}
}
function machdiesiteNoticewegduSau() {
document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:gabsdanichtmalnesiteNotice()" style="position:absolute; right:3.3em; 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:3.3em; 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";
}
// Der doofe server stürzt dauernd ab, wenn das script da unten läuft ...
window.onload = function()
{
if (document.getElementById("ServerError")) {
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;
}
}
/* Artikel-Review-Autovervollständigungs-script */
if(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() {
originalSource = document.getElementById('wpTextbox1').value;
newSource = originalSource.replace(/\{\{Artikeltest\}\}/g, templateCode);
document.getElementById('wpTextbox1').value = newSource;
}
}