Création de plugins OpenSearch pour Firefox

  • Raccourci de la révision : Création_de_plugins_OpenSearch_pour_Firefox
  • Titre de la révision : Création de plugins OpenSearch pour Firefox
  • ID de la révision : 277181
  • Créé :
  • Créateur : BenoitL
  • Version actuelle ? Non
  • Commentaire relecture et mise à jour

Contenu de la révision

OpenSearch

Firefox 2 offre le support du format de plugins de recherche OpenSearch. Les plugins respectant cette syntaxe sont compatibles tant avec Internet Explorer 7 qu'avec Firefox et leur utilisation est donc recommandée sur le Web.

Firefox supporte également des fonctions de recherches qui ne sont pas incluses dans OpenSearch, tels que les suggestions de recherche et l'élément SearchForm. Cet article s'intéresse la création de plugins compatibles OpenSearch utilisant, en plus, ces fonctionnalités propre à Firefox.

Les fichiers de description OpenSearch peuvent être publiés par les sites Web comme décrit dans Détection automatique des plugins de recherche, et peuvent être installés automatiquement comme décrit dans Ajout de moteurs de recherche depuis des pages Web

Fichier de description d'un plugin OpenSearch

Le fichier XML décrivant un moteur de recherche est relativement simple, suivant le modèle de base décrit ci-après. Les éléments en italique doivent être personnalisés selon les besoins du moteur de recherche particulier pour lequel le plugin est créé.

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>engineName</ShortName>
<Description>engineDescription</Description>
<InputEncoding>inputEncoding</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,imageData</Image>
<Url type="text/html" method="method" template="searchURL">
  <Param name="paramName1" value="paramName1"/>
  ...
  <Param name="paramNameN" value="paramValueN"/>
</Url>
<Url type="application/x-suggestions+json" template="suggestionURL"/>
<moz:SearchForm>searchFormURL</moz:SearchForm> 
</SearchPlugin>
ShortName
Un nom court pour le moteur de recherche.
Description
Une brève description du moteur de recherche.
InputEncoding
L'encodage à utiliser pour les données envoyées au moteur de recherche.
Image
Une icône 16×16 encodée en Base64 représentant le moteur de recherche. The data: URI kitchen (en) est un outil très pratique pour générer les données à placer ici.
Url
Décrit l'URL ou les URL à utiliser pour la recherche. L'attribut method précise si le type de la requête à utiliser pour envoyer les données au site de recherche doit être GET ou POST. L'attribut template indique l'URL de base pour la requête de recherche.
Note : Internet Explorer 7 ne gère pas les requêtes POST.
Deux types d'URL peuvent être spécifiés :
  • type="text/html" définit l'URL à laquelle envoyer la requête de recherche elle-même.
  • type="application/x-suggestions+json" définit l'URL à laquelle demander des suggestions de recherche.
Pour chacun de ces types d'URL, vous pouvez utiliser {searchTerms} pour représenter les mots saisis par l'utilisateur dans la Barre de recherche.
Pour les requêtes de suggestions de recherche, le modèle d'URL spécifié sert à obtenir une liste de suggestions au format JSON (JavaScript Object Notation). Pour plus de détails sur la façon d'implémenter la fourniture de suggestions de recherche sur un serveur, consultez la gestion de suggestions dans les plugins de recherche.

Image:SearchSuggestionSample.png

Param
Les paramètres devant être transmis avec la requête de recherche, par paires clés/valeur. Vous pouvez utiliser {searchTerms} pour y insérer les termes de recherche saisis par l'utilisateur dans la Barre de recherche.
Note : Internet Explorer 7 ne gère pas cet élément.
SearchForm
L'URL d'accès direct à la page de recherche du site sur lequel le plugin fait ses recherches. Elle donne la possibilité à Firefox de permettre à l'utilisateur de visiter directement le site Web.
Note : Cet élément ne fait pas partie des spécifications OpenSearch, il est spécifique à Firefox. Le préfixe d'espace de noms XML « moz: » est ainsi utilisé dans l'exemple ci-dessus pour permettre aux navigateurs ne le supportant pas de l'ignorer.

Détection automatique des plugins de recherche

Un site Web proposant un plugin de recherche peut le signaler pour que les utilisateurs de Firefox puissent le télécharger et l'installer facilement.

Pour supporter la détection automatique, ajoutez simplement la ligne suivante dans la section <HEAD> de votre page Web :

<link rel="search" type="application/opensearchdescription+xml" title="searchTitle" href="pluginURL">

