MediaWiki:Gadget-EnhancedSearch.js/Core.js: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
m Rjclaudio moveu MediaWiki:Gadget-BuscaAprimorada.js para MediaWiki:Gadget-EnhancedSearch.js/Core.js |
test |
||
Linha 5: | Linha 5: | ||
* Created and maintained by: [[:fr:User:Pmartin]] |
* Created and maintained by: [[:fr:User:Pmartin]] |
||
*/ |
*/ |
||
var |
var site = mw.config.get('wgServer').replace(/^.*\/\//g, ''); |
||
var searchEngines = { |
var searchEngines = { |
||
mediawiki: { |
mediawiki: { |
Revisão das 11h36min de 17 de setembro de 2012
/** 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 and maintained by: [[:fr:User:Pmartin]]
*/
var site = mw.config.get('wgServer').replace(/^.*\/\//g, '');
var searchEngines = {
mediawiki: {
ShortName: "Wikipédia",
Template: mw.config.get('wgScript') + "?search={searchTerms}"
},
wikiwix: {
ShortName: "Wikiwix",
Template: "http://www.wikiwix.com/index.php?action={searchTerms}&lang=" + mw.config.get('wgContentLanguage')
},
google: {
ShortName: "Google",
Template: "http://www.google." + ( {
'pt-br' : 'com.br',
'en' : 'com',
'en-gb' : 'com'
}[ mw.config.get('wgUserLanguage') ]
|| mw.config.get('wgUserLanguage') ) +
"/search?hl=" + mw.config.get('wgUserLanguage') + "&q={searchTerms}&as_sitesearch=" + site
},
yahoo: {
ShortName: "Yahoo!",
Template: "http://search.yahoo.com/search?p={searchTerms}&vs=" + site
},
bing: {
ShortName: "Bing",
Template: "http://www.bing.com/search?q={searchTerms}&q1=site:" + site
}
};
function changeSearchEngine( selectedId, searchTerms ) {
var engine, pos, params, form, list, i, param, input,
$currentRadio = $('#searchengineChoices').find('input[type=radio]:checked');
if ( !$currentRadio.length ) {
$( '#searchengineRadio-' + selectedId ).attr( 'checked', 'checked' );
}
engine = searchEngines[ selectedId ];
pos = engine.Template.indexOf( '?' );
if( pos == -1 ){
return;
}
$( '#search, #powersearch' ).attr( 'action', engine.Template.substr(0, pos) );
params = engine.Template.substr( pos + 1 );
list = ( '' + params ).split( '&' );
for (i = 0; i < list.length; i++) {
param = list[i].split( '=' );
if ( param[1] == '{language}' ) {
continue;
}
if ( param[1] == '{searchTerms}' ) {
$( '#searchText, #powerSearchText' ).attr( 'name', param[0] );
} else {
$( '#searchengineextraparam' ).attr( {
'name': param[0],
'value': param[1]
} );
}
}
}
function externalSearchEngines() {
var defaultEngine = 'mediawiki',
$mainNode = $('#search, #mw-searchoptions'),
$lsearchbox = $( '#searchText, #powerSearchText' ),
$choices = $( '<div id="searchengineChoices" style="text-align:center;"></div>' );
$.each( searchEngines, function( id, engine ){
var $radio, $label;
if ( !engine.ShortName ) {
return true;
}
$radio = $( '<input></input>', {
type: 'radio',
name: 'searchengineselect',
value: id,
id: 'searchengineRadio-' + id
} ).change( function( e ){
changeSearchEngine( this.value );
});
$choices.append( $radio );
$label = $( '<label></label>', {
'for': 'searchengineRadio-' + id,
'text': engine.ShortName
} );
$choices.append( $label );
} );
$mainNode.append( $choices )
.append( '<input id="searchengineextraparam" type="hidden"></input>' );
changeSearchEngine( defaultEngine, $lsearchbox.val() );
}
$(externalSearchEngines);