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:
- Mycroft Project (per Firefox): Directory – Pubblicazione
- Microsoft Internet Explorer (per Internet Explorer): Directory
Per maggiori informazioni: