Benutzer:Euku/monobook.js

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 8. Oktober 2006 um 22:04 Uhr durch Euku (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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
//<div style="background-color:#aaaaee; border:1px solid #ccc; text-align:center; padding:3px; margin:15px 0;">
// '''Achtung das ist eine Testversion, wenn du diese Datei übernehmen willst nimm [http://de.wikipedia.org/w/index.php?title=Benutzer:Spongo/monobook.js&oldid=22224273 diese Version]!'''
//</div>

 // FAQ:
 //
 // Frage:   Wie übernehme ich dieses Skript?
 //
 // Antwort: Einfach "Quelltext betrachten", alles markieren und kopieren, und dann in deine eigene
 //          monobook.js (also hierhinein: [[Spezial:Mypage/monobook.js|Benutzer:<DeinName>/monobook.js]]) kopieren.
 //          Am sinnvollsten ist es dabei, wenn du die Originalversion von [[Benutzer:PDD/monobook.js]]
 //          übernimmst, da diese immer auf dem neuesten Stand ist.
 //
 // Frage:   Kann ich dieses Skript einfach so übernehmen, oder muss ich da tausend Sachen ändern?
 //
 // Antwort: Du kannst natürlich alles ändern, aber du musst nicht. Einfach erstmal kopieren, ausprobieren,
 //          und dann so anpassen, dass es deinem Bedarf gerecht wird.
 //
 // Weitere Fragen und Antworten findest du hier: [[Benutzer:PDD/monobook FAQ]]
 
 //
 // Hier bitte eine Signaturvariante aussuchen!
 //
 
 // <nowiki>
 // (Signaturvariante 1: sinnvoll bei unter "Einstellungen" typografisch angepassten Signaturen)
 var usersignature = '\~\~\~\~';
 // (Signaturvariante 2: Datum kleiner, kein Zeilenumbruch nach dem Leerzeichen)
 // var usersignature = '<span style=\"white-space:nowrap;\">-- \~\~\~ <small>\~\~\~\~\~<\/small><\/span>\n';
 // (Wiki-Standard-Signatur, bitte das Leerzeichen nach den zwei Strichen beachten)
 // var usersignature = '-- \~\~\~\~';
 // </nowiki>
 
 // Originalskript von [[Benutzer:SirJective]]
 // bearbeitet von [[Benutzer:BLueFiSH.as]]
 // bearbeitet von [[Benutzer:Littl]] (2005-09-07)
 // bearbeitet von [[Benutzer:Schwalbe]] (2006-02-03)
 // bearbeitet wieder von [[Benutzer:Littl]] (2006-02-21)
 // bearbeitet von [[Benutzer:PDD]] (ab 2006-04-22)

 // <nowiki>
 // einstellungen laden
 importPage(wgUserName + '/monobook-cfg.js');
 function InitMonobook() {
     // (PDD: note to self: version auch in alert-Funktion ändern!)
     var version  = 'P097y';
     
     var user  = wgUserName ; // username wird automatisch übernommen
     
     var trenner='<hr />';
     var br     ='<br />';
     var Quickbar = '<div class="pBody noprint" id="p-quickbar" style="position:absolute; top:5px; z-index:10; width:14em;">';
     var xxx      = '';
     var scrpt    = '';
     var scrptn   = 0;
     var dropdown = usedropdown;
     
     var qbtarget = '_self';
     if (qbnewpage) qbtarget = '_blank';
     
     var Monate = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
     var jetzt = new Date();
     var Jahr = jetzt.getYear(); if (Jahr < 999)  Jahr += 1900;
     var WPDatum = jetzt.getDate() + '._' + Monate[jetzt.getMonth()] + '_' + Jahr;
     var WPDatum2 = Jahr + '/' + Monate[jetzt.getMonth()] + '/' + jetzt.getDate();
     
     // get URL parameters (used for page type variables)
     var UrlParameters = new Array ();
     readparams();

     // page type variables: namespaces
     var isBild     = (wgCanonicalNamespace == "Image");
     var isCategory = (wgCanonicalNamespace == "Category");
     var isTemplate = (wgCanonicalNamespace == "Template");
     var isGeneric  = false;
     if ((!isBild) && (!isCategory) && (!isTemplate))
         isGeneric  = true;
     
     // page type variables: user & user discussion lumped together
     var isUserpage = ( (wgCanonicalNamespace == "User") || (wgCanonicalNamespace == "User_talk") );
     
     // page type variables: namespace -1
     var isSpecial  = (wgCanonicalNamespace == "Special");
     var isRestore = (isSpecial && (wgTitle == "Undelete"));
     var isContrib = (isSpecial && (wgTitle == "Contributions"));
     var isWatchlist = (isSpecial && (wgTitle == "Watchlist"));
     
     // page type variables: other stuff
     var isPHP     = (document.URL.indexOf('index.php') > 0);
     var isDiff    = UrlParameters["diff"];
     var isEdit    = (document.URL.indexOf('action=edit') > 0) || (document.URL.indexOf ('action=submit') > 0);
     var isHistory = (document.URL.indexOf('action=history') > 0);
     // uri-parameter
     // benutzt in eintragen.js und addEditAndRevertLinks.js
     // (targets für fillActionPage() )
     var subjp      = 'subj';       //Subject
     var textp      = 'txt';        //Für Text-Austausch
     var insp       = 'ins';        //Vor dem Text einfügen
     var addp       = 'add';        //an Text anhängen
     var minorp     = 'minor';      //(k)leine Änderung
     var speichernp = 'speichern';  //Auf "Speichern" klicken 
     
     var reloadme   = 'neuladen';   //merker für reload
     // Ab hier der Inhalt des "Fensters" oben links
     //
     quickBar = "%20w%20(4%2C%22configMonobook()%3B%22%2C%22Einstellungen%22)%3B%20%20%2F%2F%20extern";
     eval(decodeURIComponent(quickBar));
     
     var indropdown = false;
     var ind = 0;
        
     closedropdown();
     
     // Quickbar ins Dokument schreiben
     document.write(Quickbar);
     
     if (!isEdit || zeigeversion || isPHP) {
      document.write('<div align=right>',
                     !isEdit ?
                       ('Neu laden:<input type="checkbox" id="reloadme" name="reloadme" onchange="setReload()"></input>')
                       : '',
                     zeigeversion ?
                       (' ' + version)
                       : '',
                     (zeigeversion && zeigenutzer) ?
                       ('.')
                       : '',
                     zeigenutzer ?
                       (user)
                       : '',
                     '</div>');
     }                
     document.write(xxx,'</div>');
     
     if (scrpt > '') {
        document.write('<script> function _doopt (was) { switch (was) {', scrpt, '}}<\/script>');
        scrpt='';
     }
     
     //
     // ab hier functions
     //
     
     var timeoutaktiv; // sollte evtl. besser lokal sein?
 }
 addOnloadHook(InitMonobook);

 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]);
  }
 }

 function setReload() {
   if (document.getElementById('reloadme').checked && (UrlParameters[reloadme] != "1")) {
       var uri = (document.URL.indexOf('?') >0) ? ('&' + reloadme + '=1') : ('?' + reloadme + '=1');
       timeoutaktiv = window.setTimeout(location.href=location.href+uri, timeout);
   }
   else if (document.getElementById('reloadme').checked	&& (UrlParameters[reloadme] == "1")) {
       timeoutaktiv=window.setTimeout("location.reload()", timeout);
   }
   else {
       window.clearTimeout(timeoutaktiv); // bizarr, timeoutaktiv ist hier gar nicht belegt?
   }
 }
 
 function w (was,lurl,linktext,targt) {
  if (!dropdown) {
   switch (was) {
    case 0 : xxx=xxx+lurl;break;
    case 1 : xxx=xxx+'<a href="'+lurl+'" target="'+targt+'">'+linktext+'</a>&nbsp; ';break;
    case 2 : xxx=xxx+'<a href="#" onclick="newtext('+ lurl +')">'+linktext+'</a>&nbsp; ';break;  	
    case 3 : xxx=xxx+'<a href="#" onclick="insertTags('+ lurl +')">'+linktext+'</a>&nbsp; ';break;  	   
    case 4 : xxx=xxx+'<a href="#" onclick="'+ lurl +'">'+linktext+'</a>&nbsp; ';break;  	   
   }	 	    
  } //if
  else
  {
   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+':insertTags('+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 dodropdown (aktion) {
  var zutun = aktion.split('|');
  var was = Number(zutun[0]);
  var wie = zutun[1];
  
  switch (was) {
   case 1 : window.open (wie); break;
   case 2 : _doopt (Number(wie)); break;
   case 3 : _doopt (Number(wie)); break;
   case 4 : _doopt (Number(wie)); break;
  } //switch	
 } //dodropdown	
 
 	
 function closedropdown () {
  if (indropdown) xxx=xxx+'</select>';
  indropdown = false;
 }	
  
 function newdropdown (oname) {
   closedropdown();   
   xxx=xxx+'<select size=1 onchange="dodropdown(this.value);" style="width:135px;font-size:9px;">';     	
   if (oname > '') {xxx=xxx+'<option>'+oname+'</option>';}
   indropdown = true;
   ind=2;
 }	
  
 function newtext (subj,text,wo)
  {  //wo=1 : Text austauschen
     //wo=2 : Text am Ende anhängen
     //wo=3 : Text vorne Einfügen
     
   if (subj>"") document.editform.wpSummary.value=subj;
   
   switch (wo) {
       case 1 : document.editform.wpTextbox1.value=text+'\n'; break;
       case 2 : document.editform.wpTextbox1.value=document.editform.wpTextbox1.value+'\n'+text;break;
       case 3 : document.editform.wpTextbox1.value='\n'+text+'\n'+document.editform.wpTextbox1.value;break;
   }    
   document.editform.wpTextbox1.focus();
  }
 
 function trim(str) {
   return str.replace(/^\s*|\s*$/g,"");
 }
 
 function importPage(seite, lang) { // all languages support
    name='User:'; // international name, works in all wikipedias
    if(!lang) lang = wgContentLanguage;
 
    // new version
    seite = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=' + name + seite +
           '&action=raw&ctype=text/javascript&smaxage=2678400&dontcountme=s';
 
    var head = document.getElementsByTagName('head').item(0);
    var js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', seite);
    head.appendChild(js);
 
    return false;
    // old version
    // document.write('<SCRIPT TYPE="text/javascript" SRC="http://' + lang
    // + '.wikipedia.org/w/index.php?title=' + name + seite
    // + '&action=raw&ctype=text/javascript&smaxage=2678400&dontcountme=s"><\/SCRIPT>');
 }
 
 function TaggAll() { // Schwalbe nach Anregung von Poupou, ursprüngl. von BLueFiSH.as
  //(fast) alle Checkboxen auswählen, für Spezial:Undelete Versionenwiederherstellung
  for(var i=3;i<=10000;i++)
    document.getElementsByTagName("input")[i].checked=true;
 }
 
 function undate() { // von [[Benutzer:D]]
   var tb=document.editform.wpTextbox1;
   tb.value=tb.value.replace(/\[\[\s*(\d+(er)?( v. Chr.)?)\s*\]\]/g, "$1")
                    .replace(/\[\[\s*(\d+\. (Jahrhundert|Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember))\s*\]\]/g, "$1");
 }
 
 // function insertAfter
 function insertAfter(parent, node, referenceNode) {
   parent.insertBefore(node, referenceNode.nextSibling);
 }
 
 // </nowiki> <- nicht löschen!!!
 
 // ***** FOOT-Block *****
 // Setup-Modul
 importPage('Spongo/configMonobook.js');
 // obligatorische Funktionen (inline)
 
 // absenden() aufgerufen aus fillActionPage()
 function absenden() {
   if (!debugme)
     document.editform.wpSave.click();
   else
     alert ('Speichern');
 }

 // fillActionPage()  (früher aktion(), ganz früher loeschkandidat() )
 // von Littl, ergänzt von Revvar
 //
 // Entnimmt Parameter aus der URI, fügt sie in die Textfelder ein und klickt ggf. auf "Speichern"
 
 function fillActionPage() {
   if (UrlParameters[subjp]>"")
      document.editform.wpSummary.value = UrlParameters[subjp];
   if (UrlParameters[textp]>"")
      document.editform.wpTextbox1.value = UrlParameters[textp];
   if (UrlParameters[insp]>"")
      document.editform.wpTextbox1.value = UrlParameters[insp] + document.editform.wpTextbox1.value;
   if (UrlParameters[addp]>"")
      document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + UrlParameters[addp];
   if (UrlParameters[minorp] == "1")
      document.editform.wpMinoredit.checked=true;
   if (UrlParameters[speichernp] == "1") {
      if (UrlParameters[subjp].search("SLA")==0) {
         if (document.getElementById("newarticletext")) {
            alert("Artikel wurde bereits gelöscht!");
         } else absenden();
      } else absenden();
   }
 } 

 function initQuickbar() {     
   document.getElementById("column-one").style.paddingTop =
      (10+document.getElementById("p-quickbar").clientHeight)+"px";
   if (navigator.userAgent.indexOf("Firefox") > 0 )
      document.getElementById("p-quickbar").style.position = "fixed";
 }
 addOnloadHook(initQuickbar);
 
 function doReload() {
   if (UrlParameters[reloadme] == "1") {
      document.getElementById('reloadme').checked=true;
      setReload();
   }
 }
 
 function InitMonobook2() {
     if ((isEdit) && (!isSpecial)) addOnloadHook(fillActionPage);

     if (!isEdit) addOnloadHook(doReload);
     
     // ausgelagerte obligatorische Funktionen
     importPage('PDD/eintragen.js'); // [[Benutzer:PDD/eintragen.js]]
     importPage('PDD/markStimmrecht.js'); // [[Benutzer:PDD/markStimmrecht.js]]
     importPage('PDD/alertOnChanges.js'); // [[Benutzer:PDD/alertOnChanges.js]]
     
     if (diffwidth && isDiff) {
        // PDD: keine der beiden Versionen bisher getestet; weiß also nicht, welche besser funktioniert
        importPage('Olliminatore/fixdiffwidth.js'); // [[Benutzer:Olliminatore/fixdiffwidth.js]]
        // importPage('BLueFiSH.as/JS/fixdiffwidth'); // [[Benutzer:BLueFiSH.as/JS/fixdiffwidth]]
     }
     
     // obligatorisch nur für editpages
     if (isEdit) {
        importPage('PDD/wpTextReplace.js'); // [[Benutzer:PDD/wpTextReplace.js]]
        importPage('PDD/replaceQuoteSigns.js'); // [[Benutzer:PDD/replaceQuoteSigns.js]]
        // importPage('PDD/replaceQuoteSigns2.js'); // [[Benutzer:PDD/replaceQuoteSigns2.js]]
        importPage('BLueFiSH.as/JS/markup'); // [[Benutzer:BLueFiSH.as/JS/markup]]
     }
     
     // ausgelagerte optionale Funktionen (Autoload)
     
     // revert/loglink-Funktionen: möglichst früh einbinden
     // Revert godmode-light
     if (godmodelight && !isEdit && !(isSpecial && !isContrib)) {
         importPage('PDD/godmode-light.js'); // [[Benutzer:PDD/godmode-light.js]]
         // importPage('Olliminatore/godmode-light.js','en');  // [[:en:User:Olliminatore/godmode-light.js]]
     }
     
      // Revert addEditAndRevertLinks
     if (!(!aerhistory && isHistory) && !isEdit) {
        if (editlinkoldversion || revertwithreason)
           importPage('PDD/addEditAndRevertLinks.js'); // [[Benutzer:PDD/addEditAndRevertLinks.js]]
     }
     // LogLinks addLogsLink
     if (addlogslink && !isSpecial) importPage('PDD/addLogsLink.js'); // [[Benutzer:PDD/addLogsLink.js]]
     
     // jetzt alles andere, was optional ist
     if (addeditsection0 && !isSpecial) importPage('PDD/addEditSection0.js'); // [[Benutzer:PDD/addEditSection0.js]]
     // changeBeschriftungen *nach* addEditSection0 (!)
     if (beschriftungen) importPage('PDD/changeBeschriftungen.js'); // [[Benutzer:PDD/changeBeschriftungen.js]]
     if (rechtschreibpruefung && !isSpecial) {
         var DontAutorunRP = false;
         importPage('APPER/RP/js'); // [[Benutzer:APPER/RP/js]]
     }
     if (ippvandalmark && !isEdit) importPage('APPER/IP-Patrol/js'); // [[Benutzer:APPER/IP-Patrol/js]]
     if (showredundantlinks && !isSpecial) importPage('PDD/showRedundantLinks.js'); // [[Benutzer:PDD/showRedundantLinks.js]]
     if (signing) importPage('Olliminatore/signing.js'); // [[Benutzer:Olliminatore/signing.js]]
     if (unsigning && isEdit) importPage('Olliminatore/unsigned.js');  // [[Benutzer:Olliminatore/unsigned.js]]
     
     // extended search & replace feature
     if (searchbox) importPage('Zocky/SearchBox.js','en');  // [[:en:User:Zocky/SearchBox.js]]
     
     // Syntax highlighter
     if (js_highlight) importPage('Olliminatore/shCore.js','en');  // [[:en:User:Olliminatore/shCore.js]]
     
     // wikiminiatlas
     // [[Benutzer:Dschwen/wikiminiatlas2.js]] - diese Zeile bitte mitkopieren
     // Atlas bei Georeferenzen
     if (miniatlas && !isSpecial) importPage('Dschwen/wikiminiatlas2.js');  // [[Benutzer:Dschwen/wikiminiatlas2.js]]
     
     // showreftoggle
     if (reftoggle && !isSpecial) importPage('Malte_Schierholz/reftoggle.js');  // [[Benutzer:Malte Schierholz/reftoggle.js]]
     
     // setGallery
     if (newgallery && !isSpecial) importPage('Olliminatore/newgallery.js'); // [[Benutzer:Olliminatore/newgallery.js]]
     
     // custom toolbar buttons
     if (customtoolbar) importPage('Olliminatore/customToolbar.js'); // [[Benutzer:Olliminatore/customToolbar.js]]
     
     // quickedit
     if (qeEnabled) importPage('ASM/quickedit.js'); // [[Benutzer:ASM/quickedit.js]]
     
     // RIPE tooltips
     if (ripe && !isEdit) importPage('PDD/tooltips.js'); // [[Benutzer:PDD/tooltips.js]]
     
     // Lupin's popups
     if (lupinpopups) importPage('Lupin/popups.js','en');   // [[:en:User:Lupin/popups.js]]
     
     // Markierskripte ganz zum Schluss einbinden, da sie innerHTML verändern
     if (!(!mawatchlist && isWatchlist) && !(!macontribs && isContrib)) {
        if (markadmins || markexadmins || markrenadmins)
           importPage('PDD/markAdmins.js'); // [[Benutzer:PDD/markAdmins.js]]
     }
     if (!(!muwatchlist && isWatchlist) && !(!mucontribs && isContrib)) {
        if (markutf8) importPage('PDD/markUTF8.js'); // [[Benutzer:PDD/markUTF8.js]]
     }
 }
 addOnloadHook(InitMonobook2);
 // Und hier ist die monobook.js zu Ende.