Le .xml
Il s'agit du fichier que crée la première méthode. Prenons par exemple celui d'Amazon.com, présent à l'installation de Firefox donc dans le dossier C:\Program Files\Mozilla Firefox\searchplugins. Ouvrons donc
amazon.xml :
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Amazon.com</ShortName>
<Description>Amazon.com Search</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoA...=</Image>
<Url type="text/html" method="GET" template="http://www.amazon.com/exec/obidos/external-search/">
<Param name="field-keywords" value="{searchTerms}"/>
<Param name="mode" value="blended"/>
<Param name="tag" value="mozilla-20"/>
<Param name="sourceid" value="Mozilla-search"/>
</Url>
<SearchForm>http://www.amazon.com/</SearchForm>
</SearchPlugin>
SearchPlugin
Définition du namespace des différents nodes du fichier xml (ici, c'est la définition de Firefox).
ShortName
Nom du plugin de recherche.
Description
Description du plugin de recherche.
InputEncoding
Encodage des caractères du formulaire.
Image
Définition de l'icône qui sera ajoutée dans l'interface de recherche encodée en Base64.
Url
Contient les différents attributs du formulaire de recherche.
type
Format dans lequel les données sont envoyées au serveur.
method
GET ou POST méthode d'envoi des données au serveur.
template
ACTION du formulaire de recherche.
Param
Les différents champs qui sont passées au formulaire. Le champ sur lequel se fait la requête doit avoir la value="{searchTerms}".
SearchForm
Lien vers lequel les soumissions de formulaires vides iront.
Convertir un formulaire en plugin
Pour un premier exemple, je me suis basé sur le site
Chanson-Française.net.

A l'aide du clique droit et de la commande "Informations sur la page", j'ai facilement repéré que le nom du champ du formulaire était "keyword".
<InputEncoding>UTF-8</InputEncoding>
<Url type="text/html" method="POST" template="http://chanson-francaise.net/v2/recherche.html">
<Param name="keyword" value="{searchTerms}"/>
</Url>
Remarque : la méthode "POST" n'est pas gérée par Internet Explorer.
Pour un second exemple, j'ai pris le site
Tous les drivers.com qui met à disposition la plupart des drivers.

Il y a plusieurs champs cachés dans ce formulaire-ci. J'ai repris les noms et valeurs de ces champs en tant que Param de mon XML.
<InputEncoding>UTF-8</InputEncoding>
<Url type="text/html" method="GET" template="http://www.touslesdrivers.com/index.php">
<Param name="v_page" value="25"/> <!-- fonction non identifiée -->
<Param name="v_moteur" value="tld"/> <!-- bouton radio -->
<Param name="v_moteur" value="google"/> <!-- bouton radio -->
<Param name="v_mots" value="{searchTerms}"/>
</Url>
J'ai lancé une recherche (mot clef : asus) et il m'a renvoyé vers : http://www.touslesdrivers.com/index.php?v_page=25&v_moteur=tld&v_mots=asus.
On peut très bien remplacer l'Url du xml par :
<Url type="text/html" method="GET" template="http://www.touslesdrivers.com/index.php?v_page=25&v_moteur=tld&
v_mots={searchTerms}">
</Url>
ou (en utilisant google pour la recherche) :
<Url type="text/html" method="GET" template="http://www.touslesdrivers.com/index.php?v_page=25&v_moteur=google&
v_mots={searchTerms}">
</Url>
Ajouter une icône au plugin de recherche
Il suffit simplement d'enregistrer le favicône du site.
Un outil permet de le convertir en base64.
Ainsi, l'image est transformée en code et est plus facilement transportable d'un environnement à un autre (les images sont incluses dans le fichier XML sous forme de code).
La documentation OpenSearch précise qu'on peut aussi mettre une url vers une favicône ou même une autre image..
<Image height="16" width="16" type="image/x-icon">
http://www.touslesdrivers.com/favicon.ico
</Image>
Code à rajouter dans les pages html
Pour que le plugin soit à la disposition de tout le monde, il faut l'appeller dans les pages de votre site.
Rien de plus simple, il suffit d'ajouter une balise link real="search" dans le header de la page html.
Ainsi, l'image est transformée en code et est plus facilement transportable d'un environnement à un autre (les images sont incluses dans le fichier XML sous forme de code).
La documentation OpenSearch précise qu'on peut aussi mettre une url vers une favicône ou même une autre image.
<link rel="search" type="application/opensearchdescription+xml" title="TousLesDrivers.com" href="http://one-way.ovh.org/francais/informatique/tutoriels/firefox/touslesdrivers.xml">
Ajouter les plugins créés à Firefox 2
Quand un plugin de recherche a été repéré par Firefox, l'icône de la liste des moteurs de recherche prend un fond bleuté.

En cliquant sur cette icône apparaît la liste des plugins de recherche. Dans le bas du menu, on peut rajouter les différents plugins de recherche proposés par le site.

L'ordre des moteurs de recherche peut être modifié et ils peuvent également être supprimés via l'interface de gestion des plugins de recherche.

Le plugin de recherche Touslesdrivers pour Firefox 2 est prêt à l'usage.
