mozilla

Creación de plugins MozSearch

Firefox 2 admite MozSearch, una forma simplificada del formato OpenSearch de Amazon A9 para crear plugins de búsqueda. Los plugins OpenSearch también son admitidos; visite la web de OpenSearch para más detalles.

UN plugin de búsqueda MozSearch es un archivo XML que describe el motor de búsqueda, su URL, y los parámetros que se necesitan pasar a esa URL.

Nota: Tenga en cuenta que MozSearch es específico para Firefox; si desea escribir plugins que sean compatibles con otros navegadores, deberá usar el sistema estándar de OpenSearch. Afortunadamente, los dos formatos son muy parecidos y es fácil cambiar de uno a otro dependiendo de tus necesidades.

El archivo del plugin

El archivo XML que describe el motor de búsqueda es realmente sencillo siguiendo la plantilla básica de abajo. Las secciones en cursiva necesitan ser personalizadas dependiendo de las necesidades del motor de búsqueda del plugin que estés escribiendo.

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>NombreDelMotor</ShortName>
<Description>Descripcion</Description>
<InputEncoding>CodificacionDeEntrada</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,DatosDeLaImagen</Image>
<Url type="text/html" method="metodo" template="URLdeLaBusqueda">
  <Param name="parametro1" value="parametro1"/>
  ...
  <Param name="parametroN" value="parametroN"/>
</Url>
<Url type="application/x-suggestions+json" template="URLdeSugerencias"/>
<SearchForm>URLdelFormularioDeBusqueda</SearchForm> 
</SearchPlugin>
ShortName
Un nombre breve para el motor de búsqueda.
Description
Una pequeña descripción del motor de búsqueda.
InputEncoding
La codificación a usar para los datos de entrada al motor de búsqueda.
Image
Icono codificado en Base-64 de 16x16 que represente el motor de búsqueda. Una herramienta útil que puedes usar para construir estos la puedes encontrar aquí: The data: URI kitchen.
Url
Describe la URL o URLs a usar en la búsqueda. El atributo method indica si se usará una petición GET o POST para devolver el resultado. El atributo template indica la URL base para la consulta.
Hay dos tipos de URL que puedes especificar:
  • type="text/html" se usa para especificar la URL de la consulta actual en si misma.
  • type="application/x-suggestions+json" se usa para especificar la URL a usar por las sugerencias de búsqueda.
Para ambos tipos de URL, puedes usar {searchTerms} para sustituir los términos introducidos por el usuario en la barra de búsqueda.
Para la consulta de sugerencias de búsqueda, la plantilla de la URL especificada se usa para devolver una lista de sugerencias en formato JavaScript Object Notation (JSON) format. Para más detalles de como implementar soporte para sugerencias de búsqueda en un servidor, lea Permitir sugerencias en los plugins de búsqueda.

Imagen:SearchSuggestionSample.png

Param
Los parámetros que necesitan ser enviados por la búsqueda, como parejas clave/valor. Cuando se especifican valores, puedes usar {searchTerms} para insertar los términos introducidos por el usuario en la barra de búsqueda.
SearchForm
La URL a la que ir para abrir la pagina de búsqueda en el sitio para el que el plugin fue diseñado. Esto da a Firefox una vía que permite que el usuario visite la web directamente.

Autodetección de plugins de búsqueda

Una web que ofrezca un plugin de búsqueda pueden anunciarlo para que los usuarios de Firefox puedan descargar e instalar fácilmente el plugin.

Para permitir la autodetección, simplemente debes añadir una línea a la sección <HEAD> de tu web:

<link rel="search" type="application/opensearchdescription+xml" title="TituloDeLaBusqueda" href="URLdelPlugin">

Remplaza los puntos en cursiva como se explica aquí:

TituloDeLaBusqueda
El nombre de la búsqueda a realizar, como "Buscar en MDC" o "Búsqueda Yahoo!".
URLdelPlugin
La URL a el XML del plugin de búsqueda, desde el que el navegador puede descargarlo.

Si tu sitio ofrece varios plugins de búsqueda, puedes habilitar la autodetección de todos. Por ejemplos:

