MediaWiki:Gadget-enhanced-search.js

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
// <pre>
// Skrypt dla strony specjalnej [[Special:Search]]
/*
== Small search keyboard ==
; Author: Maciej Jaros [[:pl:User:Nux]]
; Licence: CC-BY or [http://opensource.org/licenses/gpl-license.php GNU General Public License v2]
*/
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == "Search" ) {
	jQuery( document ).ready( function() {
		if ( document.forms['search'] ) {
			addSearchKeyboard( document.forms['search'] );
		}

		if ( document.forms['powersearch'] ) {
			addSearchKeyboard( document.forms['powersearch'] );
		}
	} );
}

function addSearchKeyboard( searchForm ) {
	var searchBoxId = 'lsearchbox';
	if ( !searchForm.lsearchbox ) {
		if ( searchForm.search.id == '' ) {
			searchBoxId = searchForm.name + 'box';
			searchForm.search.id = searchBoxId;
		} else {
			searchBoxId = searchForm.search.id;
		}
	}

	var $input = jQuery( '#' + searchBoxId );
	var $panel = jQuery( '<div class="search_keyboard" style="width:50%; font-size:small; font-weight: bold" />' );
	$panel.append( "Polskie znaki: " );

	var letters = ['ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ź', 'ż', '–', '„', '”'];
	for ( var i = 0; i < letters.length; i++ ) {
		var $link = jQuery( '<a href="#"/>' );
		$link.append( letters[i] );
		$link.click( function( event ) {
			$input.textSelection( 'encapsulateSelection', {
				pre: jQuery( this ).text()
			} );
			event.preventDefault();
		} );
		$panel.append( $link );
	}

	$input.parent().parent().append( $panel );
}

/** Change Special:Search to use a drop-down menu
 *
 *  Description: Dodaje do strony Special:Search menu rozwijane
 *               pozwalające na wybór wyszukiwarki
 *  Created by: [[en:User:Gracenotes]]
 */


if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == "Search" ) {
	jQuery( document ).ready( function() {
		var searchEngines = [];

		var createOption = function( site, action, mainQ, addQ, addV ) {
				var opt = document.createElement( 'option' );
				opt.appendChild( document.createTextNode( site ) );
				searchEngines.push( [action, mainQ, addQ, addV] );
				return opt;
			};

		var searchForm;
		if ( document.forms['powersearch'] ) {
			searchForm = document.forms['powersearch'];
		} else if ( document.forms['search'] ) {
			searchForm = document.forms['search'];
		}

		if ( searchForm.lsearchbox ) {
			var searchBox = searchForm.lsearchbox;
		} else {
			var searchBox = searchForm.search;
		}
		var selectBox = document.createElement( 'select' );
		selectBox.id = 'searchEngine';
		searchForm.onsubmit = function() {
			var optSelected = searchEngines[document.getElementById( 'searchEngine' ).selectedIndex];
			searchForm.action = optSelected[0];
			searchBox.name = optSelected[1];
			searchForm.title.value = optSelected[3];
			searchForm.title.name = optSelected[2];
		};
		selectBox.appendChild( createOption( 'MediaWiki', mw.util.wikiScript(), 'search', 'title', 'Special:Search' ) );
		selectBox.appendChild( createOption( 'Google', '//www.google.pl/search', 'q', 'sitesearch', 'pl.wikinews.org' ) );
		selectBox.appendChild( createOption( 'Yahoo', 'http://search.yahoo.com/search', 'p', 'vs', 'pl.wikinews.org' ) );
		selectBox.appendChild( createOption( 'Bing', 'http://www.bing.com/search', 'q', 'q1', 'site:http://pl.wikinews.org' ) );

		searchBox.style.marginLeft = '0px';
		if ( document.getElementById( 'loadStatus' ) ) {
			var lStat = document.getElementById( 'loadStatus' );
		} else {
			var lStat = searchForm.title;
		}
		lStat.parentNode.insertBefore( selectBox, lStat );
	} );
}