Benutzer:Shadowtweaker/monobook.js

Aus PokéWiki
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: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
  • Konqueror: Aktualisieren anklicken oder F5 drücken
// Das hier ist mein JavaScript. Mit JavaScript kann man persönliche Umstellungen am Wiki vornehmen,
// die sonst nicht möglich sind, beispielsweise die Links in der Sidebar ändern.
// Wenn dir mein JavaScript oder ein Teil davon gefällt, darfst du es gerne kopieren und auf deine eigene JavaScript-Seite einfügen,
// solange du mein JavaScript als Quelle angibst.

/*
######################################### Anzahl der online-Benutzer auf Discord ########################################## 
function discordOnline(data) {
	discordonline = data.members.length;
	$.each($(".discordonline"), function(index, value) { value.innerHTML = discordonline; });
}
jQuery.getJSON("https://discordapp.com/api/guilds/247122072378146816/widget.json", discordOnline);


################################ Find & Replace inkl. RegExp beim Bearbeiten von Seiten ###################################
# Wenn mal beim Bearbeiten einer Seite derselbe Fehler mehrmals vorkommt, kann dieser Code eine große Zeitersparnis sein. #
# Drückt man Strg + I, öffnen sich zwei Dialogfenster, in die man zwei Zeichenketten eingibt:                             #
# Eine zu ersetzende Zeichenkette und eine einzusetzende Zeichenkette.                                                    #
# Sofort werden im Quelltext der Seite alle Vorkommnisse der ersten Zeichenkette durch die zweite ersetzt.                #
# Es werden auch reguläre Ausdrücke unterstützt, z. B. steht [0-9] für eine beliebige Ziffer.                             #
# Auch das Speichern in Variablen wie $1 ist möglich.                                                                     #
# Groß- und Kleinschreibung wird beachtet.                                                                                #
########################################################################################################################### */
var regexpcountdown = window.setInterval("regexpkeydown()", 1000);
function regexpkeydown() {
  if (wgAction == "submit" || wgAction == "edit" || wgPageName == "Spezial:Vorlagen_expandieren")
  {
    document.onkeydown=regexpwindow;
  }
}
function regexpwindow(e) {
  if (!e) e=window.event;
  if (e.keyCode==73 && e.ctrlKey) {
    if (wgAction == "submit" || wgAction == "edit" || wgPageName == "Spezial:Vorlagen_expandieren") {
      var findtext = /null/;
      findtext.compile(prompt('Text, der gefunden werden soll:'), "g");
      var replacetext = prompt('Text, der eingesetzt werden soll:');
      replacetext = replacetext.replace(/\\n/g, "\n");
      if (findtext != /null/ && replacetext != null) {
        if (wgPageName == "Spezial:Vorlagen_expandieren") {
          document.getElementById("input").value = document.getElementById("input").value.replace(findtext, replacetext);
        }
        else {
          document.getElementById("wpTextbox1").value = document.getElementById("wpTextbox1").value.replace(findtext, replacetext);
        }
      }
    }
    else {
      alert("Du musst erst auf „Bearbeiten“ klicken!");
    }
  }
}

/*
#################### Automatische Aktualisierung der letzten Änderungen ####################
# Untenstehender Code bewirkt, dass die Letzten Änderungen regelmäßig aktualisiert werden. #
# Die Aktualisierung erfolgt alle 120 Sekunden.                                            #
############################################################################################ */
if (window.location.href.replace("Letzte_%C3%84nderungen") != window.location.href) {
  var sekunden = 120;
  var count = window.setInterval("countdown()", 1000);
}
function countdown()
{
  sekunden--;
  if (sekunden == 0) { location.reload(); }
}

