Benutzer:Joschua/upn.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen 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
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// '''Test''' (Kopieren auf eigene gefahr...)
function upnInit(){
// Wiki-Adresse meist /wiki/ mancherorts /wiki/index.php/
var upnWikiAddr = '/wiki/';
// Wiki Datenbankname (Für den Beitragszähler)
var upnWikiDB = 'dewiki_p';
// Einstellungen Benutzerseite
// 1. Name der Benutzerseite in der eingestellten Sprache (Siehe Adresszeile des Browsers)
// 2. Regulärer Ausdruck zum erkennen ob eine solche Seite aufgerufen wurde.
var upnUserName = 'Benutzer';
var upnIsUserPage = new RegExp('^' + upnWikiAddr + upnUserName + '(_[A-Za-z]*)?:', 'g').test(window.location.pathname);
// Benutzer Log
// 1. Name der Logbuch-Seite in der eingestellten Sprache (Siehe Adresszeile des Browsers)
// 2. Regulärer Ausdruck zum erkennen ob eine solche Seite aufgerufen wurde.
var upnLogName = "Spezial:Logbuch";
var upnIsLogPage = new RegExp('.*title=' + upnLogName + '.*user=.+').test(window.location.search);
// Benutzer Suche (Benutzerbeiträge im Benutzernamensraum)
// 1. Name der Such-Seite in der eingestellten Sprache (Siehe Adresszeile des Browsers)
// 2. Regulärer Ausdruck zum erkennen ob eine solche Seite aufgerufen wurde.
var upnAllPagesName = "Spezial:Alle_Seiten";
var upnIsAllPagesPage = new RegExp('.*title=' + upnAllPagesName + '.*from=.+').test(window.location.search);
// Benutzerbeiträge
// 1. Name der Benutzerbeitrags-Seite in der eingestellten Sprache (Siehe Adresszeile des Browsers)
// 2. Regulärer Ausdruck zum erkennen ob eine solche Seite aufgerufen wurde.
var upnContributionsName = "Spezial:Beitr%C3%A4ge";
var upnIsContributionsPage = new RegExp('^' + upnWikiAddr + upnContributionsName + '/.+').test(window.location.pathname);
// E-Mail
// 1. Name der E-Mail Seite in der eingestellten Sprache (Siehe Adresszeile des Browsers)
// 2. Regulärer Ausdruck zum erkennen ob eine solche Seite aufgerufen wurde.
var upnMailName = 'Spezial:E-Mail';
var upnIsMailPage = new RegExp('^' + upnWikiAddr + upnMailName + '/.+').test(window.location.pathname);
// Sprache
// Soll ein Link anders lauten, kann die Bezeichnung hier geändert werden.
// Siehe weiter Unten, falls ein Link nicht angezeigt werden soll.
var upnLangFor = 'Für ';
var upnLangTalk = 'Diskussion';
var upnLangTalkNewSection = ' <small>(neu)</small>';
var upnLangContributions = 'Beiträge';
var upnLangUserSubPages = 'Benutzerseiten';
var upnLangLogBlock = 'Blockadenlogbuch';
var upnLangLog = 'Logbücher';
var upnLangEditcount = "Editcount";
var upnLangMail = 'E-Mail';
var upnLangTrust = 'Vertrauen';
// Prüfe ob ich mich auf einer Benutzerseite befinde.
if(upnIsUserPage || upnIsContributionsPage || upnIsLogPage || upnIsMailPage || upnIsAllPagesPage) {
// Hierhin wird der Text gepaarst
var upnTarget = document.getElementById("contentSub");
// Benutzernamen aus der Adresszeile des Browsers auslesen.
if(upnIsUserPage) {
// Ich befinde mich auf einer Benutzerseite
var upnCurrentUser = window.location.pathname.replace(new RegExp('.*' + upnUserName + '[^:]*:([^\/]+).*'), '$1');
} else if(upnIsContributionsPage) {
// Ich befinde mich auf der Beiträge-Seite.
var upnCurrentUser = window.location.pathname.replace(new RegExp('.*\/([^\/]+)$'), '$1');
} else if(upnIsMailPage) {
// Ich befinde mich auf der E-Mail Seite.
var upnCurrentUser = window.location.pathname.replace(new RegExp('.*\/([^\/]+)$'), '$1');
} else if(upnIsLogPage) {
// Ich befinde mich auf einer Logbuch-Seite
var upnCurrentUser = window.location.search.replace(new RegExp('.*user=([^&]+).*', 'g'), '$1');
} else if(upnIsAllPagesPage) {
// Ich befinde mich auf Suchseite: Alle Seiten
var upnCurrentUser = window.location.search.replace(new RegExp('.*from=([^&]+).*', 'g'), '$1');
}
// Originaltext (vom Wiki oder anderen Scripten generiert) zurücksetzen
if(upnIsContributionsPage || upnIsLogPage || upnIsMailPage) {
upnTarget.innerHTML = upnLangFor + upnLink(upnWikiAddr + upnUserName + ':' + upnCurrentUser, upnCurrentUser, ' | ');
} else {
upnTarget.innerHTML = '';
}
// Beginn die Daten in die Seite einzufüllen
// Falls einer der folgenden Links nicht angezeigt werden soll, kann die Betreffende
// Zeile mittels zwei Slashes // auskommentiert werden. Am schluss der Zeilen kann
// allenfalls das Trennzeichen zwischen den Links geändert werden.
// Eröffnende Klammer
upnTarget.innerHTML += '(';
// Link auf die Diskussionsseite
upnTarget.innerHTML += upnLink(upnWikiAddr + 'User_Talk:' + upnCurrentUser, upnLangTalk, ' ');
// Link auf die Diskussionsseite (Zum einstellen eines neuen Absatzes))
upnTarget.innerHTML += upnLink(upnWikiAddr + 'User_Talk:' + upnCurrentUser + '?action=edit§ion=new', upnLangTalkNewSection, ' | ');
// Link auf die Beitragsseite
upnTarget.innerHTML += upnLink(upnWikiAddr + 'Special:Contributions/' + upnCurrentUser, upnLangContributions, ' | ');
// Suche nach Seiten im Benutzer namensraum
upnTarget.innerHTML += upnLink(upnWikiAddr + 'Special:Allpages?namespace=2&from=' + upnCurrentUser, upnLangUserSubPages, ' | ');
// Blockadenlogbuch
upnTarget.innerHTML += upnLink(upnWikiAddr + 'Special:Log?type=block&user=' + upnCurrentUser, upnLangLogBlock, ' | ');
// Benutzer Logs
upnTarget.innerHTML += upnLink(upnWikiAddr + 'Special:Log?user=' + upnCurrentUser, upnLangLog, ' | ');
// Link auf den Beitragszähler
upnTarget.innerHTML += upnLink('http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user=' + upnCurrentUser + '&dbname=' + upnWikiDB, upnLangEditcount, ' | ');
// Link auf die E-Mail Kontaktseite (Nicht alle Benutzer haben diese Funktion eingeschaltet)
upnTarget.innerHTML += upnLink(upnWikiAddr + 'Special:Emailuser/' + upnCurrentUser, upnLangMail, ' | ');
// Link auf die Vertrauensseite
upnTarget.innerHTML += upnLink(upnWikiAddr + 'User:' + upnCurrentUser + '/Vertrauen', upnLangTrust, '');
// Schliessende Klammer
upnTarget.innerHTML += ')';
}
}
// Diese funktion erstellt die Links
function upnLink(href, name, spacer) {
return '<a href="' + href + '">' + name + '</a>' + (spacer ? spacer : '');
}
aOnloadFunctions[aOnloadFunctions.length] = upnInit;