User:Melchoir/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.
// This will add an [edit] link at the top of all pages except preview pages and the main page
// by User:Pile0nades
 
// Add an [edit] link to pages
addOnloadHook(function () {
 // if this is preview page or generated page, stop
 if(
 document.getElementById("wikiPreview") ||
 document.getElementById("histlegend‎") ||
 document.getElementById("difference‎") ||
 document.getElementById("watchdetails") ||
 document.getElementById("ca-viewsource") ||
 window.location.href.indexOf("/wiki/Special:") != -1
 ) {
 if(window.location.href.indexOf("&action=edit&section=0") != -1) {
 document.getElementById("wpSummary").value = "/* Intro */ ";
 }
 return;
 };
 
 // get the page title
 var pageTitle = wgPageName;
 
 // create div and set innerHTML to link
 var divContainer = document.createElement("div");
 divContainer.innerHTML = '<div class="editsection">[<a href="/w/index.php?title='+pageTitle+'&action=edit&section=0" title="Edit section: '+pageTitle+'">edit intro</a>]</div>';
 
 // insert divContainer into the DOM below the h1
 if(window.location.href.indexOf("&action=edit") == -1) {
 document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);
 }
 
});
 
// adds a 'logs for this page' link to the toolbox bar
// if the page is a user's page, talk page or subpage, the link will go to logs for the user instead
// if the page is a special page, then no link is displayed
 
addOnloadHook(function () {
 
 // if this is a user, show the logs for the user rather than the page
 if ( wgCanonicalNamespace == "User" || wgCanonicalNamespace == "User_talk" ) {
  url = wgServer + "/w/index.php?title=Special:Log&user=" + wgTitle.split("/")[0];
 } else if ( wgCanonicalNamespace == "Special" ) {
  // don't display link for special pages
  return;
 } else {
  url = wgServer + "/w/index.php?title=Special:Log&page=" + wgPageName;
 }
 
 addPortletLink("p-tb", url, "Logs", "pt-logs");
 
});
 
addOnloadHook(function () {
    if (wgCanonicalNamespace == "Special")
        return;  // no links for special pages
 
    var title = wgTitle;
    if (wgCanonicalNamespace != "")
        title = title.replace(/^.*\//, "");  // subpage name only
 
    var query = encodeURIComponent('"'+title+'" -Wikipedia' ); 
    addPortletLink('p-tb',
                   'http://www.google.com/search?ie=utf-8&oe=utf-8&q='+query,
                   'Google search',
                   't-googlesearch',
                   'Search Google for "'+title+'"',
                   'G');
    addPortletLink('p-tb',
                   'http://www.google.com/search?ie=utf-8&oe=utf-8&q='+title+'%20site:wikipedia.org%20-site:en.wikipedia.org%20-site:nostalgia.wikipedia.org',
                   'Google interwiki',
                   't-interwikisearch',
                   'Search Google for interwiki articles on "'+title+'"');
    addPortletLink('p-tb',
                   'http://stats.grok.se/en/200805/'+wgTitle,
                   'Traffic statistics',
                   't-trafficstats',
                   'Traffic statistics for '+wgTitle+' from stats.grok.se');
});
 
// addPurge
addOnloadHook(function () {
    var hist; var url;
    if (!(hist = document.getElementById('ca-history') )) return;
    if (!(url = hist.getElementsByTagName('a')[0] )) return;
    if (!(url = url.href )) return;
    addPortletLink('p-cactions', url.replace(/([?&]action=)history([&#]|$)/, '$1purge$2'),
                   'purge', 'ca-purge', 'Purge server cache for this page', '0');
});