Wikipedysta:Matma Rex/defaultsort.js
Z Wikipedii
Uwaga: po zapisaniu zmian musisz zaktualizować pamięć podręczną (cache) przeglądarki: Mozilla / Firefox: wciśnij Reload (lub CTRL+R), IE / Opera: CTRL+F5, Safari: CMD+R, Konqueror CTRL+R.
//Autor: [[user:Matma Rex]] var categories=[], defaultsort=[] function ucFirst(txt) { t1=txt.substr(0,1).toUpperCase() t2=txt.substr(1) return t1+t2 } function getCategory(all,s1,s2,s3,s4) { if(!s4) s4='' categories.push({catname:ucFirst(s2),sort:ucFirst(s4)}) return '' } function getAll() { str=document.getElementById('wpTextbox1').value str=str.replace(/\s*\[\[\s*(Kategoria|Category)\s*:\s*(.+?)\s*(\|\s*(.+?)\s*)?\]\]/gi,getCategory) var ok=true, l=categories.length-1 for(i=0;i<l;i++) ok=ok&&categories[i].sort==categories[i+1].sort if(!ok) { alerttxt='Nie wszystkie kategorie mają przypisany ten sam sposób sortowania! Występujące sposoby to:'+"\n" for(i=0;i<categories.length;i++) { alerttxt+=(i+1)+'. '+categories[i].sort+"\n" } alerttxt+="\n"+'Jeżeli chcesz wybrać jeden z nich, wpisz jego numer poniżej i kliknij "OK". Jeżeli chcesz anulować proces, kliknij "Anuluj".' p=prompt(alerttxt) if(p==undefined) return else sort=categories[p-1].sort } else { if(confirm('Czy chcesz pozostawić domyślny sposób sortowania: '+categories[0].sort+'?')) { sort=categories[0].sort } else { sort=prompt('Podaj sposób sortowania:',categories[0].sort) if(sort==undefined) sort=categories[0].sort } } str+="\n"+'{{DEFAULTSORT:'+sort+'}}'+"\n" for(i=0;i<categories.length;i++) { str+='[[Kategoria:'+categories[i].catname+']]'+"\n" } document.getElementById('wpTextbox1').value=str alert('{{DEFAULTSORT:'+sort+'}} utworzony! Pamiętaj, aby sprawdzić zmiany oraz umieścić kategorie wraz z {{DEFAULTSORT:'+sort+'}} w odpowiednim miejscu (można to zrobić narzędziem WP:SK).') } addOnloadHook(function() { var btns=document.createElement('span') btns.innerHTML='<a href="javascript:getAll()">{{D</a>' var el=document.getElementById('toolbar') if (el) el.appendChild(btns) else { el=document.getElementById('editform'); if (el) el.parentNode.insertBefore(btns,el); } })