মিডিয়াউইকি:Gadget-SpecialSearch.js
অবয়ব
লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।
- ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
- গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
- এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন।
- অপেরা: Ctrl-F5 টিপুন।
// {{documentation}}
/** Change Special:Search to use a radio menu
*
* Description: Change Special:Search to use a radio menu, with the default being
* the internal MediaWiki engine
* Created by: [[:fr:User:Pmartin]]
*/
if ((mw.config.get("wgNamespaceNumber") == -1) && (mw.config.get("wgCanonicalSpecialPageName") == "Search")) {
var searchEngines = {
mediawiki: {
ShortName: "মিডিয়াউইকি অনুসন্ধান",
Template: mw.config.get("wgScript") + "?search={searchTerms}"
},
google: {
ShortName: "গুগল",
Template: "https://www.google.com/search?q=site:" + mw.config.get("wgServer").replace(/^.*?\/\//, '') + "&q={searchTerms}"
},
wikiwix: {
ShortName: "উইকিউইক্স",
Template: "http://www.wikiwix.com/index.php?action={searchTerms}"
},
live: {
ShortName: "বিং",
Template: "https://www.bing.com/search?q1=site:" + mw.config.get("wgServer").replace(/^.*?\/\//, '') + "&q={searchTerms}"
},
yahoo: {
ShortName: "ইয়াহু",
Template: "https://search.yahoo.com/search?p={searchTerms}&vs=" + mw.config.get("wgServer").replace(/^.*?\/\//, '')
}
};
$(externalSearchEngines);
}
function externalSearchEngines()
{
var mwSearchTopTable = $('#mw-search-top-table');
if (mwSearchTopTable.length === 0) return;
var firstEngine = "mediawiki";
var choices = $('<div>').attr("id", "searchengineChoices").css("clear", "left").css("padding-top", "0.3em");
for (var id in searchEngines) {
var engine = searchEngines[id];
if (engine.ShortName) {
choices.append(" " );
$('<label>')
.attr("for", "searchengineRadio-" + id)
.append(
$('<input>')
.attr("type", "radio")
.val(id)
.data("engine-name", id)
.on("focus", changeSearchEngine)
.attr("id", "searchengineRadio-" + id)
)
.append(" " + engine.ShortName)
.appendTo(choices);
}
}
$('<input type="hidden" />').attr("id", "searchengineextraparam").appendTo(choices);
$(choices).insertAfter(mwSearchTopTable);
$("[id^='searchengineRadio-']").click(function() {
$("[id^='searchengineRadio-']").not(this).prop('checked', false);
});
$("#searchengineRadio-" + firstEngine).prop("checked", true);
}
function changeSearchEngine()
{
$("#searchengineextraparam").removeAttr("name");
var radio = $(this).prop("checked", true);
var selectedEngineName = radio.data("engine-name");
if (selectedEngineName == $("#searchengineChoices").data("currentChoice")) return;
$("#searchengineChoices").data("currentChoice", selectedEngineName);
var engine = searchEngines[selectedEngineName];
var p = engine.Template.indexOf('?');
var params = engine.Template.substr(p + 1);
var form;
if (document.forms["search"]) {
form = document.forms["search"];
} else {
form = document.getElementById("powersearch");
}
form.setAttribute("action", engine.Template.substr(0, p));
var l = ("" + params).split("&");
for (var i in l) {
var pName = l[i].split("=")[0];
var pValue = l[i].split("=")[1];
if (pValue == "{language}") {}
else if (pValue == "{searchTerms}") {
var input;
if (document.forms["search"]) {
input = document.getElementById("searchText");
} else {
input = document.getElementById("ooui-php-1") || form.querySelectorAll("[type='search']")[0];
}
if (input) {
if (input.tagName.toUpperCase() != "INPUT") {
input = input.getElementsByTagName("input")[0];
}
input.name = pName;
}
} else {
$("#searchengineextraparam").attr("name", pName).val(pValue);
}
}
$(form).find("input:not(#searchengineextraparam):not([type='search']):not([id^='searchengineRadio-']").prop("disabled", selectedEngineName != "mediawiki");
}
// == Drop-down language preload menu for [[MediaWiki:Searchmenu-new]] ==
function addNogoPreloadMenu() {
var preloadGuide = document.getElementById('preloadGuide');
if (preloadGuide) {
preloadGuide.style.display = 'inline-block';
var menu = "<select style=\"float: left; display: inline-block; margin: 0 0 0.4em 0.5em;\" onChange=\"showPreloads(selectedIndex)\">";
menu += "<option>English</option>";
var languages = document.getElementsByClassName("searchmenu-language-name");
for (var i = 0; i < languages.length; ++i) {
var languageName = languages[i].textContent.trim();
if (languageName[languageName.length - 1] == ":") {
languageName = languageName.substring(0, languageName.length - 1);
}
menu += "<option>" + languageName + "</option>";
}
menu += "</select>";
var menuDiv = document.getElementById('entryTemplateMenu');
menuDiv.innerHTML = menu;
showPreloads(0);
}
}
$(addNogoPreloadMenu);
window.showPreloads = function (selectedIndex) {
var languageOptions = document.getElementById('preloadGuide').getElementsByTagName('table');
for (var i = 0; i < languageOptions.length; i++) {
if (languageOptions[i].className == "language") {
languageOptions[i].style.display = i == selectedIndex ? 'block' : 'none';
}
}
};