User:Linuxbeak/monobook.js
From Wikipedia, the free encyclopedia
If a message on your talk page led you here, please be wary of who left it. The code below could contain malicious content capable of compromising your account; if your account appears to be compromised, it will be blocked. If you are unsure whether the code is safe, you can ask at the appropriate village pump.
Note: After saving, you have to bypass your browser's cache to see the changes. In Internet Explorer and Firefox, hold down the Ctrl key and click the Refresh or Reload button. Opera users have to clear their caches through Tools→Preferences, see the instructions for Opera. Konqueror and Safari users can just click the Reload button.
function addPurgeLink() { // Adds a "Purge page" link to the toolbox // remove "action" variable from the URL and insert new one myURL = window.location; var myGetVars = myURL.search.substring(1,myURL.search.length).split("&"); var myCleanGetVars = Array(); for (i=0;i<myGetVars.length;++i) { if (myGetVars[i] && myGetVars[i].substr(0,6) != "action") { myCleanGetVars.push(myGetVars[i]); } } myCleanGetVars.push("action=purge"); var myNewGetVars = "?" + myCleanGetVars.join("&"); myURLString = myURL.protocol + "//" + myURL.hostname + myURL.pathname + myNewGetVars + myURL.hash; addToToolbox('Purge page', myURLString, 'Purge this page', 't-purge'); } function addEditCountLink() { // Add "Count User edits" link to toolbox if (window.location.pathname.indexOf('index.php') > 0) { // GET mode myTrigger = window.location.search; } else { // Path mode myTrigger = window.location.pathname; } if (myTrigger.indexOf('User:') > 0) { // We're in User space myUName = extractUName('User:', myTrigger); } else if (myTrigger.indexOf('User_talk:') > 0) { // We're in User_talk space myUName = extractUName('User_talk:', myTrigger); } else if (myTrigger.indexOf('Special:Contributions') > 0) { // We're viewing contributions myUName = extractUName('Special:Contributions/', myTrigger); } else { // Bail out return false; } myEscapedUName = myUName.replace(/_/, "+"); myClearUName = myUName.replace(/_/, " "); myURLString = 'http://kohl.wikimedia.org/~kate/cgi-bin/count_edits.cgi?user='+ myEscapedUName +'&dbname=enwiki'; addToToolbox('Count user edits', myURLString, 'Count edits by ' + myClearUName, 't-ucount'); myBlockString = 'http://en.wikipedia.org/w/index.php?title=Special:Blockip&ip='+myClearUName; addToToolbox('Block user', myBlockString, 'Block ' + myClearUName, 't-ublock'); } function addCrossWPSearchLink() { // Search article in other WPs link to toolbox if (window.location.pathname.indexOf('index.php') > 0) { // GET mode myTrigger = window.location.search; } else { // Path mode myTrigger = window.location.pathname; } if ( myTrigger.indexOf('User:') < 0 && myTrigger.indexOf('User_talk:') < 0 && myTrigger.indexOf('Wikipedia:') < 0 && myTrigger.indexOf('Wikipedia_talk:') < 0 && myTrigger.indexOf('Category:') < 0 && myTrigger.indexOf('Category_talk:') < 0 && myTrigger.indexOf('Template:') < 0 && myTrigger.indexOf('Template_talk:') < 0 && myTrigger.indexOf('Image:') < 0 && myTrigger.indexOf('Image_talk:') < 0 && myTrigger.indexOf('Help:') < 0 && myTrigger.indexOf('Help_talk:') < 0 && myTrigger.indexOf('MediaWiki:') < 0 && myTrigger.indexOf('Special:') < 0 && myTrigger.indexOf('MediaWiki_talk:') < 0 ) { // We're in Article space myArticleName = extractUName('/wiki/', myTrigger); } else if (myTrigger.indexOf('Talk:') > 0) { // We're in Talk space myArticleName = extractUName('Talk:', myTrigger); } else { // Bail out return false; } myURLString = 'http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?timeout=30&minor=1&search='+ myArticleName; addToToolbox('Other Wikipedias', myURLString, 'Look up ' + myArticleName + 'in other language Wikipedias', 't-uotherwp'); } function StubConvert() { document.getElementsByName("wpSummary")[0].value = "{" + "{Egypt-stub}} => {" + "{Ancient-Egypt-stub}} as per [[WP:SFD]]"; document.getElementsByName("wpMinoredit")[0].checked = "checked"; oldArticleText = document.getElementsByName("wpTextbox1")[0].value; newArticleText = oldArticleText.replace(/\{\{[E|e]gypt-stub\}\}/, "{" + "{Ancient-Egypt-stub}}"); document.getElementsByName("wpTextbox1")[0].value = newArticleText; document.editform.submit(); } function addStubConvLink() { addToToolbox('Ancient Egypt convert', 'javascript:StubConvert();', 'Ancient Egypt convert', 't-AEConv'); } function extractUName(namespace, myString) { myCleanedString = myString.substring(myString.indexOf(namespace) + namespace.length,myString.length); if (myCleanedString.indexOf('/') > 0) { mySliceEnd = myCleanedString.indexOf('/'); } else { mySliceEnd = myCleanedString.length; } myCleanerString = myCleanedString.substring(0,mySliceEnd); return myCleanerString; } function addToToolbox(label, link, title, id) { // Create new child node of the toolbox object var myLinktext = document.createTextNode(label); var myLink = document.createElement("a"); myLink.href = link; myLink.title = title; myLink.appendChild(myLinktext); var myListItem = document.createElement("li"); myListItem.id = id; myListItem.appendChild(myLink); document.getElementById('p-tb').getElementsByTagName("ul")[0].appendChild(myListItem); } function reformatMyPage() { // execute all formatting functions... addPurgeLink(); addEditCountLink(); addCrossWPSearchLink(); // addStubConvLink(); } // when the page is loaded if (window.addEventListener) window.addEventListener("load",reformatMyPage,false); else if (window.attachEvent) window.attachEvent("onload",reformatMyPage);