Remplacez les éléments en italique comme expliqué ci dessous :

searchTitle
Le nom de la fonction de recherche proposée, comme par exemple "Recherche sur MDC" ou "Recherche Yahoo!". Cette valeur doit correspondre à la valeur ShortName de votre plugin.
pluginURL
L'URL du plugin de recherche XML, indiquant où le navigateur peut le télécharger.

Si votre site offre plusieurs plugins de recherche, vous pouvez proposer la détection automatique pour chacun d'eux. Par exemple :

<link rel="search" type="application/opensearchdescription+xml" title="MonSite : par auteur" href="http://www.mysite.com/mysiteauthor.xml">
<link rel="search" type="application/opensearchdescription+xml" title="MonSite : par titre" href="http://www.mysite.com/mysitetitle.xml">

De cette manière, votre site propose à la fois un plugin de recherche par auteur et un par titre en tant qu'entités différentes.

Astuces de dépannage

S'il y a une erreur dans votre plugin de recherche XML, vous pourriez obtenir une erreur en l'ajoutant dans Firefox. Le message d'erreur ne vous serait sûrement pas d'une grande utilité, toutefois les astuces suivantes vous aideront à résoudre le problème.

  • Assurez vous que le code XML de votre plugin de recherche soit bien formé. Vous pouvez le tester en chargeant le fichier directement dans Firefox. Les esperluettes dans l'URL du modèle doivent être échappées avec &amp; et les balises doivent être fermées avec une barre oblique de fermeture (slash) ou une balise fermante.
  • L'attribut xmlns est important, car sans lui vous obtiendrez un message d'erreur indiquant que le plugin ne peut pas être chargé.
  • Notez que vous devez fournir une URL <tt>text/html</tt> URL — les plugins de recherche fournissant seulement des types d'URL Atom ou RSS (qui passent, par exemple, le validateur A9 OpenSearch) génèreront également l'erreur « impossible de télécharger le plugin ».

En outre, le service gérant les plugins de recherche permet l'activation d'un journal des erreurs pouvant être utile aux développeurs de plugins. Utilisez la commande about:config pour donner la valeur true à la préférence 'browser.search.log'. Les informations du journal apparaîtront directement dans la console d'erreurs (Outils → Console d'erreurs) de Firefox lors de l'ajout de plugins de recherche.

Références


Lien Interwiki

{{ wiki.languages( { "en": "en/Creating_OpenSearch_plugins_for_Firefox", "ja": "ja/Creating_OpenSearch_plugins_for_Firefox" } ) }}

Source de la révision

<h3 name="OpenSearch"> OpenSearch </h3>
<p><a href="fr/Firefox_2">Firefox 2</a> offre le support du format de plugins de recherche <a class="external" href="http://opensearch.org/">OpenSearch</a>. Les plugins respectant cette <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document">syntaxe</a> sont compatibles tant avec Internet Explorer 7 qu'avec Firefox et leur utilisation est donc recommandée sur le Web.
</p><p>Firefox supporte également des fonctions de recherches qui ne sont pas incluses dans <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document">OpenSearch</a>, tels que les suggestions de recherche et l'élément SearchForm. Cet article s'intéresse la création de plugins compatibles OpenSearch utilisant, en plus, ces fonctionnalités propre à Firefox.
</p><p>Les fichiers de description OpenSearch peuvent être publiés par les sites Web comme décrit dans <a href="#D.C3.A9tection_automatique_des_plugins_de_recherche">Détection automatique des plugins de recherche</a>, et peuvent être installés automatiquement comme décrit dans <a href="fr/Ajout_de_moteurs_de_recherche_depuis_des_pages_Web">Ajout de moteurs de recherche depuis des pages Web</a>
</p>
<h3 name="Fichier_de_description_d.27un_plugin_OpenSearch"> Fichier de description d'un plugin OpenSearch </h3>
<p>Le fichier XML décrivant un moteur de recherche est relativement simple, suivant le modèle de base décrit ci-après. Les éléments en italique doivent être personnalisés selon les besoins du moteur de recherche particulier pour lequel le plugin est créé.
</p>
<pre class="eval">&lt;OpenSearchDescription xmlns="<span class="plain">http://a9.com/-/spec/opensearch/1.1/</span>"
                       xmlns:moz="<span class="plain">http://www.mozilla.org/2006/browser/search/</span>"&gt;
