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 : 277176
  • Créé :
  • Créateur : Planche
  • Version actuelle ? Non
  • Commentaire Re-création d'une page avec le bon titre

Contenu de la révision

{{template.Traduction_en_cours("Creating_OpenSearch_plugins_for_Firefox")}}

OpenSearch

Firefox 2 offre le support du format de plugin de recherche OpenSearch. Les plugins respectant sa syntaxe sont compatibles avec IE 7 et 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 OpenSearch utilisant ces fonctionnalités propre à Firefox.

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


Le fichier plugin OpenSearch

Les formats MozSearch et OpenSearch sont identiques, à l'élément racine et à l'espace de nommage près.

Le fichier XML décrivant un moteur de recherche suit le modèle de base décrit ci-après. Les éléments en italique doivent être personalisés selon le plugin de recherche particulier que vous désirez créer.

<SearchPlugin xmlns="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"/>
<SearchForm>searchFormURL</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.
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.
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 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é.

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" } ) }}

Source de la révision

<p>{{template.Traduction_en_cours("Creating_OpenSearch_plugins_for_Firefox")}}
</p>
<h2 name="OpenSearch">OpenSearch</h2>
<p><a href="fr/Firefox_2">Firefox 2</a> offre le support du format de plugin de recherche <a class="external" href="http://opensearch.org/">OpenSearch</a>. Les plugins respectant sa <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document">syntaxe</a> sont compatibles avec IE 7 et 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 OpenSearch utilisant ces fonctionnalités propre à Firefox.
</p><p>Les fichiers de description OpenSearch peuvent être publiés par les sites web comme décrit par <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 par <a href="fr/Ajout_de_moteurs_de_recherche_depuis_des_pages_Web">Ajout de moteurs de recherche depuis des pages Web</a>
</p><p><br>
</p>
<h3 name="Le_fichier_plugin_OpenSearch"> Le fichier plugin OpenSearch </h3>
<p>Les formats MozSearch et OpenSearch sont identiques, à l'élément racine et à l'espace de nommage près.
</p><p>Le fichier XML décrivant un moteur de recherche suit le modèle de base décrit ci-après. Les éléments en italique doivent être personalisés selon le plugin de recherche particulier que vous désirez créer.
</p>
<pre class="eval">&lt;SearchPlugin xmlns="<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;SearchForm&gt;<i>searchFormURL</i>&lt;/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></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></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 "moz:" est ainsi utilisé dans l'exemple ci-dessus pour permettre aux navigateurs ne le supportant pas de l'ignorer.</div>
</dd></dl>
<h2 name="D.C3.A9tection_automatique_des_plugins_de_recherche"> Détection automatique des plugins de recherche </h2>
<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>
<h2 name="Astuces_de_d.C3.A9pannage"> Astuces de dépannage </h2>
<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 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></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" } ) }}
Revenir à cette révision