[ITA] Creare plugin motore di ricerca per Firefox e Internet Explorer

Oggi vi mostrerò come creare facilmente e in poco tempo un plugin motore di ricerca, per Firefox e Internet Explorer 7, utilizzando il formato OpenSearch.

Il plugin

Iniziamo subito con il codice XML del plugin, e poi dopo passiamo alla teoria…

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Motore di ricerca</ShortName>
<Description>Descrizione del motore di ricerca.</Description>
<Tags>esempi tag tags web</Tags>
<Contact>[email protected]</Contact>
<Url type="text/html" template="http://www.miosito.it/?q={searchTerms}"/>
<LongName>Il mio motore di ricerca</LongName>
<Image height="64" width="64" type="image/png">http://www.miosito.it/search.png</Image>
<Image height="16" width="16" type="image/vnd.microsoft.icon">http://www.miosito.it/websearch.ico</Image>
<Developer>Nome Cognome</Developer>
<Attribution>Copyright 2008, MioSito.it, Tutti i diritti riservati</Attribution>
<SyndicationRight>open</SyndicationRight>
<AdultContent>false</AdultContent>
<Language>it-IT</Language>
<OutputEncoding>UTF-8</OutputEncoding>
<InputEncoding>UTF-8</InputEncoding>
</OpenSearchDescription>

Introduzione a OpenSearch

OpenSearch è una semplice raccolta di formati per la condivisione dei risultati della ricerca. Il file XML nel formato OpenSearch formato può essere utilizzato per descrivere un motore di ricerca in modo che possa essere utilizzato da applicazioni client (es. browser). Lista dei tag di OpenSearch da utilizzare nel documento XML:

OpenSearchDescription Il nodo principale del documento OpenSearch.
ShortName Contiene il titolo del motore di ricerca.
Description Contiene la descrizione del motore di ricerca.
Url Imposta l’url dove fare la richiesta per la ricerca. Attributi:template – Contiene l’URL che viene processato da OpenSearch durante la ricerca (utilizzando gli appositi tag di template).type – Contiene il formato MIME della risposta.indexOffset – Contiene il numero (indice) del primo risultato della ricerca.pageOffset – Contiene il numero di pagina della prima serie di risultati di ricerca.
Contact Contiene l’indirizzo email del responsabile.
Tags Contiene un set di tag che vengono utlizzati come keyword per identificare e catalogare il contenuto della ricerca. Devono essere separati da uno spazio (‘ ‘).
LongName Contiene una descrizione del motore di ricerca in formato esteso.
Image Contiene l’URL o la versione codificata con base64 (potete utilizzare il tool “The data: URI kitchen” per generare il base64) dell’immagine da utilizzare come icona del motore di ricerca. Attributi:height – Altezza in pixel dell’immagine.width – Larghezza in pixel dell’immagine.type – Il formato MIME dell’immagine.
Developer Contiene il nome dello sviluppatore o del responsabile.
Attribution Contiene la lista dei “credits” per il contenuto nei risultati della ricerca.
SyndicationRight Contiene un valore che indica il grado in cui i risultati forniti dal motore di ricerca possono essere ricercati, mostrati e ridistribuiti. Valori:open – Il client può richedere i risultati della ricerca. Il client può mostrare i risultati della ricerca all’utente. Il client può inviare i risulati della ricerca ad altri client.limited – Il client può richedere i risultati della ricerca. Il client può mostrare i risultati della ricerca all’utente. Il client non può inviare i risulati della ricerca ad altri client.private – Il client può richedere i risultati della ricerca. Il client non può mostrare i risultati della ricerca all’utente. Il client non può inviare i risulati della ricerca ad altri client.closed – Il client non può richedere i risultati della ricerca.
AdultContent Contiene un valore che indica se nei risultati della ricerca ci possono essere contenuti per adulti. Valori:FALSE – “false”, “FALSE”, “0”, “no”, e “NO”TRUE – tutti gli altri valori
Language Contiene una stringa che indica che il motore di ricerca supporta i risultati nella lingua specificata.
InputEncoding Contiene una stringa che indica che il motore di ricerca supporta richieste codificate con la codifica specificata.
OutputEncoding Contiene una stringa che indica che il motore di ricerca supporta la ricerca di risposte codificate nella codifica specificata.

Lista dei tag di template di OpenSearch da utilizzare nell’attributo template del tag Url:

{searchTerms} Viene sostituito con le parole utilizzate per effettuare la ricerca.
{count} Viene sostituito con il numero di risultati per pagina.
{startIndex} Viene sostituito con l’indice del primo risultato della ricerca.
{startPage} Viene sostituito con il numero di pagina della serie di risultati.
{language} Viene sostituito con una stringa che indica in che lingua dovrebbero essere i risultati della ricerca.
{inputEncoding} Viene sostituito con una stringa che indica in che codifica viene eseguita la ricerca.
{outputEncoding} Viene sostituito con una stringa che indica in che codifica dovrebbero essere i risultati della ricerca.

Inserirlo in un sito

Inserire questa riga nel tag head della pagina, in modo che i browser riconoscano automaticamente che è disponibile un motore di ricerca per il vostro sito.

<link rel="search" href="http://www.miosito.it/mio-sito-motore-ricerca.xml" type="application/opensearchdescription+xml" title="MioSito.it" />

Oppure potete utilizzare questo codice javascript per fare in modo che venga aggiunto alla lista dei motori già disponibili nel browser.

window.external.AddSearchProvider('http://www.miosito.it/mio-sito-motore-ricerca.xml');

es:

<a href="javascript:window.external.AddSearchProvider('http://www.miosito.it/mio-sito-motore-ricerca.xml');">Aggiungi il mio motore di ricerca</a>

Considerazioni finali

Spero che vi divertiate a creare i vostri motori di ricerca per i vostri siti, offrendo così agli utenti un servizio utile in più! Poi se volete pubblicarli e condividerli con il mondo potrete sfruttare due “directory”, una per Firefox e una per InternetExplorer:

Per maggiori informazioni: