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
// Ursprüngliche Version kopiert von [[Benutzer:BLueFiSH.as]] 
 // der hat es ursprünglich gefunden bei:
 //  http://de.wikipedia.org/wiki/Benutzer:SirJective/monobook.js 
 // 
 // Ich (Littl) würde mich über Rückmeldungen sehr freuen !
 // getestet mit Firefox und IE
 //
 //jetzt neu:*Automatisierter Löschantrag und Qualitätssicherung
 //            - Artikel müssen  nicht zum Bearbeiten geöffnet werden.
 //          *verbesserte Wartbarkeit
 //          *Revert-Button mit der Möglichkeit eine Begründung einzugeben
 //          *Optionale Dropdown-Auswahlfelder
 //          *Aussehen den anderen Feldern links angepasst, ist jetzt "seamless integratet" :-)
 //          *APPERs Rechtschreibprüfung
 //          *godmode-light
 //          *Man kann ein Häkchen setzen, wenn die Seite immer wieder neu geladen werden soll 
 //           -Nützlich für Recentchanges und andere Seiten. Für andere Zeitintervalle siehe Variable "timeout".
  
 var user   ='WhileTrue'; 		 // <- bitte anpassen !!!
 var usedropdown = false;        // Wenn keine Dropdowns gewünscht sind, hier false eintragen !
 var autosave = false;            // automatisches Speichern ja/nein
 var rechtschreibpruefung = false;// APPERS Rechtschreibprüfung aktivieren ?
 var godmodelight = true;
 var timeout = 10000;            // 10 Sekunden auf das Neuladen der Seite warten.
 
 var zeigeversion = false;  
 var debugme = false;
 
 // <nowiki>  <- nicht löschen !
 var trenner='<hr />';
 var br     ='<br />';
 var Quickbar = '<div class="pBody" id="quickbar" style="position:absolute; top:5px; z-index:10; width: 14em;">';
 var version  = '0.7';
 var xxx      = '';
 var scrpt    = '';
 var scrptn   = 0;
 var dropdown = usedropdown; 
 
 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 UrlParameters = new Array ();
 readparams();

 var isEdit   = ( document.URL.indexOf ( 'action=edit' ) > 0 || document.URL.indexOf ( 'action=submit' ) > 0);
 var isSpecial= ( document.URL.indexOf ( 'Spezial:' ) > 0);
 var isPHP =    ( document.URL.indexOf ( 'index.php' ) > 0);
 
 //uri-parameter für aktion()
 var subjp      = 'subj';       //Subject
 var textp      = 'txt';        //Für Text-Austausch
 var insp       = 'ins';	//Vor dem Text einfügen
 var speichernp = 'speichern';  //Auf "Speichern" klicken 
 
 var reloadme   = 'neuladen';   //merker für reload
 
 //
 // Ab hier der Inhalt des "Fensters" oben links
 //
 if (usedropdown) {w (0,trenner,'--' + user + '--','')};

 w(1,'/w/index.php?title=Spezial%3AAllpages&from='+user+'&namespace=2','NS','');
 w(1,'/wiki/Benutzer:'+user, 'HM', ''); 
 w(1,'/wiki/Benutzer_Diskussion:'+user, 'DS', ''); 
 w(1,'/wiki/Spezial:Preferences', 'PR', ''); 
 w(1,'/wiki/Spezial:Watchlist', 'WL', ''); 
 w(1,'/wiki/Spezial:Userlogout', 'LO', ''); 
 
 w (0,trenner,'--Externe--',''); 
 w (1,'http://kohl.wikimedia.org/~kate/cgi-bin/count_edits?user='+user+'&dbname=dewiki','Kate','_blank'); 
 w (1,"http://www.ripe.net/whois",'ripe','_blank'); 
 w (1,"http://www.copyscape.com",'copyscape','_blank'); 
 w (1,"http://www.affenkrieger.de/wiki/wikicc.php",'Affenkrieger','_blank'); 
 w (1,"http://www.canoo.net",'canoo','_blank'); 
 w (1,"http://www.cia.gov/cia/publications/factbook/index.html",'Factbook','_blank')
 

 closedropdown();dropdown=false;
 
 if (isEdit) {
   w (0,trenner,'','');
 
   w (3,"br,'',''",'br');   
   w (3,"'†','',''",'†');
   w (3,"'<!-- ',' -->',''",'//');
   w (0,br,'','');
   w (3,"'<small>','</small>',''",'klein');
   w (3,"'<s>','</s>',''",'durch');
   w (3,"'<u>','</u>',''",'unter');
   w (0,trenner,'','');
 
   if (usedropdown) {dropdown=true;w (0,trenner,'--Bausteine--','')};
   w (3,"'== Weblinks ==\\n','',''",'Weblinks');
   //w (2,"'*{{IMDb Titel||}}\\n','','');document.editform.wpSummary.value='Vorlage:IMDb Titel';document.editform.wpTextbox1.focus();","IMdb-t");
   
   w (3,"'[[Kategorie:',']]\\n',''","Kat:");
   w (3,"'[[Benutzer:',']]',''","Benutzer:");
   w (3,"'[[Wikipedia:',']]',''","WP:");
   w (0,br,'','');

   w (2,"'Redirect angelegt','#REDIRECT [[]]',1","Redir");
   w (2,"'+Überarbeiten','{{Überarbeiten}}\\n\\n',3","Über");
   w (2,"'+Stub','{{Stub}}\\n\\n',2","Stub");
   w (2,"'+Lückenhaft','{{lückenhaft}}\\n\\n',3","Lücke");
   //w (3,"'{{Gesundheitshinweis','}}',''","Gesundheitshinweis");
   w (3,"'{{subst:Hallo','}}',''","Hallo");  
   closedropdown();dropdown=false;   

   w (0,trenner,'','');
   w (4,"myReplace();","Replace");
   w (4,"myTypoKorr();","TypoKorr");
 } //if (isEdit)
   
 if (!isSpecial) {
 w (0,trenner,'','');
 w (4,"eintragen(1);","QS");
 w (4,"eintragen(2);","LA");
 w (4,"eintragen(3);","SLA");
 }

 if (isEdit) w (2,"'+URV','{{URV}} von [hier] --\~\~\~\~',1","URV");
 

 var indropdown = false;
 var ind = 0;
    
 closedropdown();
 
 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 : '', '</div>');
 }                

 document.write(xxx,'</div>');

 if (scrpt > '') document.write('<script> function _doopt (was) { switch (was) {',scrpt,'}}<\/script>');scrpt='';
 //
 // ab hier functions
 //
 
 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 absenden () {if (!debugme) {document.editform.wpSave.click();} else {alert ('Speichern');}}
  
 function myReplace() //BLueFiSH.as
 { 
   var alt=prompt('Altes Wort','');var neu=prompt('Neues Wort','');
   var i=tkorr(alt,neu);        
   if ( i > 0 )
   { alert('Es wurde '+i+' Mal <'+alt+'> durch <'+neu+' ersetzt.');
     document.editform.wpMinoredit.checked=true;
     document.editform.wpSummary.value=alt+' -> '+neu;
     document.editform.wpSummary.focus();
   }
   else
   { alert('Es wurde kein Vorkommen gefunden');
   }
 }
 
 /* Im nun folgenden das Skript mit dem sich recht leicht Schreibfehler korrigieren lassen
    (natürlich muss man bei Zitaten aufpassen) ;-) BLueFiSH.as */
 
 function myTypoKorr() // BLueFiSH.as
 {var 
    i=tkorr(' im wesentlichen ',' im Wesentlichen ') + 
      tkorr('Des Weiteren ','Des weiteren ') +
      tkorr(' daß ',' dass ') +
      tkorr(' ass ',' as ');
            
  if ( i > 0 )
   { alert('Es wurden '+i+' Schreibfehler korrigiert.');
     document.editform.wpMinoredit.checked=true;
     document.editform.wpSummary.value='typo';
     document.editform.wpSummary.focus();
   }
   else
   { alert('Es wurde kein Schreibfehler gefunden');
   }
 }
 
 function tkorr(alt,neu) { //Littl
  var i=0;
  while(document.editform.wpTextbox1.value.search(alt)!=-1){i++;
  	document.editform.wpTextbox1.value=document.editform.wpTextbox1.value.replace(alt,neu);}
  return i; 	
 } 	
 
 function contrib() // BLueFiSH.as
 { wer=prompt('IP oder Name eingeben!','');
   newwin = window.open("http://de.wikipedia.org/w/index.php?title=Spezial:Contributions&target="+wer,"Beiträge");
   newwin.focus();
 }
 
 // ============================================================
 // BEGIN Add Edit Link To Old Version Links (von Berlin-Jurist so weit ich weiß)
 // Revert-Fkt hinzugefügt + Beschränkung auf Seiten wo es Sinn macht. Littl.
 
 function AddEditLinkToOldVersionLinks() {
  
  var ishistory = (UrlParameters['action']=='history');	
  //var iscontrib = (document.URL.indexOf ('Spezial:Contributions') > 0 );
  if (ishistory || ((UrlParameters['diff']>'') && (UrlParameters['oldid']>'')) ) {
   
   var Edit = '(bearbeiten)';
   var Rv   = '(rv)';
 
   var first= true;
   for (var i=0; aNode = document.getElementsByTagName("a")[i]; i++)
   { // if it's a link to an old version but not a diff-link
     if ( (href = aNode.getAttribute("href")) && (href.search(/oldid=/) != -1) 
          && ( (href.search(/diff=/) == -1) )
        )
     { // Create Edit Link
       var EditNode = document.createElement('a');
       EditNode.setAttribute('href', href + '&action=edit#summary'); 
       var EditTextNode = document.createTextNode(Edit);
       EditNode.appendChild(EditTextNode);
       // Add Edit Link To Old Version Link
       aNode.parentNode.insertBefore( EditNode, aNode.nextSibling );
       // Insert whitespace before Edit Link
       aNode.parentNode.insertBefore( document.createTextNode(' '), aNode.nextSibling );
       // jump over inserted <a-Link
       i++;
 
       
        // Create RV Link
       if ((ishistory && !first) || (!ishistory)) {  
        var Rvnode = document.createElement('a');
        Rvnode.setAttribute('href', 'javascript:revertme("'+encodeURI(href)+'")');     
        var RvTextNode = document.createTextNode(Rv);
        Rvnode.appendChild(RvTextNode);
        aNode.parentNode.insertBefore( Rvnode, aNode.nextSibling );
        aNode.parentNode.insertBefore( document.createTextNode(' '), aNode.nextSibling );      
        i++;
       } 
       first=false;
     }
   }
  } 
 }
 // END Add Edit Link At Old Version Links
 // ============================================================
 
// ***************************************
// Minimale Rechtschreibprüfung von APPER
// ***************************************
 var words = "";

 function spellcheck()
 {
   if (navigator.userAgent.indexOf("Firefox") > 0) // Firefox
   {
     if (document.body.className == "ns-0") // Beim Firefox nur für Artikel
     {
       words = document.getElementById("bodyContent").textContent;
     }
   }
   else // Opera + IE
   {
     // Bei Opera immer, sonst nur ns-0
     if ((navigator.userAgent.indexOf("Opera") > 0) || (document.body.className == "ns-0")) 
     {
       words = document.getElementById("bodyContent").innerText;
     }    
   }

   if (words != "")
   {
     // In 1000-Zeichen-Pakete zerlegen ... ein wenig überlappen lassen
     for(i=0; i<=(words.length/1000); i++)
     {
       // Woerter an meinen Server senden
       var scJS = document.createElement('script');
       scJS.type = 'text/javascript';
       scJS.src = 'http://www.apper.de/wikipedia/sc/check.php?word=' + escape(words.substr(i*1000,1010));
       document.getElementsByTagName('head')[0].appendChild(scJS);
     }
   }
 }

 function markWord(node, text)
 {
   var pos, len, newnodes = 0;
   var newnode, middlenode, endnode;

   // textnode - search for word
   if (node.nodeType == 3)
   { 
     pos = node.data.search(text);
     if(pos >= 0)
     {
       // create new span-element
       newnode = document.createElement("span");
       newnode.style.backgroundColor = "#FF9191";

       // get length of the matching part
       len = node.data.match(text)[0].length;

       // splits content in three parts: begin, middle and end
       middlenode = node.splitText(pos);
       endnode = middlenode.splitText(len);

       // appends a copy of the middle to the new span-node
       newnode.appendChild(middlenode.cloneNode(true));
       // replace middlenode with the new span-node
       middlenode.parentNode.replaceChild(newnode, middlenode);

       newnodes = 1;
     }
   }
   else if ((node.nodeType == 1)  // element node
            && (node.hasChildNodes()) // with child nodes
            && (node.tagName.toLowerCase() != "script") // no script, style and form
            && (node.tagName.toLowerCase() != "style")
            && (node.tagName.toLowerCase() != "form"))
   {
     var this_child;
     for (this_child = 0; this_child < node.childNodes.length; this_child++)
     {
       this_child = this_child + markWord(node.childNodes[this_child], text);
     }
   }
   return newnodes;
 }

