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
// get URL parameters (used for page type variables)
var UrlParameters = new Array ();
readparams();
function readparams() {
var asReadInUrlParameters;
var asReadInUrlParameter;
// Get URL parameters
asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
for (i = 0; i < asReadInUrlParameters.length; i++) {
asReadInUrlParameter = asReadInUrlParameters[i].split("=");
UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);
}
}
// token functions
function generate_asuser () {
return encodeURIComponent(mw.config.get('wgUserName'));
}
function validate_asuser (asuser) {
var retval = false;
if (encodeURIComponent(asuser) == generate_asuser() )
retval = true;
return retval;
}
function generate_astime () {
var arbitrary_datestamp = Date.UTC(2008,10,1,0,0,0,0); // 1.11.2008
var current_date = new Date();
var current_timestamp = current_date.getTime();
return ( Math.floor((current_timestamp - arbitrary_datestamp) / 1000) );
}
function validate_astime (astime) {
var retval = false;
var timediff = generate_astime() - astime;
if ((timediff >= 0) && (timediff < 45))
retval = true;
return retval;
}
// <nowiki>
// Funktionen im Quickbar (monobook.js)
var usedropdown = false; // Wenn keine Dropdowns gewünscht sind, hier false eintragen!
var qbnewpage = false; // sollen Seiten aus dem QuickBar im neuen Fenster aufgerufen werden?
var timeout = 50000; // 50 Sekunden auf das Neuladen der Seite warten
var zeigeversion = false; // monobook-Version anzeigen?
var zeigehilfe = true; // kurze Hilfetexte beim überfahren mit der Maus anzeigen ? default true
var debugme = false; // Debug-Modus?
var autosave = true; // automatisches Speichern von QS/LA/SLA/Vandal-Einträgen?
var asuserp = "asuser"; // usertoken
var astimep = "astime"; // timestamptoken
var usersignature = '\~\~\~\~'; //Standardsignatur
// Modul: admin.js
var showadminbar = true; // Adminbar standardmäßig anzeigen?
// Wer nicht mit den Standardknöpfen zufrieden sein sollte, lese sich bitte das Tutorial auf [[Benutzer_Diskussion:DerHexer/admin.js]] durch.
var delreason = true; // Löschgründe ergänzen?
var deletereasons = "Unsinn.|D(U); Test.|D(T); Kein Artikel.|D(KA); Unnötiger Redirect.|D(UR); Falsches Lemma.|D(FL); Irrelevant.|D(I); Falschschreiberedirect.|D(FSR); Flame.|D(Fl); Aua.|D(Au); Veraltete IP-Diskussionsseite.|D(VIPD); Wunsch des Benutzers.|D(WdB); Werbung.|D(Werb); Wiedergänger.|D(Wieder); Fake.|D(Fake); Verwaiste Diskussionsseite.|D(VDs); Ansprache über [[:Kategorie:Wikipedia:BLU-User]] ohne Erfolg.|D(BLU); Urheberrechtsverletzung.|D(URV); SLA.|D(SLA); Bandspam.|D(Band); nuke|nuke; prompt|prompt";
var blockreason = true; // Blockgründe ergänzen?
var blockreasons = "Vandalismus|1|B(V+1); Vandalismus|2|B(V+2); Vandalismus|7|B(V+7); Einstellen unsinniger Artikel|1|B(EuA+1); Einstellen unsinniger Artikel|2|B(EuA+2); Einstellen unsinniger Artikel|7|B(EuA+7); Vandalismusaccount|infinite|B(Va+i); Ungeeigneter Name|infinite|B(Name+i); prompt|prompt|prompt";
var protectreason = true; // Schutzgründe ergänzen?
var protectreasons = "IP-Vandalismus|1 day|1|P(IP-V+1d); IP-Vandalismus|1 week|1|P(IP-V+1w); IP-Vandalismus|3 months|1|P(IP-V+3m); IP-Vandalismus|infinite|1|P(IP-V+i); Editwar|infinite|2|P(EW+i); \{\{Gesperrter Benutzer\}\}|infinite|2|P(GB+i); Schutz aufgehoben|infinite|0|P(!Schutz+i); Abstimmung beendet.|infinite|2|P(!AK+i); prompt|prompt|1|prompt1; prompt|prompt|2|prompt2";
var deletecreateprotectreason = true; // Löschen-Erstellen-Schützen ergänzen?
var deletecreateprotectreasons = "gesperrte IP betreibt weiter Unfug|2 hours|1|.|0|GIP+2h; gesperrte IP betreibt weiter Unfug|6 hours|1|.|0|GIP+6h; gesperrte IP betreibt weiter Unfug|1 day|1|.|0|GIP+1d; gesperrte IP betreibt weiter Unfug|3 days|1|.|0|GIP+3d; gesperrte IP betreibt weiter Unfug|1 week|1|.|0|GIP+1w; gesperrte IP betreibt weiter Unfug|infinit|1|.|0|GIP+i; gesperrter Benutzer betreibt weiter Unfug|infinite|2|\{\{Gesperrter Benutzer\}\}|0|GB+i; Gesperrter Benutzer|infinite|2|\%23REDIRECT \[\[Benutzer Diskussion\:"+mw.config.get('wgTitle')+"]]|0|Redir+i; Gesperrter Benutzer|infinite|2|\%23REDIRECT \[\[Benutzer Diskussion\:"+mw.config.get('wgTitle')+"]]|1|Redir2+i";
var blockedtext = "Zwei Stunden."; // Standardtext für die VM
var allowlogblock = true; // Schnellsperre aus dem Neuanmeldungslogbuch gestatten
var allowfastrename = true; // Schnellumbenennen aus dem Neuanmeldungslogbuch gestatten
var warningafterdeletion = true; // Ansprache nach Schnelllöschung
// Modul: rollback.js
var newrollback = true; // Erweiterten Rollback aktivieren
var allowmessage = true; // Rollback mit Ansprache und VM-Meldung bzw. Block aktivieren? Dafür bitte PopUps für de.wikipedia.org aktivieren.
var autowarning = true; // Wenn die ergänzte Vorlage automatisch gespeichert werden soll, ändere false auf true.
var leveltwowarning = false; // Wenn du zwei Warnungen vor einer VM oder Sperre setzen möchtest, gib true ein, um einen Standardkommentar zu ergänzen. Ansonsten ersetze false/true durch eine zweite Vorlage inklusive Unterschrift.
var optionnames = false; // Hier bitte alle Bezeichnungen der Rollbacks angeben, so man mit den Standards nicht zufrieden ist
var templatenames = false; // Hier bitte die zu verwendenden Vorlagen angeben. Genausoviele wie darüber, dies ist eine 1:1-Zuordnung!
var fastblock = true; // Sperrt automatisch den gewählten Benutzer
// Auf '1' setzen, um mehrere, unter optionnames und templatenames selbstdefinierte Links hinter dem normalen Zurücksetzen zu ergänzen; auf '2', wenn die oben definierten Links in einem Dropdownmenü erscheinen sollen; auf '3', wenn man keine Ansprache, aber ein Zusammenfassungskürzel wie beim (rev) haben möchte; auf '4', wenn man automatisch sperren möchte
var rollbacktype = '3';
// **************** SETUP Ende ***********************************
var user = mw.config.get('wgUserName'); // username wird automatisch übernommen
// page type variables: namespaces
var isArticle = (mw.config.get('wgNamespaceNumber') == 0);
var isArticleTalk = (mw.config.get('wgNamespaceNumber') == 1);
var isBild = (mw.config.get('wgCanonicalNamespace') == "File");
var isCategory = (mw.config.get('wgCanonicalNamespace') == "Category");
var isTemplate = (mw.config.get('wgCanonicalNamespace') == "Template");
var isGeneric = false;
if ((!isBild) && (!isCategory) && (!isTemplate))
isGeneric = true;
var isProject = (mw.config.get('wgCanonicalNamespace') == "Project");
// page type variables: namespace == -1
var isSpecial = (mw.config.get('wgCanonicalNamespace') == "Special");
var isRestore = (isSpecial && (mw.config.get('wgCanonicalSpecialPageName') == "Undelete"));
var isContrib = (isSpecial && (mw.config.get('wgCanonicalSpecialPageName') == "Contributions"));
var isWatchlist = (isSpecial && (mw.config.get('wgCanonicalSpecialPageName') == "Watchlist"));
// page type variables: namespace == -1
var isTalk = (!isSpecial && isOdd(mw.config.get('wgNamespaceNumber')));
// page type variables: other stuff
var isPHP = (document.URL.indexOf('index.php') > 0);
var isDiff = UrlParameters["diff"];
var isEdit = ((UrlParameters['action']=='edit') || (UrlParameters['action']=='submit'));
var isHistory = (UrlParameters['action']=='history');
// Admin functions
var adminflag = false;
if (isAdmin()) adminflag = true;
/*
* ab hier wird der Quickbar (der Kasten oben links) zusammengebaut
*
* zuerst die allgemeinen Variablen (hier bitte nix ändern!)
*/
var Quickbar = '<div class="pBody noprint" id="p-quickbar" style="position:absolute; top:5px; left:0px; width:14.1em; z-index:10;">';
var showquickbar = true;
var showcompletebar = true;
var showcompletebar2;
var showadminbar2;
var showquickbar2;
var xxx = '';
var trenner='<hr />';
var br ='<br />';
var qbtarget = '_self';
if (qbnewpage) qbtarget = '_blank';
var dropdown = usedropdown;
var scrpt = '';
var scrptn = 0;
var indropdown;
var ind;
/*
* Quickbar-Zusammenbau, Teil 1:
*
* zuerst die Reihenfolge der einzelnen Abschnitte:
*/
function buildQuickbar() {
addition = new Date();
addition = new Date(addition.getTime() +1000*60*60*24*365);
if (document.cookie) {
var cookies = document.cookie;
cookies = cookies.split(';');
for (i=0; i<cookies.length; i++) {
var cookienames = cookies[i].split('=')[0];
var cookievalues = cookies[i].split('=')[1];
if (cookienames.search('showcompletebar') != -1) {
if (cookievalues.search('block') != -1) {
showcompletebar2 = "block";
} else {
showcompletebar2 = "none";
}
document.cookie = 'showcompletebar=' + showcompletebar2 + '; path=/; expires=' + addition.toGMTString + ';';
} else if (cookienames.search('showquickbar') != -1) {
if (cookievalues.search('block') != -1) {
showquickbar2 = "block";
} else {
showquickbar2 = "none";
}
document.cookie = 'showquickbar=' + showquickbar2 + '; path=/; expires=' + addition.toGMTString + ';';
} else if (cookienames.search('showadminbar') != -1) {
if (cookievalues.search('block') != -1) {
showadminbar2 = "block";
} else {
showadminbar2 = "none";
}
document.cookie = 'showadminbar=' + showadminbar2 + '; path=/; expires=' + addition.toGMTString + ';';
} else {
if (showcompletebar) {
showcompletebar2 = 'block';
} else {
showcompletebar2 = 'none';
}
if (showquickbar) {
showquickbar2 = 'block';
} else {
showquickbar2 = 'none';
}
if (showadminbar) {
showadminbar2 = 'block';
} else {
showadminbar2 = 'none';
}
document.cookie = 'showcompletebar=' + showcompletebar2 + '; path=/; expires=' + addition + ';';
document.cookie = 'showquickbar=' + showquickbar2 + '; path=/; expires=' + addition + ';';
document.cookie = 'showadminbar=' + showadminbar2 + '; path=/; expires=' + addition + ';';
}
}
}
// der folgende Abschnitt wird nur bei Admins eingeblendet
qbAdminTools();
}
/*
* Quickbar-Zusammenbau, Teil 2:
*
* die Belegung der einzelnen Abschnitte
*/
function qbAdminTools() {
if (!adminflag) return;
if (showadminbar == false) {
w (0,'<hr />','','');
w (4,"switchbars('adminbar');switchbars('quickbar');","Adminbar an-/ausschalten","","Adminbar an-/ausschalten");
}
if (mw.config.get('wgUserName') == 'DerHexer') {
w (0,'<div id="adminbar" style="display:' + showadminbar2 + '"><hr />','Adminbar','');
if (delreason) {
w (0,'<center>Löschen</center>','Löschen','');
decodeadminreasons(deletereasons);
}
if (blockreason) {
w (0,'<center>Sperren</center>','Sperren','');
decodeadminreasons(blockreasons);
}
if (protectreason) {
w (0,'<center>Schützen</center>','Schützen','');
decodeadminreasons(protectreasons);
}
if (deletecreateprotectreason) {
w (0,'<center>DCP</center>','DCP','');
decodedcpreasons(deletecreateprotectreasons);
}
}
w (0,'</div></div>','','');
}
// Browserkram
var userbrowser = "Standard";
if (navigator.userAgent.indexOf("Opera") > -1)
userbrowser = "Opera";
if (navigator.userAgent.indexOf("Safari") > -1)
userbrowser = "Standard";
if (navigator.userAgent.indexOf("MSIE") > -1) {
userbrowser = "IE";
if (navigator.userAgent.indexOf("MSIE 7") > -1)
userbrowser = "IE7";
}
// force Browserswitches
if ((userbrowser === "IE") || (userbrowser === "IE7")) {
godmodelight = false;
showredundantlinks = false;
}
if (userbrowser === "Opera") {
godmodelight = false;
}
/*
* hier wird der Quickbar in die Seite geschrieben
* (ab hier bitte nichts ändern)
*/
buildQuickbar();
if (typeof version == 'undefined') var version = "?";
if (!isEdit || zeigeversion || isPHP) {
Quickbar +=
'<table width="100%"><tr><td align="left" width="15%"><a href="#" onclick="switchbars(\'completebar\');" title="Komplette Quickbar an/aus">an/aus</a></td><td align="right" valign="top">' +
(zeigeversion ?
('<a href="#" onclick="amIuptodate()" title="Versionscheck">' + (adminflag ? 'A/' : '') + version + '</a> ')
: '') +
(!isEdit ?
('<input type="checkbox" id="reloadme" name="reloadme" onchange="setReload()" title="Seite alle ' + (timeout/1000) + ' s neu laden?"></input> ')
: ' ') +
'<a href="' + mw.config.get( 'wgScript' ) + '?title=Special%3APrefixindex&prefix=' + user +
'&namespace=2" target="' + qbtarget + '" title="Meine Seiten im Benutzernamensraum">' +
'MyPages' +
'</a>' +
(userbrowser != "Standard" ?
(' <a href="#" onclick="badBrowser()" title="Browser nicht unterstützt">'
+ userbrowser.charAt(0) + userbrowser.charAt(1) + '!</a>')
: '') +
'</td></tr></table><div id="completebar" style="display:' + showcompletebar2 + '">';
}
Quickbar += '<div style="font-size:100%;">' + xxx + '</div></div>';
if (scrpt > '') {
Quickbar += '<script> function _doopt (was) { switch (was) {' + scrpt + '}}<\/script>';
scrpt='';
}
$( 'body' ).append( Quickbar );
//
// ab hier functions
//
function w (was,lurl,linktext,targt,title) {
if (!title) title=linktext;
if (!zeigehilfe) title='';
if (!dropdown) {
switch (was) {
case 0 : xxx=xxx+lurl;break;
case 1 : xxx=xxx+'<a href="'+lurl+'" target="'+targt+'" title="'+title+'">'+linktext+'</a> ';break;
case 2 : xxx=xxx+'<a href="#" onclick="newtext('+ lurl +')" title="'+title+'">'+linktext+'</a> ';break;
case 3 : xxx=xxx+'<a href="#" onclick="insertTagsWrapper('+ lurl +')" title="'+title+'">'+linktext+'</a> ';break;
case 4 : xxx=xxx+'<a href="#" onclick="'+ lurl +'" title="'+title+'">'+linktext+'</a> ';break;
}
} //if
else //todo: Hilfe bei Dropdowns. Benutzt die überhaupt jemand????
{
var ltext='__________'.substr(1,ind)+linktext;
switch (was) {
case 0 : if (lurl==br) {xxx=xxx+'<option>'+linktext+'</option>';ind=2;}
else
if (lurl==trenner) newdropdown(linktext);
break;
case 1 : xxx=xxx+'<option value="1|'+lurl+'">'+ltext+'</option>';break;
case 2 : xxx=xxx+'<option value="2|'+scrptn+'">'+ltext+'</option>';
scrpt=scrpt+'case '+scrptn+':newtext('+lurl+');break;';scrptn++;break;
case 3 : xxx=xxx+'<option value="3|'+scrptn+'">'+ltext+'</option>';
scrpt=scrpt+'case '+scrptn+':insertTagsWrapper('+lurl+');break;';scrptn++;break;
case 4 : xxx=xxx+'<option value="4|'+scrptn+'">'+ltext+'</option>';
scrpt=scrpt+'case '+scrptn+':'+lurl+';break;';scrptn++;break;
} //switch
} //else
} //w
function isEven(myNumber) {
return (myNumber % 2 == 0);
}
function isOdd(myNumber) {
return (! isEven(myNumber));
}
function insertTagsWrapper(tagOpen, tagClose, sampleText, subj) {
if (subj > "") {
if (document.editform.wpSummary.value > "") document.editform.wpSummary.value += ", ";
document.editform.wpSummary.value = document.editform.wpSummary.value + subj;
}
insertTags(untagEscape(tagOpen), untagEscape(tagClose), untagEscape(sampleText))
}
function untagEscape(text)
{
text = text.replace(/%27/g, "'");
text = text.replace(/%22/g, "\"");
return(text);
}
function isAdmin() {
var specialrights = false;
if (typeof mw.config.get('wgUserGroups') != 'object') return(specialrights);
if (typeof mw.config.get('wgUserGroups')[0] != 'string') return(specialrights);
for (i=0;i<mw.config.get('wgUserGroups').length;i++) {
if (mw.config.get('wgUserGroups')[i] == "sysop") specialrights = true;
}
return(specialrights);
}
function importJavascriptL(page, lang)
{
try {
/* check the parameters and set defaults */
if(!page) throw("importJavascriptL: Missing parameter page.");
if(!lang) lang = mw.config.get('wgContentLanguage');
/* create import url */
var import_url = '//' + lang + '.wikipedia.org' + mw.config.get('wgScriptPath') + '/index.php?title=User:' + page +
'.js&action=raw&ctype=text/javascript&smaxage=2678400&dontcountme=s';
/* import page */
var Head = document.getElementsByTagName('head').item(0);
var Script = document.createElement('script');
Script.setAttribute('type', 'text/javascript');
Script.setAttribute('src', import_url);
Script.setAttribute('charset', 'utf-8');
Head.appendChild(Script);
return true;
} catch(e) {
alert(e.message);
return false;
}
}
function decodeadminreasons(adminreasons) { // DerHexer
var adminreason = adminreasons.split('; ');
for (i=0; i < adminreason.length; i++) {
var adminreasoncount = adminreason[i].split("|");
switch(adminreasoncount.length) {
case 1 : w (4,"deleting('" + adminreasoncount[0] + "');","" + adminreasoncount[0] + ""); break;
case 2 : w (4,"deleting('" + adminreasoncount[0] + "');","" + adminreasoncount[1] + ""); break;
case 3 : w (4,"blocking('" + adminreasoncount[0] + "', '" + adminreasoncount[1] + "');","" + adminreasoncount[2] + ""); break;
case 4 : w (4,"protecting('" + adminreasoncount[0] + "', '" + adminreasoncount[1] + "', '" + adminreasoncount[2] + "');","" + adminreasoncount[3] + ""); break;
case 5 : w (4,"protecting('" + adminreasoncount[0] + "', '" + adminreasoncount[1] + "', '" + adminreasoncount[2] + "', '" + adminreasoncount[3] + "');","" + adminreasoncount[4] + ""); break;
}
}
}
function decodedcpreasons(adminreasons) { // DerHexer
var adminreason = adminreasons.split('; ');
for (i=0; i < adminreason.length; i++) {
var adminreasoncount = adminreason[i].split("|");
w (4,"dcp('" + adminreasoncount[0] + "', '" + adminreasoncount[1] + "', '" + adminreasoncount[2] + "', '" + adminreasoncount[3] + "', '" + adminreasoncount[4] + "');","" + adminreasoncount[5] + "");
}
}
function switchbars(ids)
{
addition = new Date();
addition = new Date(addition.getTime() +1000*60*60*24*365);
var element = document.getElementById(ids);
if(element.style.display == "none")
{
element.style.display = "block";
document.cookie = 'show' + ids + '=block; path=/; expires=' + addition + ';';
}
else
{
element.style.display = "none";
document.cookie = 'show' + ids + '=none; path=/; expires=' + addition + ';';
}
}
function getLemma () { //Littl
var lemma;
if ((isContrib) && ( UrlParameters["target"] > "" ))
lemma = UrlParameters["target"];
else if ( UrlParameters["title"] > "" )
lemma = UrlParameters["title"];
else {
lemma = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0];
// fix linky links (?redirect=no)
//lemma = lemma.split['\x3F'][0];
if (lemma.indexOf("redirect=no")!=-1)
lemma=lemma.substring(0,lemma.indexOf("redirect=no")-1);
}
// if (lemma.substring(0, 5) == "Bild:") lemma=lemma.slice(5);
// if (lemma.substring(0, 10) == "Kategorie:") lemma=lemma.slice(10);
if (isPHP) lemma=lemma.split('+').join('_');
return lemma;
}
// ***** FOOT-Block *****
if (adminflag && (delreason || blockreason || protectreason || deletecreateprotectreason) && mw.config.get('wgUserName') == 'DerHexer')
importJavascriptL('DerHexer/testadmin','de'); // [[Benutzer:DerHexer/admin.js]]
// Schnellsperre aus dem Logbuch ergänzen
if (allowlogblock)
importJavascriptL('DerHexer/logblock','de'); // [[Benutzer:DerHexer/logblock.js]]
// Erweiterten Rollback ergänzen
if (newrollback)
importJavascriptL('DerHexer/testrollback','de'); // [[Benutzer:DerHexer/rollback.js]]
mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:DerHexer/test.js&action=raw&ctype=text/javascript');