Jump to content
Wikimedia Meta-Wiki

User:Amga/vector.js: Difference between revisions

From Meta, a Wikimedia project coordination wiki
Content deleted Content added
Line 437: Line 437:
if (id) {
if (id) {
entry.id = menu.closest('nav').id + '-entry-' + id
entry.id = menu.closest('nav').id + '-entry-' + id
entry.className = 'mw-list-item mw-list-item-js'
}
}
var a = document.createElement('a')
var a = document.createElement('a')
a.href = href
a.href = href
a.title = title || label
a.title = title || label
var span = document.createElement('span')
(削除) a (削除ここまで).textContent = label
(追記) span (追記ここまで).textContent = label
a.appendChild(span)
entry.appendChild(a)
entry.appendChild(a)
menu.appendChild(entry)
menu.appendChild(entry)

Revision as of 20:41, 12 March 2022

 /*
  * Based on scripts by PDD and Guandalug
  */

 functionmyAddOnloadHook(code){
 if(document.readyState=='complete'){
 code()
 }else{
 jQuery(window).on('load',code)
 }
 }

 varmwLoader=mw.loader
 varmwConfig=mw.config
 varmwUtil=mw.util

 // load my global css
 mwLoader.load('//meta.wikimedia.org/w/index.php?title=User:Amga/vector.css&action=raw&ctype=text/css','text/css')

 // current page analysis
 varnamespaceNumber=mwConfig.get('wgNamespaceNumber')
 varpagetitle=mwConfig.get('wgPageName')
 varaction=mwConfig.get('wgAction')
 varcanonicalSpecialPageName=mwConfig.get('wgCanonicalSpecialPageName')

 varpesctitle=pagetitle.replace(/_/g,' ').split('&').join('%26').replace(/ /g,'+').replace(/_/g,'+')

 varisArticle=namespaceNumber===0
 varisDisc=namespaceNumber==1
 varisUser=namespaceNumber==2
 varisUserDisc=namespaceNumber==3
 varisTemplate=namespaceNumber==10
 varisSpecial=namespaceNumber==-1
 varisTalk=namespaceNumber%2==1

 varisEdit=action=='submit'||action=='edit'
 varisContrib=isSpecial&&((canonicalSpecialPageName=='Contributions')||(canonicalSpecialPageName=='DeletedContributions'))
 varisHistory=action=='history'

 /* ---------------
  * helperFunctions
  * ---------------
  */

 varUrlParameters=[]

 functionreadparams(){
 varasReadInUrlParameters
 varasReadInUrlParameter

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

 readparams()

 ////////////////////////////////////////////////////////////////////////////////////////
 // URI-Parameter für fillActionPage(), benutzt in eintragen.js, hinweise.js
 // außerdem in addEditAndRevertLinks.js (nur subjp, minorp, speichernp)
 // nur in [[Benutzer:Euku/markErledigt.js]] : subjaddp (plus add)

 varsubjp='subj'// Subject
 varsubjaddp='subjadd'// Subject zum Ranhängen
 vartextp='txt'// Für Text-Austausch
 varinsp='ins'// Vor dem Text einfügen
 varaddp='add'// an Text anhängen
 varminorp='minor'// (k)leine Änderung
 varnocreatep='nocreate'// beim Eintragen keine neue Seite generieren
 // für autosave:
 varasuserp='asuser'// usertoken
 varastimep='astime'// timestamptoken

 ////////////////////////////////////////////////////////////////////////////////////////
 // absenden()
 // aufgerufen aus fillActionPage() und hinweis() in hinweise.js

 functionabsenden(){
 document.editform.wpSave.click()
 }

 ////////////////////////////////////////////////////////////////////////////////////////
 // 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"
 // (die aufgerufene Seite ist dabei immer im Editmodus)

 functionfillActionPage(){
 // wenn Bausteineinfügung am Anfang:
 // nur einfügen, wenn Seite noch nicht gelöscht
 varpagedeleted=false
 if(document.getElementById('newarticletext')){
 pagedeleted=true
 }

 // nur einfügen, wenn noch nicht eingetragen
 // der URI-Aktionsparameter ist immer entweder insp oder textp oder addp, daher else
 vardoubleinsert=false
 if(UrlParameters[textp]>''){
 doubleinsert=findDoubleEntry(UrlParameters[textp],document.editform.wpTextbox1.value)
 }elseif(UrlParameters[insp]>''){
 doubleinsert=findDoubleEntry(UrlParameters[insp],document.editform.wpTextbox1.value)
 }elseif(UrlParameters[addp]>''){
 doubleinsert=findDoubleEntry(UrlParameters[addp],document.editform.wpTextbox1.value)
 }

 // Textfeld ausfüllen
 if(UrlParameters[textp]>''){
 if(doubleinsert){
 document.editform.wpTextbox1.value=UrlParameters[textp]+document.editform.wpTextbox1.value
 }else{
 document.editform.wpTextbox1.value=UrlParameters[textp]
 }
 }elseif(UrlParameters[insp]>''){
 document.editform.wpTextbox1.value=UrlParameters[insp]+document.editform.wpTextbox1.value
 }elseif(UrlParameters[addp]>''){
 document.editform.wpTextbox1.value=document.editform.wpTextbox1.value+UrlParameters[addp]
 }

 // weitere Felder ausfüllen
 if(UrlParameters[subjp]>''){
 document.editform.wpSummary.value=UrlParameters[subjp]
 }
 if(UrlParameters[subjaddp]>''){
 document.editform.wpSummary.value+=UrlParameters[subjaddp]
 }
 if(UrlParameters[minorp]=='1'){
 document.editform.wpMinoredit.checked=true
 }

 // wenn Textbaustein doppelt: Warnung
 if(doubleinsert){
 do_rc_alert('Artikel enthält den gewählten Baustein bereits!')
 }// wenn Seite schon gelöscht: Warnung
 elseif(pagedeleted&&(UrlParameters[nocreatep]=='1')){
 do_rc_alert('Artikel wurde bereits gelöscht!')
 }// wenn autosave eingeschaltet: Seite speichern
 elseif(validate_asuser(UrlParameters[asuserp])){
 if(validate_astime(UrlParameters[astimep])){
 absenden()
 }else{
 alert('Token zur automatischen Speicherung ist abgelaufen.')
 }
 }
 }

 if((isEdit)&&(!isSpecial))addOnloadHook(fillActionPage)

 ////////////////////////////////////////////////////////////////////////////////////////
 // findDoubleEntry()
 // aufgerufen aus fillActionPage()

 functionfindDoubleEntry(baustein,artikeltext){
 vardoublette=false

 // wenn keine Vorlage enthalten: Abbruch
 if(baustein==baustein.split('{{')[0]){
 returndoublette
 }

 varchkbaustein=baustein.split('{{')[1].split('}}')[0].split('|')[0]
 chkbaustein='{{'+chkbaustein

 if(navigator.userAgent.indexOf('Opera')==-1){
 // Zeilen wie die nächste generieren Fehler mit Opera, daher diesen Bereich auskommentiert
 // Fehler: RegExp.prototype.compile: syntax error in pattern or string
 // mit Firefox2 und IE7 geht das problemlos, hmm
 if(artikeltext.search(chkbaustein)!=-1){
 doublette=true
 }

 // Kleinschreibung & SLA & substs
 if(chkbaustein=='{{Löschen'){
 if(artikeltext.search('{{löschen')!=-1){
 doublette=true
 }
 if(artikeltext.search('{{SLA')!=-1){
 doublette=true
 }
 }
 if(chkbaustein=='{{subst:Löschantrag'){
 if(artikeltext.search('{{Löschantragstext')!=-1){
 doublette=true
 }
 }
 if(chkbaustein=='{{subst:Qualitätssicherung'){
 if(artikeltext.search('{{QS-Antrag')!=-1){
 doublette=true
 }
 }
 }// end of Opera hack
 return(doublette)
 }

 ////////////////////////////////////////////////////////////////////////////////////////
 // extendWpReason()
 // hebt 255-Zeichen-Textfeldbegrenzung auf
 functionextendWpReason(){
 varloeschgrund
 if(loeschgrund=document.getElementById('wpReason')){
 loeschgrund.setAttribute('maxLength',512)
 }
 }

 if(action=='delete'){
 addOnloadHook(extendWpReason)
 }

 ////////////////////////////////////////////////////////////////////////////////////////
 // do_rc_alert()

 functiondo_rc_alert(str){
 if(rcalertbox)alert(str)
 }

 // newRequest()
 // Author: D (?)
 functionnewRequest(){
 try{
 if(window.XMLHttpRequest){
 returnnewXMLHttpRequest()
 }else{
 returnnewActiveXObject('MSXML2.XMLHTTP')
 }
 }catch(e){
 returnfalse
 }
 }

 // --> vectorHelpers
 // importScript('User:Amga/vectorHelpers.js');

 // renameElement(ElementID,NewText)
 // Renames a HTML GUI element by changing the inner HTML
 // Most elements don't need a 'tag' given (they use an <a> tag)
 functionrenameGUIElement(id,text,tag){
 varelem=document.getElementById(id)
 if(!tag){
 tag='A'
 }
 if(elem){
 elem.getElementsByTagName(tag)[0].innerHTML=text
 }
 }

 // trim()-- classical string function to remove leading and trailing whitespace
 functiontrim(str){
 returnstr.replace(/^\s*|\s*$/g,'')
 }

 // Access parameters passed via HTTP 'GET'
 // Decode parameters "on demand", cache results
 functiongetParam(name){
 if(typeof(getParam.parameters)=='undefined'){
 getParam.parameters=newArray()
 varURIparameters
 varURIParameter

 // Get URL parameters
 URIparameters=location.search.substring(1,location.search.length).split('&')
 for(i=0;i<URIparameters.length;i++){
 URIParameter=URIparameters[i].split('=')
 getParam.parameters[decodeURIComponent(URIParameter[0])]=decodeURIComponent(URIParameter[1])
 }
 }
 if(getParam.parameters[name]){
 returngetParam.parameters[name]
 }else{
 returnfalse
 }
 }

 // insert a new node after a given reference node
 functioninsertAfter(parent,node,referenceNode){
 parent.insertBefore(node,referenceNode.nextSibling)
 }

 // token functions, taken from [[:de:User:PDD/helperFunctions.js]]
 functiongenerate_asuser(){
 returnencodeURIComponent(mw.config.get('wgUserName'))
 }

 functionvalidate_asuser(asuser){
 return(encodeURIComponent(asuser)==generate_asuser())
 }

 functiongenerate_astime(){
 vararbitrary_datestamp=Date.UTC(2010,1,1,0,0,0,0)
 varcurrent_date=newDate()
 varcurrent_timestamp=current_date.getTime()

 return(Math.floor((current_timestamp-arbitrary_datestamp)/1000))
 }

 functionvalidate_astime(astime){
 vartimediff=generate_astime()-astime
 return(timediff>=0)&&(timediff<45)
 }

 /* ---------
  * markUsers
  * ---------
  */

 jQuery(document).ready(function(){

 varmarkusers=true
 if(!markusers)return

 varmarksubpages=false
 vardontmarkmyself=true

 varisSpecial=mwConfig.get('wgCanonicalNamespace')=='Special'
 varisUserpage=mwConfig.get('wgCanonicalNamespace')=='User'||mwConfig.get('wgCanonicalNamespace')=='User_talk'
 varisProject=mwConfig.get('wgCanonicalNamespace')=='Project'
 varisFile=mwConfig.get('wgCanonicalNamespace')=='File'
 varisHelp=mwConfig.get('wgCanonicalNamespace')=='Help'
 varisDiff=mwUtil.getParamValue('diff')!==null

 vari

 varusers=[]
 users.push(newArray('Agentjoerg','Berihert','Blik','Brodkey65','Carl_B_aus_W','ChoG','Dschungelfan','ElTres','FordPrefect42','Giraldillo','Grim','Herbrenner1984','Informationswiedergutmachung','MAyo','Michileo','Minihaa','Nhfflkh','Nuhaa','Odeesi','Plagiat','Plastikt%C3%BCte','Rogi.Official','Si!_SWamP'))
 users.push(newArray('Aschmidt','Biologos','Bjarlin','BrutFork','Flyingfischer','GFreihalter','Gridditsch','Gunslinger.1970','Jocian','Reinhardhauke','Sakra','Schulhofpassage','SDB','Stobaios','Toni_M%C3%BCller','Tscherpownik'))
 varlistCount=users.length

 varusers_str=[]
 for(i=0;i<listCount;i++){
 users_str.push('|'+users[i].join('|')+'|')
 }

 varmarktxt=newArray('DF','DS')
 for(i=marktxt.length;i<listCount;i++){
 marktxt.push('U'+(i+1))
 }

 if(isSpecial||isHistory||isUserpage||isTalk||isProject||isFile||isHelp||isDiff){
 varaNode
 varallanchors=document.getElementsByTagName('A')
 varallanchorsuser=[]
 varsearchExp=/\/wiki\/Benutzer(in)?([ _]Diskussion)?:(.+)/
 varsearchExpTalk=/[ _]Diskussion:/
 varmarker
 varmainpageanchor

 for(i=0;i<allanchors.length;i++){
 aNode=allanchors[i]
 mainpageanchor=true
 talkpageanchor=false
 // if it's a link to a user
 if((href=aNode.getAttribute('href'))&&(searchExp.exec(href)!==null)){
 currUser=searchExp.exec(href)[3]
 /* if (isUserpage) */
 currUserClean=currUser.replace(/\/.*/,'')
 if(currUserClean!=currUser)mainpageanchor=false
 if(searchExpTalk.exec(href)!==null)talkpageanchor=true

 // don't mark followups
 allanchorsuser[i]=mainpageanchor?currUserClean:''
 if((i>0)&&(currUserClean==allanchorsuser[i-1])&&talkpageanchor)continue

 currUser='|'+currUserClean+'|'

 marker=[]

 for(j=0;j<listCount;j++){
 if(users_str[j].indexOf(currUser)!=-1)marker.push(marktxt[j])
 }

 // don't mark certain pages, except link to user main page
 if(mainpageanchor||
 (marksubpages&&canonicalSpecialPageName!='Prefixindex'&&canonicalSpecialPageName!='Allpages')){
 // check finished, now append node
 if((marker.length>0)&&!(dontmarkmyself&&(currUserClean==mwConfig.get('wgUserName')))){
 varaMark=document.createElement('span')
 aMark.className='userMark'
 varaMarkText=document.createTextNode('\u00A0('+marker.join('/')+')')
 aMark.appendChild(aMarkText)
 aNode.appendChild(aMark)
 }
 }
 }
 }
 }
 })

 functionaddUserMenu(id,title){
 varroot=document.getElementById('p-search')
 if(!root){
 return
 }

 varnavId='p-my-menu-'+id
 varnavLabel=navId+'-label'

 varnav=document.createElement('nav')
 nav.id=navId
 nav.className='vector-menu-dropdown-noicon vector-menu vector-menu-dropdown'
 nav.ariaLabelledby=navLabel
 nav.role='navigation'

 varinput=document.createElement('input')
 input.type='checkbox'
 input.className='vector-menu-checkbox'
 input.ariaLabelledby=navLabel
 nav.appendChild(input)

 varspan=document.createElement('span')
 span.appendChild(document.createTextNode(title))
 varlabel=document.createElement('label')
 label.id=navLabel
 label.className='vector-menu-heading'
 label.appendChild(span)
 nav.appendChild(label)

 varmenuList=document.createElement('ul')
 menuList.className='vector-menu-content-list'
 varmenu=document.createElement('div')
 menu.className='vector-menu-content'
 menu.appendChild(menuList)
 nav.appendChild(menu)

 root.parentNode.insertBefore(nav,root)

 returnmenuList
 }

 functionaddMenuEntry(menu,href,label,id,title){
 if(!menu||!href||!label){
 return
 }
 varentry=document.createElement('li')
 if(id){
 entry.id=menu.closest('nav').id+'-entry-'+id
 entry.className='mw-list-item mw-list-item-js'
 }
 vara=document.createElement('a')
 a.href=href
 a.title=title||label
 varspan=document.createElement('span')
 span.textContent=label
 a.appendChild(span)
 entry.appendChild(a)
 menu.appendChild(entry)
 }

 // <nav id="p-cactions" class="vector-menu vector-menu-dropdown" aria-labelledby="p-cactions-label" role="navigation">
 // <input type="checkbox" class="vector-menu-checkbox" aria-labelledby="p-cactions-label" />
 // <h3 id="p-cactions-label">
 // <span>Mehr</span>
 // </h3>
 // <div class="vector-menu-content">
 // <ul class="vector-menu-content-list">
 // <li id="ca-move"><a href="/wiki/Spezial:Verschieben/Benutzer:Amga" title="Diese Seite verschieben [m]" accesskey="m">Verschieben</a></li>
 // </ul>
 // </div>
 // </nav>


 // --> Eintragen
 // importScript('User:Amga/Eintragen.js');
 functioneintragen(typ,grund){// Littl, PDD
 varwpath=mwUtil.wikiScript()+'?title='
 varwnamesp='Wikipedia:'
 varwdnamesp='Wikipedia_Diskussion:'

 // function placeholders:
 // 4 = BildLA (obsolet)
 // 11 = Lemmasperrung (alt)
 // 12 = Lemmasperrung (neu)
 // 13 = Benutzersperrung (neues Konzept, nicht durchgesetzt)
 if(typ==4){
 alert('Update: Bildlöschanträge gibt es nicht mehr, stattdessen wird der DÜP-Button verwendet. Bitte update deine monobook.js.')
 }
 if((typ==11)||(typ==12)){
 alert('Update: Lemmasperren werden jetzt mit dem Karteireiter Schützen vorgenommen. Bitte update deine monobook.js.')
 }
 if(typ==13){
 alert('Update: Diese Benutzersperrfunktion wird nicht mehr verwendet. Bitte update deine monobook.js.')
 }
 if(typ>14){
 alert('Funktion '+typ+' noch nicht implementiert!')
 }
 if((typ==4)||(typ==11)||(typ==12)||(typ==13)||(typ>14)){
 return
 }

 // Variables that should be defined in your monobook
 if(typeof(autosave)=='undefined'){
 autosave=false
 }
 if(typeof(signogrundparam)=='undefined'){
 signogrundparam=false
 }
 if(typeof(emptylinesafterhr)=='undefined'){
 emptylinesafterhr=1
 }
 if(typeof(grund)=='undefined'){
 grund=''
 }
 if(typeof(defaultSLA)=='undefined'){
 defaultSLA=''
 }
 if(typeof(defaultVandal)=='undefined'){
 defaultVandal='vandaliert in [[]]'
 }
 if(typeof(defaultAVandal)=='undefined'){
 defaultAVandal='Edit-War'
 }

 if(typeof(Monate)=='undefined'){
 Monate=newArray('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember')
 }
 if(typeof(jetzt)=='undefined'){
 jetzt=newDate()
 }
 if(typeof(Jahr)=='undefined'){
 Jahr=jetzt.getYear()
 }
 if(Jahr<999)Jahr+=1900
 if(typeof(WPDatum)=='undefined'){
 WPDatum=jetzt.getDate()+'._'+Monate[jetzt.getMonth()]+'_'+Jahr
 }
 if(typeof(WPDatum2)=='undefined'){
 WPDatum2=Jahr+'/'+Monate[jetzt.getMonth()]+'/'+jetzt.getDate()
 }

 if(typeof(isEdit)=='undefined'){
 isEdit=(document.URL.indexOf('action=edit')>0)||(document.URL.indexOf('action=submit')>0)
 }
 if(typeof(isUserpage)=='undefined'){
 isUserpage=((mwConfig.get('wgCanonicalNamespace')=='User')||(mwConfig.get('wgCanonicalNamespace')=='User_talk'))
 }
 if(typeof(isSpecial)=='undefined'){
 isSpecial=(mwConfig.get('wgCanonicalNamespace')=='Special')
 }
 if(typeof(isPHP)=='undefined'){
 isPHP=(document.URL.indexOf('index.php')>0)
 }

 // Variablen für die einzelnen Bausteine
 varkurz=''
 varvorlage=''
 varseite=''

 // bei bestimmten Vorlagen wird Grund als Parameter übergeben
 // (momentan nur Vorlage:Löschantrag, Vorlage:Löschen, Vorlage:QS)
 // außerdem bei RENKAT: neuer Katname als "Grund"
 vargrundparam=false
 // bestimmte Subst-Vorlagen haben schon noincludes
 // (momentan nur Vorlage:Löschantrag)
 varsubstnoinclude=false
 // bestimmte Vorlagen beinhalten bereits die Formatierung (Returns, Hline)
 // (momentan nur Vorlage:Löschantrag und Vorlage:Löschen)
 vardontformat=false

 switch(typ){
 case1:{
 kurz='QS'
 vorlage='subst:QS'
 seite='Qualitätssicherung'
 if(!signogrundparam){
 grundparam=true
 dontformat=true
 }
 break
 }
 case2:{
 kurz='LA'
 vorlage='subst:Löschantrag'
 seite='Löschkandidaten'
 grundparam=true
 substnoinclude=true
 dontformat=true
 break
 }
 case3:{
 kurz='SLA'
 vorlage='Löschen'
 if(!signogrundparam){
 grundparam=true
 dontformat=true
 }
 break
 }
 case4:{
 kurz='BildLA'
 vorlage='subst:Löschantrag'
 seite='Löschkandidaten/Bilder'
 grundparam=true
 substnoinclude=true
 dontformat=true
 break
 }
 case5:{
 kurz='URV'
 vorlage='URV'
 seite='Löschkandidaten/Urheberrechtsverletzungen'
 break
 }
 case6:{
 kurz='Vandale'
 vorlage='Benutzer'
 seite='Vandalismusmeldung'
 break
 }
 case7:{
 kurz='LAKAT'
 vorlage='subst:Löschantrag'
 seite='WikiProjekt_Kategorien/Diskussionen'
 grundparam=true
 substnoinclude=true
 dontformat=true
 break
 }
 case8:{
 kurz='LAVORL'
 vorlage='subst:Löschantrag'
 seite='Löschkandidaten'
 grundparam=true
 substnoinclude=true
 dontformat=true
 break
 }
 case9:{
 kurz='Artikelvandalismus'
 vorlage='Artikel'
 seite='Vandalismusmeldung'
 break
 }
 case10:{
 kurz='Reset'
 vorlage='Bitte erst NACH dieser Zeile schreiben! (Begrüßungskasten)'
 break
 }
 case11:{
 kurz='Lemmasperrung'// outdated, do not use!
 vorlage='gesperrtes Lemma'
 break
 }
 case12:{
 kurz='Lemmasperrung'
 seite='Gesperrte Lemmata'
 break
 }
 case13:{
 kurz='Benutzersperrung'
 seite='Unbegrenzt gesperrte Benutzer'
 break
 }
 case14:{
 kurz='Kategorieverschiebung'
 vorlage='subst:Umbenennen'
 seite='WikiProjekt_Kategorien/Diskussionen'
 grundparam=true
 break
 }
 }

 varcustomsig='--\~\~\~\~'

 varlemma=isContrib?extractLemma():pagetitle

 varlemma2
 // special lemma handling for usernames (vandals, banned users):
 if((typ==6)||(typ==13)){
 if(isUserpage){
 // leading stuff
 lemma2=lemma.replace(/Benutzer.Diskussion./,'')
 if(lemma2==lemma){
 lemma2=lemma.replace(/Benutzer./,'')
 }
 lemma=lemma2
 // trailing stuff
 lemma=lemma.replace(/\/.*/,'').replace(/&action.*/,'')
 }
 if(isContrib){
 lemma=lemma.replace(/.*\//,'')
 }
 }
 lemma2=lemma.split('_').join(' ')

 // zu öffnende Zielseite
 varuri=''

 // für typ 14 (RENKAT): Zielkategorie
 varoldkat=mwConfig.get('wgTitle')
 varneukat=oldkat
 if(typ==14){
 while(oldkat==neukat){
 neukat=prompt('Neuer Kategoriename:',neukat)
 }
 }

 // Begründung für die Bausteinsetzung
 if(grund==''){
 if(typ==3)grund=defaultSLA

 if(typ==5){
 grund=prompt(kurz+'-Quelle (z.B. URL):','[]')
 }elseif(typ==6){
 grund=prompt('VM-Grund:',defaultVandal)
 }elseif(typ==9){
 grund=prompt('VM-Grund:',defaultAVandal)
 }elseif((typ!=10)&&(typ!=11)&&(typ!=12)&&(typ!=13)){
 grund=prompt(kurz+'-Grund:',grund)
 }

 /* Shortcuts für SLA*/
 if(typ==3){
 switch(grund){
 case'b':
 grund='Nur erledigte Bothinweise.'
 break
 case'd':
 grund='Verwaiste Diskussionsseite.'
 break
 case'i':
 grund='Offensichtliche Irrelevanz.'
 break
 case'k':
 grund='Kein Artikel.'
 break
 case'u':
 grund='Unfug.'
 break
 case'x':
 grund='Wiedergänger.'
 break
 case'z':
 grund='Werbeeintrag.'
 break
 }
 }
 }

 // Parameter für die URI
 varspeichernpa=(autosave)?'&'+asuserp+'='+generate_asuser()+'&'+astimep+'='+generate_astime():''
 varnocreatepa='&'+nocreatep+'=1'

 // ab hier wird eingetragen
 if(grund!=null){
 grund=trim(grund)

 // Eintragen auf der entsprechenden LK/QS/usw.-Seite
 // (wird dann ausgeführt von fillActionPage() in der monobook.js)

 //QS / LA / BildLA / LAKAT / LAVORL / RENKAT
 if(typ==1||typ==2||typ==4||typ==7||typ==8||typ==14){
 // Öffnen der QS- oder LK- oder BildLK-Seite, gleich zum Eintragen des QS/LA
 // Texte werden als Parameter übergeben
 uri=wpath
 +encodeURI(wnamesp+seite+(((typ==7)||(typ==14))?('/'+WPDatum2):('/'+WPDatum)))
 +'&action=edit'+'&section=new'
 +'&'+subjp+'='
 +encodeURIComponent('[['
 +(((typ==4)||(typ==7)||(typ==14))?':':'')
 +lemma2+']]'
 +((typ==14)?(' nach [[:Kategorie:'+neukat+']]'):''))
 +'&'+textp+'='
 +encodeURIComponent(grund+' '+customsig+'\n')
 +speichernpa
 }

 //URV
 if(typ==5){
 // Öffnen der URV-Seite gleich zum Eintragen der Meldung, Texte werden als Parameter übergeben
 uri=encodeURI(wpath+wnamesp+seite+'&action=edit')
 +'&'+subjp+'='
 +encodeURIComponent('+[['+lemma2+']]')
 +'&'+addp+'='
 +encodeURIComponent('# [['+lemma2+']] von '+grund+' '+customsig+'\n')
 +speichernpa
 }

 //Vandale
 if(typ==6){
 // Öffnen der VM-Seite gleich zum Eintragen der Meldung, Texte werden als Parameter übergeben
 uri=encodeURI(wpath+wnamesp+seite+'&action=edit&section=new')
 +'&'+subjp+'='
 +encodeURIComponent('[[Benutzer:'+lemma2+']]')
 +'&'+textp+'='
 +encodeURIComponent('{{'+vorlage+'|'+lemma2+'}} '+grund+' '+customsig+'\n')
 +speichernpa
 }

 //AVandale
 if(typ==9){
 // Öffnen der VM-Seite gleich zum Eintragen der Meldung, Texte werden als Parameter übergeben
 uri=encodeURI(wpath+wnamesp+seite+'&action=edit&section=new')
 +'&'+subjp+'='
 +encodeURIComponent('Artikel [['+lemma2+']]')
 +'&'+textp+'='
 +encodeURIComponent('{{'+vorlage+'|'+lemma2+'}} '+grund+' '+customsig+'\n')
 +speichernpa
 }

 //Lemmasperrung
 if(typ==12){
 // Öffnen der Lemmasperrseite und Eintragen
 // Achtung: wdnamesp statt wnamesp
 uri=encodeURI(wpath+wdnamesp+seite+'/'+WPDatum4+'&action=edit')
 +'&'+subjp+'='
 +encodeURIComponent('+[['+lemma2+']]')
 +'&'+addp+'='
 +encodeURIComponent('# {{:'+lemma2+'}} '+customsig+'\n')
 +speichernpa
 }

 //Benutzersperrung
 if(typ==13){
 // Auswahl der Unterseite
 varugspage='Sonstige'
 if((lemma2.charAt(0)>='A')&&(lemma2.charAt(0)<='Z')){
 ugspage=lemma2.charAt(0)
 }
 // Öffnen der Benutzersperrseite und Eintragen
 uri=encodeURI(wpath+wnamesp+seite+'/'+ugspage+'&action=edit')
 +'&'+subjp+'='
 +encodeURIComponent('+[[Benutzer:'+lemma2+']]')
 +'&'+addp+'='
 +encodeURIComponent('# {{:Benutzer:'+lemma2+'}} '+customsig+'\n'+'# {{:Benutzer Diskussion:'+lemma2+'}} '+customsig+'\n')
 +speichernpa
 }

 // neue Seite wird in neuem Fenster geöffnet
 if(uri!=''){
 window.open(uri)
 window.focus()
 }

 // bearbeiten der (aktuellen) Artikelseite und eintragen lassen
 // (wird dann ausgeführt von fillActionPage() in der monobook.js)

 // (bei Vandalenmeldung, Lemmasperrung, Benutzersperrung nichts auf aktueller Seite eintragen!!)
 if((typ!=6)&&(typ!=9)&&(typ!=12)&&(typ!=13)){

 vargrundsig='\'\''+grund+'\'\' '+customsig

 // wenn grund als Parameter übergeben wird: | und = escapen
 if(grundparam){
 grundsig=grundsig.split('|').join('{{!}}').split('=').join('&#61;')
 }

 // vereinheitlicht plus kursiv (PDD)
 vartxt='{{'+vorlage
 if(grundparam){
 txt+='|1='
 }else{
 txt+='}}'
 }

 if((typ!=10)&&(typ!=11)){

 if(typ==14){
 txt+=neukat
 }else{
 txt+=grundsig
 }

 if(grundparam){
 txt+='}}'
 }

 if(!dontformat){
 txt+='\n----\n\n'
 for(vari=0;i<emptylinesafterhr;i++){
 txt+='\n'
 }
 }elseif(!looksLikeTemplate(lemma2)){
 txt+='\n'
 }

 if(!substnoinclude){
 if(looksLikeTemplate(lemma2)){
 txt='<noinclude>\n'+txt+'</noinclude>'
 }
 }
 }else{// typ==10 oder 11
 txt+='\n'
 }

 if(isEdit){
 // wir sind schon im Edit-Modus
 if((typ==5)||(typ==10)||(typ==11)){
 document.editform.wpTextbox1.value=txt
 }else{
 document.editform.wpTextbox1.value=txt+document.editform.wpTextbox1.value
 }
 document.editform.wpSummary.value=kurz+'+'
 document.editform.wpWatchthis.checked=false
 if(autosave){
 if((typ!=11)&&(document.getElementById('newarticletext'))){
 alert('Artikel wurde bereits gelöscht!')
 }else{
 document.editform.wpSave.click()
 }
 }
 }else{
 // Wir müssen die Seite erst zum Editieren öffnen
 if((typ==5)||(typ==10)||(typ==11)){
 // URV-Baustein & Spielwiese-Reset ersetzen den kompletten Text
 uri=wpath+encodeURIComponent(lemma)+'&action=edit'
 +'&'+subjp+'='+encodeURIComponent(kurz+'+')
 +'&'+textp+'='+encodeURIComponent(txt)
 +speichernpa
 }else{
 // alle anderen Bausteine werden am Anfang eingefügt
 uri=wpath+encodeURIComponent(lemma)+'&action=edit'
 +'&'+subjp+'='+encodeURIComponent(kurz+'+')
 +'&'+insp+'='+encodeURIComponent(txt)
 +speichernpa
 }
 if(typ!=11)uri+=nocreatepa

 // neue Seite im aktuellen Fenster öffnen
 location.href=uri
 }// END: if (isEdit)...else...
 }// END: if (typ != 6)...
 }// END: if (grund != null)...
 }// END: function eintragen(typ)...

 // Funktion looksLikeTemplate()
 // Vorlagen-Check
 // (aufgerufen aus eintragen() )
 functionlooksLikeTemplate(aktuelleslemma){
 returnisTemplate||aktuelleslemma.indexOf('Vorlage:')>-1||aktuelleslemma.indexOf(':Vorlage/')>-1||aktuelleslemma.indexOf('/Vorlage/')>-1
 }

 // end imported scripts

 // Variable is unset if AJAX search is disabled.
 if(typeof(mwConfig.get('wgDBname'))=='undefined'){
 wgDBname='dewiki'
 }

 vardefaultSLA='Kein enzyklopädischer Artikel nach [[WP:WSIGA]] und [[WP:WWNI]]'
 varautosave=false// automatisches Speichern von QS/LA/SLA/Vandal-Einträgen?
 varversion='Override'

 // Config-Anpassungen für markAdmins (via Gadget)
 markcomadmins=true
 markexadmins=true
 marksubpages=true

 // ----
 varunsigning=true// Einfügen von Unsigned bei unsignierten Beiträgen auf Diskussionsseiten?
 varssubst=true// unsigniert-Baustein mit subst einfügen?
 varmax_history_entries=36// Anzahl der angezeigten Edits (max. 36)

 if(isEdit&&!isArticle){
 mwLoader.load('//de.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Lustiger_seth/unsigned.js')
 }

 // ----
 varsigning=true// automatische Unterschrift auf Diskussionsseiten?
 // Liste der Nicht-Diskussionsseiten, die ebenfalls unterschrieben werden sollen:
 varregpages=newArray(':Löschkandidaten',':Löschprüfung',':Entsperrwünsche',':Adminkandidaturen',':Qualitätssicherung',':Administratoren/Notizen',':Administratoren/Anfragen',':Fragen_zur_Wikipedia',':Auskunft:',':Meinungsbilder',':Review',':Bilderwünsche',':Kandidaten',':WikiProjekt_Kategorien')

 if(isEdit&&!isArticle){
 mwLoader.load('//de.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Olliminatore/signing.js')
 }

 // Automatische Überschriften auf Diskussionsseiten? Nix da (tm)
 myAddOnloadHook(function(){
 vartab=document.getElementById('ca-talk')
 if(!tab||tab.className!='new')return
 varlink=tab.getElementsByTagName('a')[0]
 if(!link)return
 link.href=link.href.replace(/&section=new$/,'')
 })

 // ----

 // [[Benutzer:DerHexer/rollback.js]]

 // Erweiterten Rollback aktivieren
 varnewrollback=true

 // Rollback mit Ansprache und VM-Meldung bzw. Block aktivieren? Dafür bitte PopUps für de.wikipedia.org aktivieren.
 varallowmessage=true

 // Wenn die ergänzte Vorlage automatisch gespeichert werden soll, ändere false auf true.
 varautowarning=true

 // 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.
 varleveltwowarning=true

 // Hier bitte alle Bezeichnungen der Rollbacks angeben, so man mit den Standards nicht zufrieden ist
 varoptionnames=newArray('ZS-TEST')

 // Hier bitte die zu verwendenden Vorlagen angeben. Genausoviele wie darüber, dies ist eine 1:1-Zuordnung!
 // <nowiki>
 vartemplatenames=newArray('{{subst:Benutzer:Complex/Greetings/TestMitStopschild}} --~~~~')
 // </nowiki>

 // 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
 varrollbacktype='1'

 mwLoader.load('//de.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:DerHexer/rollback.js')

 // ----
 varsignogrundparam=false// auf true setzen, wenn Signatur das SLA-Eintragen behindert
 varemptylinesafterhr=1// Leerzeilen zwischen LA-Baustein und Artikeltext
 vardefaultSLA='Kein Artikel'// Standard-SLA-Grund
 vardefaultVandal='vandaliert in [[]]'// Standardgrund für Vandalismusmeldung (Benutzer)
 vardefaultAVandal='Edit-War'// Standardgrund für Vandalismusmeldung (Artikel)

 // ----
 vareditlinkoldversion=false// Bearbeiten-Link für ältere Versionen anzeigen?
 vareditlinktxt='edit'// Text des Edit-Links
 varrevertwithreason=false// Revert-Link mit Grund-Eingabe anzeigen?
 varrevlinktxt='rev'// Text des Revert-Links
 varrevlinkshowuser=true// beim Revertieren über (Rev)-Link letzten Benutzer angeben?
 varrvisminor=true// sind Reverts mit "(rev)"-Link Minor-Changes?
 varaearldefault='Grund: keine Verbesserung des Artikels'// Defaultgrund beim Revertieren
 varaerhistory=true// Links auch in der Versionsgeschichte?
 varaearlhere=true// Revertaktion im selben Browserfenster?

 if(isHistory||!isEdit){
 if(editlinkoldversion||revertwithreason){
 mwLoader.load('//de.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:PDD/addEditAndRevertLinks.js')
 }// [[Benutzer:PDD/addEditAndRevertLinks.js]]
 }
 // ----

 mwLoader.load('//de.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Euku/markErledigt.js')// [[Benutzer:Euku/markErledigt.js]] -- 'erledigt' - Links
 mwLoader.load('//de.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Schniggendiller/markblocked.js')

 // ------------------------------------- Eigene Untermenüs ---------------------------------------------

 // Admin - Aktionen: a) Auf Benutzer(unter)seiten und den Benutzerbeiträgen
 if(isUser||isUserDisc||isContrib){
 myAddOnloadHook(function(){
 varmenuUser=addUserMenu('user','Benutzer')

 if(!isSpecial){
 varusername=mwConfig.get('wgTitle')
 varpos=username.indexOf('/')
 if(pos>=0){
 username=username.slice(0,pos)
 }

 addMenuEntry(menuUser,'/wiki/Benutzer Diskussion:'+username,username,'disk','Benutzerdisk')
 addMenuEntry(menuUser,'/wiki/Spezial:Beiträge/'+username,' - Beiträge','contrib','Benutzerbeiträge')
 addMenuEntry(menuUser,'/wiki/Spezial:Logbuch/'+username,' - Log aktiv','logs','Logbuch-Einträge aktiv')
 addMenuEntry(menuUser,'/wiki/Spezial:Logbuch?page=Benutzer:'+username,' - Log passiv','contrib','Logbuch-Einträge passiv')
 addMenuEntry(menuUser,'/wiki/Spezial:Präfixindex/Benutzer:'+username+'/',' - Unterseiten','pages','Benutzer-Unterseiten')
 addMenuEntry(menuUser,'/wiki/Spezial:Präfixindex/Benutzer:SibFreak/',' - Unterseiten SibFreak','sibfreak-pages','Benutzer-Unterseiten SibFreak')
 }
 })
 }

 // Bausteine für Artikel oder Benutzerdiskussionsseiten
 // Da fehlt noch einiges (incl. huter config)

 if(isArticle||isDisc||isUser){
 myAddOnloadHook(function(){
 varmenuTemplates=addUserMenu('templates','Bausteine')

 addMenuEntry(menuTemplates,'javascript:eintragen(3);','SLA+','sla','Schnelllöschantrag')
 addMenuEntry(menuTemplates,'javascript:eintragen(2);','LA+','la','Löschantrag')

 if(isArticle){
 addMenuEntry(menuTemplates,'javascript:eintragen(1);','QS+','qs','Qualitätssicherung')
 addMenuEntry(menuTemplates,'javascript:eintragen(5);','URV+','urv','Urheberrechtsverletzung')
 }
 })
 }

 myAddOnloadHook(function(){
 // Work
 varmenuWork=addUserMenu('work','Work')

 addMenuEntry(menuWork,'/wiki/Portal:Russland/Mitmachen','Portal Russland','pru')
 addMenuEntry(menuWork,'/wiki/Wikipedia:WikiProjekt_Kaukasus','WikiProjekt Kaukasus','wpkauk')
 addMenuEntry(menuWork,'/wiki/Portal:Kasachstan/Mitmachen','Portal Kasachstan','pkas')
 addMenuEntry(menuWork,'/wiki/Wikipedia:Namenskonventionen/Kyrillisch','WP:NKK','wpnkk','Namenskonventionen Kyrillisch')

 // Tools
 varmenuTools=addUserMenu('tools','Tools')

 addMenuEntry(menuTools,'//tools.wmflabs.org/commonshelper/','Move to Commons','m2c','Move-to-commons-Assistent')
 addMenuEntry(menuTools,'http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?search='+pesctitle,'GlobalWikiSearch','search')
 addMenuEntry(menuTools,'http://wikipedia.ramselehof.de/wikiblame.php?article='+pesctitle+'&ignorefirst=3','WikiBlame','blame')
 addMenuEntry(menuTools,'//petscan.wmflabs.org','PetScan','petscan')
 addMenuEntry(menuTools,'//tools.wmflabs.org/missingtopics/','Missing Topics','topics')
 addMenuEntry(menuTools,'//tools.wmflabs.org/templatetiger/','Vorlagenauswertung','templates')
 addMenuEntry(menuTools,'//tools.wmflabs.org/templator/','Templator','templator')
 addMenuEntry(menuTools,'http://vs.aka-online.de/taxoboxomat/','Taxoboxomat','taxobox')

 // Quellen (extern)
 varmenuExtern=addUserMenu('extern','Quellen')

 addMenuEntry(menuExtern,'http://slovari.yandex.ru/~книги/БСЭ/','БСЭ','bse','Большая советская энциклопедия')
 addMenuEntry(menuExtern,'http://www.vehi.net/brokgauz/index.html','Брокгауз и Ефрон','be')
 addMenuEntry(menuExtern,'http://slovari.yandex.ru/~книги/Энциклопедии/','Энциклопедии @ Яндекс','slovar')
 addMenuEntry(menuExtern,'http://maps.rosreestr.ru/PortalOnline/','Кадастровая карта','rosreestr','Кадастровая карта')
 addMenuEntry(menuExtern,'http://terrus.ru/cgi-bin/allrussia/v3_index.pl','terrus.ru','terrus','Территориальное устройство России')
 addMenuEntry(menuExtern,'http://www.mosclassific.ru/mClass/okato_view.php','OKATO','okato')
 addMenuEntry(menuExtern,'http://www.mosclassific.ru/mClass/oktmo_view.php','OKTMO','oktmo')
 addMenuEntry(menuExtern,'/wiki/Portal:Russland/Tools/Zensus','Zensus Russland','zensus')
 addMenuEntry(menuExtern,'http://www.r-arcticnet.sr.unh.edu/v4.0/dareatable.html','R-ArcticNET','rarctic')
 addMenuEntry(menuExtern,'http://textual.ru/gvr/','Государственный водный реестр','gvr','GVR')

 addMenuEntry(menuExtern,'http://oopt.info/','oopt.info','oopt')
 addMenuEntry(menuExtern,'http://www.biodat.ru/db/rb/','Красная Книга России','red')
 addMenuEntry(menuExtern,'http://bibliotekar.ru/mif/','Мифологический cловарь','myth')

 addMenuEntry(menuExtern,'http://commons.wikipedia.org/wiki/Category:Russia','Commons:Russland','commons')

 addMenuEntry(menuExtern,'http://www.retrobibliothek.de/retrobib/suche.html','retro-bib','retro')
 addMenuEntry(menuExtern,'http://www.deutsche-biographie.de/suche.html','ADB/NDB','adb','Allgemeine/Neue Deutsche Biographie')
 addMenuEntry(menuExtern,'http://www.zeno.org/Bibliothek','Zeno','zeno','zeno.org')
 addMenuEntry(menuExtern,'http://www.ubka.uni-karlsruhe.de/kvk.html','KVK','kvk','Karlsruher Virtueller Katalog')
 addMenuEntry(menuExtern,'https://portal.d-nb.de/opac.htm?method=showOptions#top','DNB','dnb','Deutsche Nationalbibliothek')

 addMenuEntry(menuExtern,'http://www.loc.gov/standards/iso639-2/php/code_list.php','ISO 639-1/2','iso12','ISO 639-1/2 Language Codes')
 addMenuEntry(menuExtern,'http://www.sil.org/iso639-3/codes.asp','ISO 639-3','iso3','ISO 639-3 Language Codes')
 addMenuEntry(menuExtern,'/wiki/ISO 3166-2:RU','ISO 3166-2:RU','isoru')

 // WP-Seiten
 varmenuFavorites=addUserMenu('favorites','Intern')

 addMenuEntry(menuFavorites,'/wiki/Wikipedia:LKH','Löschkandidaten','lkh','Löschkandidaten (heute)')
 addMenuEntry(menuFavorites,'/w/index.php?title=Special:Recentchanges&hideminor=0&hideliu=1&hidebots=1&hidepatrolled=0&days=7&limit=500',
 'Recent Changes','rc','Letzte Änderungen')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:Kurier','Kurier','k','Wikipedia-Kurier')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:NEU','Projektneuheiten','neu')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:AAF','Adminanfragen','aaf')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:AN','Adminnotizen','an')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:FzW','FzW','fzw','Fragen zur Wikipedia')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:VM','Vandalismusmeldung','vm')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:SPP','Sperrprüfung','sp')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:LP','Löschprüfung','lp')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:EW','Entsperrwünsche','ew')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:QSH','Qualitätssicherung','qsh')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:AK','Adminkandidatur','ak')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:AP','Adminprobleme')
 addMenuEntry(menuFavorites,'/wiki/Wikipedia:WikiCup','WikiCup')
 })

 // ------------------------------------- Eigene GUI-Anpassungen und Untermenüs -----------------------------------------------
 myAddOnloadHook(function(){
 renameGUIElement('ca-history','Versionen')
 renameGUIElement('ca-addsection','+')
 renameGUIElement('pt-logout','X')
 renameGUIElement('pt-mytalk','Diskussion')
 renameGUIElement('pt-mycontris','Beiträge')
 renameGUIElement('t-recentchangeslinked','Verlinkte Änderungen')
 })

 // diverse eingene Einstellungen
 NavigationBarShowDefault=100// "alle" Navileisten einblenden

 mwLoader.load('//meta.wikimedia.org/w/index.php?title=User:Perhelion/userstatus.js&action=raw&ctype=text/javascript')

AltStyle によって変換されたページ (->オリジナル) /