Firefox 2 supporta MozSearch, una versione semplificata del formato OpenSearch di A9 per creare i plugin di ricerca. Anche i plugin OpenSearch sono supportati; vedi il sito di OpenSearch per ulteriori dettagli.
Un plugin MozSearch è un file XML che descrive il motore di ricerca, il suo URL e i parametri che occorre passare a questo URL.
Il file di plugin
Il file XMl che descrive un motore di ricerca è abbastanza semplice e segue il template basilare sotto riportato. Le sezioni in corsivo devono essere personalizzate basandosi sui bisogni dello specifico plugin di ricerca che si sta scrivendo.
<SearchPlugin xmlns="https://www.mozilla.org/2006/browser/search/">
<ShortName>nomeMotore</ShortName>
<Description>descrizioneMotore</Description>
<InputEncoding>codificaInput</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,immagine</image>
<Url type="text/html" method="metodo" template="URLdiRicerca">
<Param name="nomeParametro1" value="valoreParametro1"/>
...
<Param name="nomeParametroN" value="valoreParametroN"/>
</Url>
<Url type="application/x-suggestions+json" template="suggerimentoURL"/>
<SearchForm>cercaDaURL</SearchForm>
</SearchPlugin>
- nomeMotore
- Un nome in breve per il motore di ricerca.
- descrizioneMotore
- Una breve descrizione del motore di ricerca.
- codificaInput
- La codifica utilizzata per i dati in input.
- immagine
- Un'icona a 64 bit di 16x16 pixel che rappresenta il logo del motore di ricerca. Un tool utile per costruire i dati da immettere qui si trova al seguente URL: The data: URI kitchen.
- URLdiRicerca
- Descrive l'URL o gli URL da usare per la ricerca. L'attributo
metodo
indica se si debba utilizzare il metodo di ricercaGET
oPOST
. L'attributotemplate
indica l'URL di base per l'interrogazione del motore di ricerca.
- E' possibile specificare due tipi di URL:
type="text/html"
è utilizzato per indicare l'URL dell'interrogazione effettiva.type="application/x-suggestions+json"
è utilizzato per indicare l'URL da usare per i suggerimenti sulla ricerca..
- Per entrambi i tipi di URL è possibile utilizzare
{searchTerms}
per sostituire i termini di ricerca inseriti dall'utente nella barra di ricerca.
- Per i suggerimenti sulla ricerca, l'URL del template specificato viene utilizzato per recuperare una lista di suggerimenti nel formato JavaScript Object Notation (JSON). Per ulteriori dettagli su come implementare il supporto ai suggerimenti di ricerca su un server, si veda Supportare i suggerimenti nei plugin di ricerca.
- Parametri
- I parametri che occorre passare insieme all'interrogazione, come coppie chiave/valore. Quando si specifica i valori, è possibile utilizzare
{searchTerms}
per inserire i termini di ricerca inseriti dall'utente nella barra di ricerca.
- Form di ricerca
- L'URL da richiedere per aprire la pagina di ricerca nel sito per il quale il plugin di ricerca è stato progettato. Questo fornisce un modo per Firefox per permettere all'utente di visitare il direttamente il sito.
Ricerca automatica dei plugin
Un sito web che offre un plugin di ricerca può pubblicizzarlo in modo che gli utenti di Firefox possano facilmente scaricarlo e installarlo.
Per supportare la ricerca automatica dei plugin, occorre semplicemente aggiungere una linea alla sezione <HEAD>
della pagina web:
<link rel="search" type="application/opensearchdescription+xml" title="nomeRicerca" href="urlPlugin">
Gli elementi da sostituire sono spiegati di seguito:
- nomeRicerca
- Il nome della ricerca, come "Cerca in MDC" o "Cerca in Yahoo!".
- urlPlugin
- L'URL del plugin di ricerca in XML, dal quale il browser può scaricarlo.
Se il sito offre più plugin di ricerca, è possibile supportare la ricerca automatica per tutti quanti. Un esempio:
<link rel="search" type="application/opensearchdescription+xml" title="MioSito: cerca per autore" href="https://www.miosito.com/per_autore.xml"> <link rel="search" type="application/opensearchdescription+xml" title="Miosito: cerca per titolo" href="https://www.miosito.com/per_titolo.xml">
In questo modo, il sito può offrire entrambi i plugin di ricerca (ricerca per titolo e ricerca per autore) come entità separate.
Esempio: cercare in Yahoo!
Il seguente XML è il plugin di ricerca per Firefox 2 per le ricerche attraverso Yahoo!:
<SearchPlugin xmlns="https://www.mozilla.org/2006/browser/search/"> <ShortName>Yahoo</ShortName> <Description>Cerca in Yahoo</Description> <InputEncoding>UTF-8</InputEncoding> <SuggestionUrl>https://ff.search.yahoo.com/gossip?output=fxjson&command=</SuggestionUrl> <Image width="16" height="16">data:image/x-icon;base64,R0lGODlhEAAQAJECAP8AAAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIplI+py+0NogQuyBDEnEd2kHkfFWUamEzmpZSfmaIHPHrRguUm/fT+UwAAOw==</Image> <Url type="text/html" method="GET" template="https://search.yahoo.com/search"> <Param name="p" value="{searchTerms}"/> <Param name="ei" value="UTF-8"/> <Param name="fr" value="moz2"/> </Url> <SearchForm>https://search.yahoo.com/</SearchForm> </SearchPlugin>
Diciamo che l'utente sceglie di utilizzare Yahoo! come motore di ricerca: inserisce "mozilla" nella barra di ricerca e preme il tasto invio. Firefox utilizzerà la descrizione qui sopra per costruire il seguente URL:
https://search.yahoo.com/search?p=mozilla&ei=UTF-8&fr=moz2
Se l'utente clicca sull'icona nella barra di ricerca, o sceglie l'opzione "Cerca sul web" nel menu Strumenti quando la barra non è visibile, il browser lo porterà a https://search.yahoo.com/, il valore dell'elemento <SearchForm>
.
Esempio: cercare in MDC
Questo plugin permette di cercare facilmente dei termini nel sito Mozilla Developer Center.
<SearchPlugin xmlns="https://www.mozilla.org/2006/browser/search/"> <ShortName>MDC</ShortName> <Description>Cerca in Mozilla Developer Center</Description> <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz%2F%2Fz8DJQAggJiQOe%2Ffv2fv7Oz8rays%2FN%2BVkfG%2FiYnJfyD%2F1%2BrVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw%2F8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi%2FG%2BQKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo%2BMXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia%2BCuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq%2FvLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg%2FkdypqCg4H8lUIACnQ%2FSOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD%2BaDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg%3D%3D</Image> <Url type="text/html" method="GET" template="https://developer.mozilla.org/en/docs/Special:Search?search={searchTerms}"/> <SearchForm>https://developer.mozilla.org/en/docs/Special:Search</SearchForm> </SearchPlugin>
Si noti in questo caso che invece di utilizzare <Param>
per definire i parametri del motore di ricerca, sono stati semplicemente incorporati dentro il modello di URL. Questo in effetti è il metodo preferibile quando si utilizza il metodo GET
. <Param>
dovrebbe essere utilizzato per il metodo POST
.
Suggerimenti per la risoluzione dei problemi
Se c'è un errore nell'XML del plugin di ricerca, si dovrebbero incontrare degli errori mentre il plugin viene aggiunto in Firefox (Bon Echo) Alpha 3. Il messaggio d'errore però potrebbe non essere molto d'aiuto, perciò i seguenti suggerimenti potrebbero aiutare a risolvere il problema.
- Assicurarsi per l'XML sia ben formato. E' possibile eseguire questo controllo caricando il file direttamente in Firefox. Le "e commerciali" nell'URL del template devono essere sostituite con & e i tag devono essere chiusi con un / finale o con un tag di chiusura.
- L'attributo
xmlns
è importante: senza di esso potrebbe apparire un messaggio di errore che dice: "Bon Echo could not download the plugin from (URL)" (o la sua traduzione in italiano).
Inoltre, servizio di plugin di ricerca fornisce un meccanismo di log che potrebbe tornare utile agli sviluppatori di plugin. Si utilizziabout:config per impostare la preferenza 'browser.search.log
' a true
. Quando si aggiunge un plugin di ricerca, appariranno le informazioni loggate nella Console degli errori (Tools->Error Console).
OpenSearch
Firefox 2 supporta anche il formato OpenSearch di Amazon A9 per condividere i risultari delle ricerche. Se si scrive un plugin XML utilizzando le specifiche che si trovano in OpenSearch description syntax, può successivamente essere inserito nella directory searchengines.
Il formato OpenSearch Description è simile al formato Mozilla SearchPlugin. Le differenze principali sono l'elemento radice e il namespace XML:
<xml version="1.0" encoding="UTF-8"?> <OpenSearchDescription xmlns="https://a9.com/-/spec/opensearch/1.1/"> ... </OpenSearchDescription>
Materiale di riferimento
- A9.com OpenSearch Documentation
- Su technorati.com: working osd.xml
- Ulteriori informazioni sui problemi della ricerca automatica su Bugzilla []
- Data: Schema degli URI
- OpenSearch Plugin Generator - crea dei plugin OpenSearch per Firefox2. - Lista dei plugin generati