/*
####################### Einzelnen Benutzer in den letzten Änderungen ausblenden ############################
# Wenn ein einzelner Benutzer sehr viele Bearbeitungen in kurzer Zeit tätigt, kann es nützlich sein,       #
# wenn man die Möglichkeit hat, diesen Benutzer in den Letzten Änderungen vorübergehend auszublenden.      #
# In MediaWiki kann man nur sich selbst ausblenden, mit diesem Code aber jeden beliebigen Benutzer.        #
# Dazu muss in den Letzten Änderungen einfach "?hideuser=<Benutzername>" hinten an die URL gehängt werden. #
############################################################################################################ */
if (window.location.href.replace("Letzte_%C3%84nderungen") != window.location.href) {
  if (window.location.href.indexOf("hideuser=") > 0) {
    var hideuser = window.location.href.substring(window.location.href.indexOf("hideuser=")+9);
    hideuser = hideuser.replace(/(\?|\&).*/, "");
    $(".mw-userlink").each(function(i, x) { if (hideuser.split("|").indexOf(x.title.split(":")[1]) > -1) x.parentElement.style.display = "none" });
  }
}

/*
## https://pokewiki.de/index.php?title=MediaWiki:Common.js&curid=20361&diff=736792&oldid=649038 ##
# Verhindert das Erscheinen eines Warnhinweises */
 window.onbeforeunload = {};

/*
####################################### Shortlinks für den SearchInput #######################################
# Beim Suchfeld in der Sidebar kann es nervig sein, andauernd "PokéWiki:" oder "Benutzer:" tippen zu müssen. #
# Mit diesem Code muss nicht mehr der ganze Text eingegeben werden, sondern es reichen Shortlinks:           #
#   "B:" wird umgewandelt in "Benutzer:"                                                                     #
#   "BD:" wird umgewandelt in "Benutzer Diskussion:"                                                         #
#   "D:" wird umgewandelt in "Datei:"                                                                        #
#   "DD:" wird umgewandelt in "Datei Diskussion:"                                                            #
#   "H:" wird umgewandelt in "Hilfe:"                                                                        #
#   "HD:" wird umgewandelt in "Hilfe Diskussion:"                                                            #
#   "K:" wird umgewandelt in "Kategorie:"                                                                    #
#   "KD:" wird umgewandelt in "Kategorie Diskussion:"                                                        #
#   "M:" wird umgewandelt in "MediaWiki:"                                                                    #
#   "MD:" wird umgewandelt in "MediaWiki Diskussion:"                                                        #
#   "P:" wird umgewandelt in "PokéWiki:"                                                                     #
#   "PD:" wird umgewandelt in "PokéWiki Diskussion:"                                                         #
#   "S:" wird umgewandelt in "Spezial:"                                                                      #
#   "T:" wird umgewandelt in "Diskussion:"                                                                   #
#   "V:" wird umgewandelt in "Vorlage:"                                                                      #
#   "VD:" wird umgewandelt in "Vorlage Diskussion:"                                                          #
# Der Code überprüft das Suchfeld jede Sekunde und ersetzt ggf. den Text.                                    #
# Dabei wird Groß- und Kleinschreibung ignoriert und der Shortlink muss am Anfang stehen.                    #
############################################################################################################## */
var shortlinks = window.setInterval("replaceshortlinks()", 200);
function replaceshortlinks()
{
    var text = document.getElementById("searchInput").value;
    text = text.replace(/^[BbUu]:/, "Benutzer:");
    text = text.replace(/^[BbUu][DdTt]:/, "Benutzer Diskussion:");
    text = text.replace(/^[Dd]:/, "Datei:");
    text = text.replace(/^[Dd][DdTt]:/, "Datei Diskussion:");
    text = text.replace(/^[Hh]:/, "Hilfe:");
    text = text.replace(/^[Hh][DdTt]:/, "Hilfe Diskussion:");
    text = text.replace(/^[Kk]:/, "Kategorie:");
    text = text.replace(/^[Kk][DdTt]:/, "Kategorie Diskussion:");
    text = text.replace(/^[Mm]:/, "MediaWiki:");
    text = text.replace(/^[Mm][DdTt]:/, "MediaWiki Diskussion:");
    text = text.replace(/^[Pp]:/, "PokéWiki:");
    text = text.replace(/^[Pp][DdTt]:/, "PokéWiki Diskussion:");
    text = text.replace(/^[Ss]:/, "Spezial:");
    text = text.replace(/^[Tt]:/, "Diskussion:");
    text = text.replace(/^[Vv]:/, "Vorlage:");
    text = text.replace(/^[Vv][DdTt]:/, "Vorlage Diskussion:");
    if (document.getElementById("searchInput").value != text) {
        document.getElementById("searchInput").value = text;
    }
}

//############################################################################################################

var pagename = wgPageName;
var pagenameurl = "https://pokewiki.de/" + pagename;

var basepagename = pagename.replace(/\/.+/,""); //entfernt im Seitennamen alles hinter einem Schrägstrich
basepagename = basepagename.replace(/.+:/,""); //entfernt im Seitennamen alles vor einem Doppelpunkt

document.getElementById("p-logo").innerHTML = '<a style="background-image: url(/skins/common/images/pokewiki.png);" href="/Hauptseite"></a>';
document.getElementById("mw-searchButton").removeAttribute("title");
document.getElementById("searchGoButton").removeAttribute("title");
document.getElementById("searchInput").removeAttribute("title");
document.getElementById("mw-searchButton").accessKey = "g";
document.getElementById("searchInput").accessKey = "y";

document.getElementById("p-navigation").innerHTML = '<h5>Navigation</h5><div class="pBody"><ul><li id="n-mainpage"><a href="/Hauptseite" accesskey="z">Hauptseite</a></li><li id="n-news"><a href="/Pok%C3%A9Wiki:Neuigkeiten" accesskey="n">Neuigkeiten</a></li><li id="n-discussion"><a href="/Pok%C3%A9Wiki:Allgemeine_Diskussionsseite" accesskey="x">Allgemeine Diskussionsseite</a></li><li id="n-maintenance"><a href="/Kategorie:Pok%C3%A9Wiki-Wartung" accesskey=";">Wartung</a></li><li id="n-doubleredirects"><a href="/Spezial:Doppelte_Weiterleitungen" accesskey="=">Doppelte Redirects</a></li><li id="brokenredirects"><a href="/Spezial:Kaputte_Weiterleitungen" accesskey="%">Kaputte Redirects</a></li><li><a href="/Spezial:Gewünschte_Seiten" accesskey="&">Gewünschte Seiten</a></li><li><a href="/Kategorie:Löschen" accesskey="!">Löschen</a></li><li><a href="/Kategorie:Verschieben" accesskey="/">Verschieben</a></li></ul></div>';
document.getElementById("p-Pok.C3.A9Wiki").innerHTML = '<h5>PokéWiki</h5><div class="pBody"><ul><li id="n-recentchanges"><a href="/Spezial:Letzte_%C3%84nderungen?hidebots=0" accesskey="r">Letzte Änderungen</a></li><li id="n-randompage"><a href="/Spezial:Zuf%C3%A4llige_Seite" accesskey="?">Zufälliger Artikel</a></li><li id="n-Exzellente-Artikel"><a href="/Pok%C3%A9Wiki:Exzellente_Artikel" accesskey=")">Exzellente Artikel</a></li><li id="n-Lesenswerte-Artikel" accesskey="("><a href="/Pok%C3%A9Wiki:Lesenswerte_Artikel">Lesenswerte Artikel</a></li><li id="n-projects"><a href="/Pok%C3%A9Wiki:Projekte" accesskey="j">Projekte</a></li><li id="n-tcg-project"><a href="/Pok%C3%A9Wiki:TCG-Projekt" accesskey=".">TCG-Projekt</a></li></ul></div>';
document.getElementById("p-Hilfen").innerHTML = '<h5>Hilfen</h5><div class="pBody"><ul><li id="n-help"><a href="/Pok%C3%A9Wiki:Hilfe">Hilfe</a></li><li id="n-ap"><a href="/Pok%C3%A9Wiki:Autorenportal">Autorenportal</a></li><li id="n-rules"><a href="/Pok%C3%A9Wiki:Regeln">Regeln</a></li><li id="n-questions"><a href="/Pok%C3%A9Wiki:Fragen_zum_Pok%C3%A9Wiki">Fragen</a></li><li style="display:none;"><a href="/Benutzer:shadowtweaker/monobook.css" accesskey="§">CSS</a></li><li style="display:none;"><a href="/Benutzer:shadowtweaker/monobook.js" accesskey="$">JS</a></li></ul></div>';
if (wgNamespaceNumber - (wgNamespaceNumber % 2) == 2) {
  document.getElementById("p-tb").innerHTML = '<h5>Werkzeuge</h5><div class="pBody"><ul><li id="t-whatlinkshere"><a id="a-whatlinkshere" accesskey="#">Links</a></li><li id="t-contributions"><a id="a-contributions" accesskey="ä">Beiträge</a></li><li id="t-log"><a id="a-log" accesskey="ö">Logbücher</a></li><li id="t-block"><a id="a-block">Sperren</a></li><li id="t-upload"><a href="/Spezial:Hochladen" accesskey="u">Hochladen</a></li><li id="t-specialpages"><a href="/Spezial:Spezialseiten" accesskey="q">Spezialseiten</a></li><li id="t-editcount"><a id="a-editcount">Bearbeitungsanzahl</a></li><li id="t-purge"><a id="a-purge" accesskey="a">Aktualisieren</a></li></ul></div>';
  document.getElementById("a-block").href = "https://pokewiki.de/index.php?title=Spezial:Sperren/" + basepagename;
  document.getElementById("a-editcount").href = "https://pokewiki.de/index.php?title=Special%3AEditCount&target=" + basepagename + "&doeditcount=Anzahl+anzeigen";document.getElementById("a-log").href = "https://pokewiki.de/index.php?title=Spezial:Logbuch&user=" + basepagename;
  document.getElementById("a-contributions").href = "https://pokewiki.de/Spezial:Beiträge/" + basepagename;
} else {
  document.getElementById("p-tb").innerHTML = '<h5>Werkzeuge</h5><div class="pBody"><ul><li id="t-whatlinkshere"><a id="a-whatlinkshere" accesskey="#">Links</a></li><li id="t-contributions"><a href="/Spezial:Beiträge" accesskey="ä">Beiträge</a></li><li id="t-upload"><a href="/Spezial:Hochladen" accesskey="u">Hochladen</a></li><li id="t-specialpages"><a href="/Spezial:Spezialseiten" accesskey="q">Spezialseiten</a></li><li id="t-purge"><a id="a-purge" accesskey="a">Aktualisieren</a></li></ul></div>';
}
document.getElementById("a-whatlinkshere").href = "https://pokewiki.de/Spezial:Linkliste/" + pagename;
document.getElementById("a-purge").href = "https://pokewiki.de/index.php?title=" + pagename.replace("&","%26") + "&action=purge";

// Persönliche Werkzeuge
document.getElementById("pt-userpage").innerHTML='<a href="/Benutzer:Shadowtweaker" accesskey="7">Benutzerseite</a>';
document.getElementById("pt-mytalk").innerHTML='<a href="/Benutzer_Diskussion:Shadowtweaker" accesskey="8">Diskussionsseite</a>';
document.getElementById("pt-preferences").innerHTML='<a href="/Spezial:Einstellungen" accesskey="9">Einstellungen</a>';
document.getElementById("pt-watchlist").innerHTML='<a href="/Spezial:Beobachtungsliste" accesskey="0">Beobachtungsliste</a>';
document.getElementById("pt-mycontris").innerHTML='<a href="/Spezial:Beitr%C3%A4ge/Shadowtweaker" accesskey="ß">Beiträge</a>';
document.getElementById("pt-logout").innerHTML='<a href="/Spezial:Abmelden">Logout</a>';

//Reiter

if (wgNamespaceNumber == -1) {
document.getElementById("ca-nstab-special").firstChild.removeAttribute("title");
document.getElementById("ca-nstab-special").firstChild.accessKey = "c";
}
else {
  switch (wgNamespaceNumber - (wgNamespaceNumber % 2)) {
    case 0:
      document.getElementById("ca-nstab-main").firstChild.removeAttribute("title");
      break;
    case 2:
      document.getElementById("ca-nstab-user").firstChild.removeAttribute("title");
      break;
    case 4:
      document.getElementById("ca-nstab-project").firstChild.removeAttribute("title");
      document.getElementById("ca-nstab-project").firstChild.accessKey = "c";
      break;
    case 6:
      document.getElementById("ca-nstab-image").firstChild.removeAttribute("title");
      break;
    case 8:
      document.getElementById("ca-nstab-mediawiki").firstChild.removeAttribute("title");
      break;
    case 10:
      document.getElementById("ca-nstab-template").firstChild.removeAttribute("title");
      break;
    case 12:
      document.getElementById("ca-nstab-help").firstChild.removeAttribute("title");
      break;
    case 14:
      document.getElementById("ca-nstab-category").firstChild.removeAttribute("title");
      break;
  }
}

if (document.getElementById("ca-talk")) { document.getElementById("ca-talk").firstChild.removeAttribute("title"); }
if (document.getElementById("ca-edit")) {
  document.getElementById("ca-edit").firstChild.removeAttribute("title");
  document.getElementById("ca-edit").firstChild.accessKey = "b";
}
if (document.getElementById("ca-history")) {
  document.getElementById("ca-history").innerHTML = '<a id="a-history" accesskey="h">Versionen</a>';
  document.getElementById("a-history").href = "https://pokewiki.de/index.php?title=" + pagename.replace("&","%26") + "&action=history";
}
if (document.getElementById("ca-move")) {
  document.getElementById("ca-move").innerHTML = '<a id="a-move" accesskey="m">Verschieben</a>';
  document.getElementById("a-move").href = "https://pokewiki.de/Spezial:Verschieben/" +pagename;
}
if (document.getElementById("ca-delete")) {
  document.getElementById("ca-delete").firstChild.removeAttribute("title");
  document.getElementById("ca-delete").firstChild.accessKey = "l";
}
if (document.getElementById("ca-undelete")) {
  document.getElementById("ca-undelete").firstChild.removeAttribute("title");
  document.getElementById("ca-undelete").firstChild.accessKey = "l";
}
if (document.getElementById("ca-protect")) {
  document.getElementById("ca-protect").firstChild.removeAttribute("title");
  document.getElementById("ca-protect").firstChild.accessKey = "ü";
}
if (document.getElementById("ca-unprotect")) {
  document.getElementById("ca-unprotect").firstChild.removeAttribute("title");
  document.getElementById("ca-unprotect").firstChild.accessKey = "ü";
}
if (document.getElementById("ca-watch")) { document.getElementById("ca-watch").firstChild.accessKey = "w"; }
if (document.getElementById("ca-unwatch")) { document.getElementById("ca-unwatch").firstChild.accessKey = "w"; }

//Interwikis
if (document.getElementsByClassName("interwiki-en")[0]) {
  document.getElementsByClassName("interwiki-en")[0].firstChild.accessKey = "1";
}
if (document.getElementsByClassName("interwiki-fr")[0]) {
  document.getElementsByClassName("interwiki-es")[0].firstChild.accessKey = "2";
}
if (document.getElementsByClassName("interwiki-it")[0]) {
  document.getElementsByClassName("interwiki-fr")[0].firstChild.accessKey = "3";
}
if (document.getElementsByClassName("interwiki-ja")[0]) {
  document.getElementsByClassName("interwiki-it")[0].firstChild.accessKey = "4";
}
if (document.getElementsByClassName("interwiki-pl")[0]) {
  document.getElementsByClassName("interwiki-ja")[0].firstChild.accessKey = "5";
}
if (document.getElementsByClassName("interwiki-zh")[0]) {
  document.getElementsByClassName("interwiki-pl")[0].firstChild.accessKey = "6";
}