User:Amga/vector.js: Difference between revisions
Appearance
From Meta, a Wikimedia project coordination wiki
No edit summary
No edit summary
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')
(追記) 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'+'§ion=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§ion=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§ion=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('=') } // 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(/§ion=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')