&lt;ShortName&gt;<i>engineName</i>&lt;/ShortName&gt;
&lt;Description&gt;<i>engineDescription</i>&lt;/Description&gt;
&lt;InputEncoding&gt;<i>inputEncoding</i>&lt;/InputEncoding&gt;
&lt;Image width="16" height="16"&gt;data:image/x-icon;base64,<i>imageData</i>&lt;/Image&gt;
&lt;Url type="text/html" method="<i>method</i>" template="<i>searchURL</i>"&gt;
  &lt;Param name="<i>paramName1</i>" value="<i>paramName1</i>"/&gt;
  ...
  &lt;Param name="<i>paramNameN</i>" value="<i>paramValueN</i>"/&gt;
&lt;/Url&gt;
&lt;Url type="application/x-suggestions+json" template="<i>suggestionURL</i>"/&gt;
&lt;moz:SearchForm&gt;<i>searchFormURL</i>&lt;/moz:SearchForm&gt; 
&lt;/SearchPlugin&gt;
</pre>
<dl><dt> <b>ShortName</b>
</dt><dd> Un nom court pour le moteur de recherche.
</dd></dl>
<dl><dt> <b>Description</b>
</dt><dd> Une brève description du moteur de recherche.
</dd></dl>
<dl><dt> <b>InputEncoding</b>
</dt><dd> L'encodage à utiliser pour les données envoyées au moteur de recherche.
</dd></dl>
<dl><dt> <b>Image</b>
</dt><dd> Une icône 16×16 encodée en Base64 représentant le moteur de recherche. <a class="external" href="http://software.hixie.ch/utilities/cgi/data/data">The data: URI kitchen</a> (en) est un outil très pratique pour générer les données à placer ici.
</dd></dl>
<dl><dt> <b>Url</b>
</dt><dd> Décrit l'URL ou les URL à utiliser pour la recherche. L'attribut <code>method</code> précise si le type de la requête à utiliser pour envoyer les données au site de recherche doit être <code>GET</code> ou <code>POST</code>. L'attribut <code>template</code> indique l'URL de base pour la requête de recherche.
</dd><dd><div class="note"><b>Note :</b> Internet Explorer 7 ne gère pas les requêtes <code>POST</code>.</div>
</dd></dl>
<dl><dd> Deux types d'URL peuvent être spécifiés :
</dd></dl>
<ul><li> <code>type="text/html"</code> définit l'URL à laquelle envoyer la requête de recherche elle-même.
</li><li> <code>type="application/x-suggestions+json"</code> définit l'URL à laquelle demander des suggestions de recherche.
</li></ul>
<dl><dd> Pour chacun de ces types d'URL, vous pouvez utiliser <code>{searchTerms}</code> pour représenter les mots saisis par l'utilisateur dans la Barre de recherche.
</dd></dl>
<dl><dd> Pour les requêtes de suggestions de recherche, le modèle d'URL spécifié sert à obtenir une liste de suggestions au format JSON (JavaScript Object Notation). Pour plus de détails sur la façon d'implémenter la fourniture de suggestions de recherche sur un serveur, consultez <a href="fr/Gestion_de_suggestions_dans_les_plugins_de_recherche">la gestion de suggestions dans les plugins de recherche</a>.
</dd></dl>
<p><img alt="Image:SearchSuggestionSample.png" src="File:fr/Media_Gallery/SearchSuggestionSample.png">
</p>
<dl><dt> <b>Param</b>
</dt><dd> Les paramètres devant être transmis avec la requête de recherche, par paires clés/valeur. Vous pouvez utiliser <code>{searchTerms}</code> pour y insérer les termes de recherche saisis par l'utilisateur dans la Barre de recherche.
</dd><dd><div class="note"><b>Note :</b> Internet Explorer 7 ne gère pas cet élément.</div>
</dd></dl>
<dl><dt> <b>SearchForm</b>
</dt><dd> L'URL d'accès direct à la page de recherche du site sur lequel le plugin fait ses recherches. Elle donne la possibilité à Firefox de permettre à l'utilisateur de visiter directement le site Web.
</dd></dl>
<dl><dd><div class="note"><b>Note :</b> Cet élément ne fait pas partie des spécifications OpenSearch, il est spécifique à Firefox. Le préfixe d'espace de noms XML « <code>moz:</code> » est ainsi utilisé dans l'exemple ci-dessus pour permettre aux navigateurs ne le supportant pas de l'ignorer.</div>
</dd></dl>
<h3 name="D.C3.A9tection_automatique_des_plugins_de_recherche"> Détection automatique des plugins de recherche </h3>
<p>Un site Web proposant un plugin de recherche peut le signaler pour que les utilisateurs de Firefox puissent le télécharger et l'installer facilement.
</p><p>Pour supporter la détection automatique, ajoutez simplement la ligne suivante dans la section <code>&lt;HEAD&gt;</code> de votre page Web :
</p>
<pre class="eval">&lt;link rel="search" type="application/opensearchdescription+xml" title="<i>searchTitle</i>" href="<i>pluginURL</i>"&gt;
</pre>
<p>Remplacez les éléments en italique comme expliqué ci dessous :
</p>
<dl><dt> <b>searchTitle</b>
</dt><dd> Le nom de la fonction de recherche proposée, comme par exemple "Recherche sur MDC" ou "Recherche Yahoo!". Cette valeur doit correspondre à la valeur <code>ShortName</code> de votre plugin.
</dd></dl>
<dl><dt> <b>pluginURL</b>
</dt><dd> L'URL du plugin de recherche XML, indiquant où le navigateur peut le télécharger.
</dd></dl>
<p>Si votre site offre plusieurs plugins de recherche, vous pouvez proposer la détection automatique pour chacun d'eux. Par exemple :
</p>
<pre class="eval">&lt;link rel="search" type="application/opensearchdescription+xml" title="MonSite : par auteur" href="http://www.mysite.com/mysiteauthor.xml"&gt;
&lt;link rel="search" type="application/opensearchdescription+xml" title="MonSite : par titre" href="http://www.mysite.com/mysitetitle.xml"&gt;
</pre>
<p>De cette manière, votre site propose à la fois un plugin de recherche par auteur et un par titre en tant qu'entités différentes.
</p>
<h3 name="Astuces_de_d.C3.A9pannage"> Astuces de dépannage </h3>
<p>S'il y a une erreur dans votre plugin de recherche XML, vous pourriez obtenir une erreur en l'ajoutant dans Firefox. Le message d'erreur ne vous serait sûrement pas d'une grande utilité, toutefois les astuces suivantes vous aideront à résoudre le problème.
</p>
<ul><li> Assurez vous que le code XML de votre plugin de recherche soit bien formé. Vous pouvez le tester en chargeant le fichier directement dans Firefox. Les esperluettes dans l'URL du modèle doivent être échappées avec &amp;amp; et les balises doivent être fermées avec une barre oblique de fermeture (slash) ou une balise fermante.
</li><li> L'attribut <code>xmlns</code> est important, car sans lui vous obtiendrez un message d'erreur indiquant que le plugin ne peut pas être chargé.
</li><li> Notez que vous <b>devez</b> fournir une URL <tt>text/html</tt> URL — les plugins de recherche fournissant seulement des types d'URL Atom ou RSS (qui passent, par exemple, le validateur <a class="external" href="http://opensearch.a9.com/">A9 OpenSearch</a>) génèreront également l'erreur « impossible de télécharger le plugin ».
</li></ul>
<p>En outre, le service gérant les plugins de recherche permet l'activation d'un journal des erreurs pouvant être utile aux développeurs de plugins. Utilisez la commande <i>about:config</i> pour donner la valeur <code>true</code> à la préférence '<code>browser.search.log</code>'. Les informations du journal apparaîtront directement dans <a href="fr/Console_JavaScript">la console d'erreurs</a> (Outils → Console d'erreurs) de Firefox lors de l'ajout de plugins de recherche.
</p>
<h3 name="R.C3.A9f.C3.A9rences"> Références </h3>
<ul><li> A9.com <a class="external" href="http://opensearch.a9.com/">Document OpenSearch</a>
</li><li> Technorati.com dispose d'un <a class="external" href="http://technorati.com/osd.xml">osd.xml fonctionnel</a>
</li><li> Plus de détails sur les difficultés avec la détection automatique sur bugzilla {{template.Bug(340208)}}
</li><li> <a class="external" href="http://en.wikipedia.org/wiki/Data:_URI_scheme"><tt>data:</tt> URI scheme</a>
</li><li> <a class="external" href="http://www.searchplugins.net">searchplugins.net</a> - créez des plugins OpenSearch pour Firefox 2. 
</li><li> <a class="external" href="http://www.searchplugins.net/pluginlist.aspx">Liste de plugins de recherche générés automatiquement</a>
</li></ul>
<p><br>
<span class="comment">Lien Interwiki</span>
</p>{{ wiki.languages( { "en": "en/Creating_OpenSearch_plugins_for_Firefox", "ja": "ja/Creating_OpenSearch_plugins_for_Firefox" } ) }}
Revenir à cette révision