User:Rdsmith4/monobook.js
From Meta, a Wikimedia project coordination wiki
Note: After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac); IE: hold Ctrl while clicking Refresh, or press Ctrl-F5; Konqueror: simply click the Reload button, or press F5; Opera users may need to completely clear their cache in Tools→Preferences.
/* <nowiki> */ function changeLinks(){ if(!document.getElementById) return; // document.getElementById('pt-userpage').firstChild.innerHTML = 'me'; document.getElementById('pt-mytalk').firstChild.innerHTML = 'talk'; document.getElementById('pt-watchlist').firstChild.innerHTML = 'watchlist'; document.getElementById('pt-preferences').firstChild.innerHTML = 'prefs'; document.getElementById('pt-mycontris').firstChild.innerHTML = 'contribs'; document.getElementById('pt-logout').firstChild.innerHTML = 'log out'; document.getElementById('ca-talk').firstChild.innerHTML = 'talk'; document.getElementById('ca-edit').firstChild.innerHTML = 'edit this page'; } function myLoadFuncs(){ changeLinks(); } if (window.addEventListener) window.addEventListener("load",myLoadFuncs,false); else if (window.attachEvent) window.attachEvent("onload",myLoadFuncs); function addlilink(tabs, url, name, id) { var na = document.createElement('a'); na.href = url; na.id = id; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.appendChild(na); tabs.appendChild(li); return li; } function addtab(url, name) { var na = document.createElement('a'); na.setAttribute('href', url); var txt = document.createTextNode(name); na.appendChild(txt); var li = document.createElement('li'); li.appendChild(na); return li; } function vandal(tmplt) { var txt = document.editform.wpTextbox1; if(txt.value.length > 0) txt.value += '\n'; txt.value += '{{subst:' + tmplt + '}} ~~~~'; txt.focus(); txt = document.editform.wpSummary; txt.value = tmplt document.editform.wpWatchthis.checked = false; } function speedy (criterion) { var form = document.forms.deleteconfirm; form.wpReason.value = criterion; } function morelinks() { var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; if(document.title.indexOf("Editing User talk:") == 0) { addlilink(tabs, 'javascript:vandal("test")', '1', ''); addlilink(tabs, 'javascript:vandal("test2")', '2', ''); addlilink(tabs, 'javascript:vandal("test3")', '3', ''); addlilink(tabs, 'javascript:vandal("test4")', '4', ''); addlilink(tabs, 'javascript:vandal("test5")', '5', ''); addlilink(tabs, 'javascript:vandal("spam")', 's1', ''); addlilink(tabs, 'javascript:vandal("spam3")', 's3', ''); addlilink(tabs, 'javascript:vandal("spam4")', 's4', ''); } if(document.title.indexOf("Confirm delete - Delete") == 0) { addlilink(tabs, 'javascript:speedy("nonsense")', 'no', ''); addlilink(tabs, 'javascript:speedy("remove redirect for page move")', 're', ''); addlilink(tabs, 'javascript:speedy("misleading redirect")', 'mr', ''); addlilink(tabs, 'javascript:speedy("talk page with no useful history")', 'tu', ''); addlilink(tabs, 'javascript:speedy("talk page of deleted article")', 'td', ''); } } // Adds a "blocklog" tab and fills in the username field on Special:Blockip, if a "&faketarget=username" is present. function do_blockip_stuff() { // Look for a &faketarget= for the username/ip var l = location.search.substring(1).split('&'); var target = ''; for (var i = 0; i < l.length; ++i) { var n = l[i].indexOf('='); if (l[i].substring(0, n) == 'faketarget') { target = l[i].substring(n + 1); break; } } if (target == '') return; // put account name in "IP Address/username" field var addr = document.getElementsByName('wpBlockAddress')[0]; addr.value = unescape(target); // add "blocklog" tab var c1 = document.getElementById('column-one'); var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0]; tabs.appendChild(addtab('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + target, 'log')); } // Adds "block" and "blocklog" tabs to User: and User talk: pages. function add_block_tab() { var c1 = document.getElementById('column-one'); var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0]; // use the "edit this page" tab to get already-tidied url var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href; // cut everything up to "title=" from the start and everything past "&action=edit" from the end editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit')); editlk = editlk.substring(editlk.indexOf(':') + 1); var slloc = editlk.indexOf('/'); if (slloc > 0) editlk = editlk.substring(0, slloc); // add "block" tab tabs.appendChild(addtab('/w/index.php?title=Special%3ABlockip&faketarget=' + editlk, 'Block')); // add "blocklog" tab tabs.appendChild(addtab('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + editlk, 'log')); } function do_onload() { if (document.title.indexOf('User:') == 0 || document.title.indexOf('User talk:') == 0 || document.title.indexOf('Editing User:') == 0 || document.title.indexOf('Editing User talk:') == 0) add_block_tab(); else if (document.title.indexOf('Block user') == 0) // could stand to be more robust do_blockip_stuff(); } if (window.addEventListener) window.addEventListener("load", do_onload, false); else if (window.attachEvent) window.attachEvent("onload", do_onload); window.onload = Main; function Main() { morelinks(); } /* </nowiki> */