<link rel="search" type="application/opensearchdescription+xml" title="Miweb: Buscar por autor" href="http://www.mysite.com/mysiteauthor.xml">
<link rel="search" type="application/opensearchdescription+xml" title="Miweb: Buscar por título" href="http://www.mysite.com/mysitetitle.xml">

De esta forma, tu sitio puede ofrecer plugins tanto para buscar por autor como por titulo de forma separada.

Ejemplo: buscando en Yahoo!

El siguiente XML es el plugin de búsqueda de Firefox 2 para Yahoo! en inglés:

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Yahoo</ShortName>
<Description>Yahoo Search</Description>
<InputEncoding>UTF-8</InputEncoding>
<SuggestionUrl>http://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="http://search.yahoo.com/search">
  <Param name="p" value="{searchTerms}"/>
  <Param name="ei" value="UTF-8"/>
  <Param name="fr" value="moz2"/>
</Url>
<SearchForm>http://search.yahoo.com/</SearchForm>
</SearchPlugin>

Pongamos que el usuario elige usar el plugin de búsqueda de Yahoo! e introduce "mozilla" en la barra de búsqueda y pulsa la tecla enter. Firefox usará el motor de búsqueda anterior para construir la siguiente URL:

http://search.yahoo.com/search?p=mozilla&ei=UTF-8&fr=moz2

Si el usuario pulsa sobre el icono de la lupa en la barra de búsqueda, o elige la opción Búsqueda web en el menú Herramientas cuando la barra de búsqueda no está visible, el navegador le enviará a <tt>http://search.yahoo.com/</tt>, el valor del elemento <SearchForm>.

Ejemplo: buscando en el MDC

Este plugin te permitirá buscar fácilmente en la web del Mozilla Developer Center.

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>MDC</ShortName>
<Description>Mozilla Developer Center search</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="http://developer.mozilla.org/en/docs/Special:Search?search={searchTerms}"/>
<SearchForm>http://developer.mozilla.org/en/docs/Special:Search</SearchForm> 
</SearchPlugin>

Date cuenta que en este caso en vez de usar <Param> para definir los parámetros del motor de búsqueda, simplemente se incrustó dentro de la URL de la plantilla. Es la forma recomendada de hacerlo cuando usamos como metodo GET. <Param> se usaría para POST.


Consejos ante cualquier problema

Si hay alguna errata en el XML del plugin de búsqueda, puede que te encuentres con errores al añadir un plugin en Firefox (Bon Echo) Alpha 3. Los mensajes de error quizás no te ayuden completamente, sin embargo, los consejos siguientes pueden ayudarte a encontrar el problema.

  • Asegurate que el XML del plugin de búsqueda esta bien formado. Puedes comprobarlo cargando directamente el archivo en Firefox. Los ampersands (&) en la URL de la plantilla deben ser escritos como &amp; y las etiquetas deben ser cerradas con una barra oblicua (/) o con su etiqueta de cerrado.
  • El atributo xmlns es importante, sin él puede que te encuentres con un mensaje de error indicándote que "Bon Echo no puede descargar el plugin desde (URL)"

Además, el servicio de plugin de búsqueda proporciona un mecanismo de registros que puede ser usado por los desarrolladores del mismo. Usa about:config para fijar la preferencia 'browser.search.log' a true. La información aparecerá en la Consola de error de Firefox (Herramientas->Consola de error) cuando se añada el plugin de búsqueda.

OpenSearch

Firefox 2 también admite el formato OpenSearch de Amazon A9 para compartir resultados de búsqueda. Si escribes un plugin XML usando la Sintaxis OpenSearch, puedes meterlo en el directorio <tt>searchengines</tt> dentro del perfil de usuario, en el directorio de la aplicación, o en el paquete de instalación para añadir soporte a dicho motor de búsqueda.

El formato OpenSearch es similar al formato SearchPlugin de Mozilla. La principal diferencia es el elemento inicial y los espacios de los nombres del XML.

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
...
</OpenSearchDescription>

Material de referencia

Etiquetas y colaboradores del documento

Etiquetas: 
Contributors to this page: Nukeador, Mgjbot, Jorolo
Última actualización por: Mgjbot,