// Ende Rechtschreibprüfung
// ************************
 
 //******************************************  
 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 readparams
 //******************************************
 
 
 function revertme (href) { //Littl
   var grund=prompt('Grund des Reverts:','Revert Vandalismus');
   if (grund != null) {
    grund=trim(grund);
    if (grund=='') grund='Revert';
    href=href + "&action=edit&" + speichernp + "=1&" + subjp + "=" + encodeURIComponent(grund);
    window.open (href);   
    window.focus();
   }  
 }	
  
 // 
 // LA und QS eintragen
 // Fragt nach der Begründung, füllt die Eingabefelder aus, und ruft die Löschkandidatenseite/QSSeite auf.
 // Modifiziert, ursprünglich von BLueFiSH.as
 

 //function eintragen(kurz, vorlage,seite) 
 function eintragen(typ) {
   switch (typ) {
    case 1 : {var kurz="QS"; var vorlage="subst:Qualitätssicherung"; var seite="Qualitätssicherung";break;}
    case 2 : {var kurz="LA"; var vorlage="subst:Löschantrag"; var seite="Löschkandidaten";break;}
    case 3 : {var kurz="SLA"; var vorlage="Löschen"; var seite="";break;}
   } 	
 	
   var lemma = ( UrlParameters["title"] > "" ) ?
         UrlParameters["title"] :
         decodeURIComponent((location.href.substr(location.href.indexOf("/wiki/") + 6,99))).split('#')[0]; 
    
   var grund=prompt(kurz+'-Grund:','');   
   if ( grund != null ) {
     grund=trim(grund); 
     var speichernpa = (autosave) ? "&" + speichernp + "=1" : "";
     if (typ == 1 || typ == 2 ) { //QS oder LA
      
       // Öffnen der LA-Seite, gleich zum Eintragen des LA, Texte werden als Parameter übergeben
       var uri=encodeURI('http://de.wikipedia.org/w/index.php?title=Wikipedia:'+seite+'/'+WPDatum+'&action=edit&section=new') +
                "&" + subjp + "=" + encodeURIComponent( '[[' + lemma + ']]' ) +
                "&" + textp + "=" + encodeURIComponent( grund + '\n--~~~~\n' ) + speichernpa;
       window.open(uri);
     }
 
 
   // bearbeiten der Artikelseite und eintragen lassen (macht aktion() weiter unten)     
 
     // Vorlage eintragen 
     window.focus(); 
     var txt = '{{'+vorlage+'}}\n\n'+grund+'\n--~~~~\n----\n\n\n';
     if (isEdit) {   // wir sind schon im Edit-Modus
      document.editform.wpTextbox1.value= txt + document.editform.wpTextbox1.value;
      document.editform.wpSummary.value=kurz+'+';
      document.editform.wpWatchthis.checked=false;
      if (autosave) absenden();
     }
     else // Wir müssen die Seite erst zum editieren öffnen
     { 
      uri="http://de.wikipedia.org/w/index.php" +
               "?title=" + encodeURIComponent(lemma) + "&action=edit" +
               "&" + subjp + "=" + encodeURIComponent(kurz+"+") +
               "&" + insp + "=" + encodeURIComponent(txt) + speichernpa;
      location.href = uri;
     }
   }
 }
 
 // 
 // Funktion aktion (früher "loeschkandidat")
 // Entnimmt Parameter aus der URI, fügt sie in die Textfelder ein und klickt ggf. auf "Speichern"
 //
 
 function aktion() {  //Littl
  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[speichernp] == "1") absenden();
 }
 
 var timeoutaktiv;
 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)}	 	   	
 }
 
 function Init() {     
   document.getElementById("column-one").style.paddingTop =
              (10+document.getElementById("quickbar").clientHeight)+"px"; 
   if (navigator.userAgent.indexOf("Firefox") > 0 ) document.getElementById("quickbar").style.position = "fixed";

    	
   if (!isEdit) {
    if (UrlParameters[reloadme] == "1") {document.getElementById('reloadme').checked=true; setreload();}  
    //Patch: in godmode-light.js ist ein fehler (ein space zwischen <strong> und (aktuell))
    if (godmodelight && (location.href.indexOf(':Contributions') != -1)) {    
      document.getElementById('bodyContent').innerHTML= //Patch für Bug in godmode-light.js
       document.getElementById('bodyContent').innerHTML.replace(/\<strong\>\(aktuell\)/gi,"<strong> (aktuell)");           
    }
      AddEditLinkToOldVersionLinks();
    }
    else
    {
      if (!isSpecial) aktion();                
    }
   if (!isSpecial && rechtschreibpruefung) spellcheck();
 }
 
 window.onload = Init;
 if (godmodelight) document.write('<SCRIPT SRC="http://sam.zoy.org/wikipedia/godmode-light.js"><\/SCRIPT>');

 // </nowiki> <- nicht löschen !!!