User:Mike Dillon/MediaWiki:CustomSearch.js

/* This file should only be included for pages that use it. At the moment that is only Help:Customizing_your_monobook. If you wish to add pages to use this, edit the relevant section of Common.js FireFox and IE 7 allow sites to customize the integrated search box. Below exposes that through WT:CUSTOM. */

$(function {    // Find the container node and bail if it's not there    var searches = document.getElementById('wtCustomIntegratedSearchProviders');    if (!searches) return;

// Remove all children from 'searches' while (searches.hasChildNodes) { searches.removeChild(searches.firstChild); }

// Bail out in unsupported browsers with a message that this doesn't work if (!(window.external && window.external.AddSearchProvider)) { var span = document.createElement('em'); span.appendChild(document.createTextNode('This feature is not supported by your browser. Sorry!')); searches.appendChild(span); return; }

// MediaWiki built-in search appendSearchProviderLink('English Wiktionary', 'MediaWiki:SearchEnWiktWithMediaWiki.xml');

// English Witionary search with Google appendSearchProviderLink('English Wiktionary via Google', 'MediaWiki:SearchEnWiktWithGoogle.xml');

// All Witionary search with Google appendSearchProviderLink('All Wiktionary via Google', 'MediaWiki:SearchAllWiktWithGoogle.xml');

// English Witionary search with Ninjawords appendSearchProviderLink('All Wiktionary via Ninjawords', 'MediaWiki:SearchWithNinjawords.xml');

// Anchor creator helper function appendSearchProviderLink(providerName, providerXml) { var linkText = 'Add integrated search provider “' + providerName + '”.';

var anchor = document.createElement("a"); anchor.setAttribute('href', '#'); anchor.appendChild(document.createTextNode(linkText));

var providerXmlUrl = 'http://en.wiktionary.org/w/index.php?action=raw&title=' + encodeURIComponent(providerXml);

anchor.onclick = function { window.external.AddSearchProvider(providerXmlUrl); return false; };

if (searches.hasChildNodes) { searches.appendChild(document.createElement("br")); }

searches.appendChild(anchor); } });