ميدياويكي:Common.js/search.js
المظهر
ملاحظة: بعد النشر، أنت قد تحتاج إلى إفراغ الكاش الخاص بمتصفحك لرؤية التغييرات.
- فايرفوكس / سافاري: أمسك Shift أثناء ضغط Reload، أو اضغط على إما Ctrl-F5 أو Ctrl-R (⌘-R على ماك)
- جوجل كروم: اضغط Ctrl-Shift-R (⌘-Shift-R على ماك)
- إنترنت إكسبلورر/إيدج: أمسك Ctrl أثناء ضغط Refresh، أو اضغط Ctrl-F5
- أوبرا: اضغط Ctrl-F5.
/** 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]]
*/
if ( ( mw.config.get('wgNamespaceNumber') == -1 ) && ( mw.config.get('wgCanonicalSpecialPageName') == 'Search' ) ) {
var searchEngines = {
mediawiki: {
ShortName: 'بحث ميدياويكي' ,
Template: '/w/index.php?search={searchTerms}'
},
google: {
ShortName: 'جوجل',
Template: 'http://www.google.fr/search?hl=' + mw.config.get('wgUserLanguage') + '&q={searchTerms}&as_sitesearch=' + mw.config.get('wgServer').substr( 7, mw.config.get('wgServer').length - 1 )
},
wikiwix: {
ShortName: 'ويكي وكس',
Template: 'http://www.wikiwix.com/index.php?action={searchTerms}&lang=' + mw.config.get('wgContentLanguage')
},
yahoo: {
ShortName: 'ياهو',
Template: 'https://' + mw.config.get('wgUserLanguage') + '.search.yahoo.com/search?p={searchTerms}&vs=' + mw.config.get('wgServer')
}
};
$( externalSearchEngines );
}
function externalSearchEngines() {
if ( typeof SpecialSearchEnhanced2Disabled != 'undefined' ) {
return;
}
var mainNode = document.getElementById( 'powersearch' );
if ( !mainNode ) {
mainNode = document.getElementById( 'search' );
}
if ( !mainNode ) {
return;
}
var beforeNode = document.getElementById( 'mw-search-top-table' );
if ( !beforeNode ) {
return;
}
beforeNode = beforeNode.nextSibling;
if ( !beforeNode ) {
return;
}
var firstEngine = 'mediawiki';
var choices = document.createElement( 'div' );
choices.setAttribute( 'id', 'searchengineChoices' );
choices.style.textAlign = 'center';
var lsearchbox = document.getElementById( 'searchText' );
var initValue = lsearchbox.value;
var space = '';
for ( var id in searchEngines ) {
var engine = searchEngines[id];
if( engine.ShortName ) {
if ( space ) {
choices.appendChild( space );
}
space = document.createTextNode( ' ' );
var attr = {
type: 'radio',
name: 'searchengineselect',
value: id,
onFocus: 'changeSearchEngine(this.value)',
id: 'searchengineRadio-' + id
};
var html = '<input';
for ( var a in attr ) {
html += ' ' + a + "='" + attr[a] + "'";
}
html += ' />';
var span = document.createElement( 'span' );
span.innerHTML = html;
choices.appendChild( span );
var label;
if ( engine.Template.indexOf( 'http' ) == 0 ) {
label = document.createElement( 'a' );
label.href = engine.Template.replace( '{searchTerms}', initValue ).replace( '{language}', 'fr' );
} else {
label = document.createElement( 'label' );
}
label.appendChild( document.createTextNode( engine.ShortName ) );
choices.appendChild( label );
}
}
mainNode.insertBefore( choices, beforeNode );
var input = document.createElement( 'input' );
input.id = 'searchengineextraparam';
input.type = 'hidden';
mainNode.insertBefore( input, beforeNode );
changeSearchEngine( firstEngine, initValue );
}
function changeSearchEngine( selectedId, searchTerms ) {
var currentId = document.getElementById( 'searchengineChoices' ).currentChoice;
if ( selectedId == currentId ) {
return;
}
document.getElementById( 'searchengineChoices' ).currentChoice = selectedId;
var radio = document.getElementById( 'searchengineRadio-' + selectedId );
radio.checked = 'checked';
var engine = searchEngines[selectedId];
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 idx = 0; idx < l.length; idx++ ) {
var p = l[idx].split( '=' );
var pValue = p[1];
if ( pValue == '{language}' ) {
} else if ( pValue == '{searchTerms}' ) {
var input;
input = document.getElementById( 'searchText' );
input.name = p[0];
} else {
var input = document.getElementById( 'searchengineextraparam' );
input.name = p[0];
input.value = pValue;
}
}
}
$( SpecialSearchEnhanced );