Contenido

La página más visitada de aNieto2k (opensearch.php)

11 Ene

+ 10

OpenSearch es un estandard que nos permite añadir motores de busqueda a aplicaciones como por ejemplo Firefox, IE7,… Gracias a este estandard es posible hacer que nuestras aplicaciones estén interconectadas con estas aplicaciones de forma fácil y rápida.

wp-opensearch.jpg

En aNieto2k esta opción da lugar a la página más visitada del blog. Siendo el mes pasado (Diciembre de 2008) un 15% más visitada que el index.php (el fichero encargado de mostrar el contenido de blog en formato HTML). Pero ¿como lo integré en WordPress?

WP-OpenSearch

Para WordPress podemos usar este plugin que hice y que nos permitirá disponer de OpenSearch en nuestro WordPress muy fácilmente. Como con todos los plugins de WordPress. [Descargar]

Manualmente

Para las aplicaciones web que no estén basadas en WordPress podemos implementar un sistema muy sencillo basado en 1 fichero .php y la insercción de una línea en el <head /> de nuestro HMTL.

1) Modificamos el header de nuestro HTML

<head>
...
<link rel="search" type="application/opensearchdescription+xml" title="Buscador de SITIO_WEB" href="RUTA_DEL_FICHERO/opensearch.php" />
...
</head>

Añadimos en nuestro <head /> la línea que dirigirá al fichero opensearch.php encargado de gestionar OpenSearch. En el tag <link /> debemos modificar SITIO_WEB la ruta del sitio web y RUTA_DEL_FICHERO por la ruta que nos llevará hasta opensearch.php

2) Creamos el fichero opensearch.php

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
  <ShortName>NOMBRE_DEL_SITIO</ShortName>
  <Description>DESCRIPCION_DEL_SITIO</Description>
  <Tags>TAG TAG2 TAG3</Tags>
  <Contact>EMAIL_ADMIN</Contact>
  <Url type="TYPE_RESPUESTA"
       template="PATRON_DEL_BUSCADOR"/>
<!-- http://example.com/?q={searchTerms}&amp;pw={startPage?}-->
</OpenSearchDescription>

El fichero opensearch.php basta que tango estas líneas para funcionar, aunque el estandar ofrece una gran cantidad de tags que permiten personalizar más la búsqueda. Para adaptarlo a nuestra aplicaciones deberemos reemplazar lo que nos encontramos en negrita.

  • NOMBRE_DEL_SITION: Nombre del sitio que aparecerá en agregador de buscadores.
  • DESCRIPCION_DEL_SITIO: Descripción de la aplicación web
  • TAG…: Tags que ayudarán a catalogar el sitio web.
  • EMAIL_ADMIN: Email del administrador del sitio.
  • TYPE_RESPUESTA: Tipo de respuesta que vamos a devolver la busqueda. (application/rss+xml, text/html,…)
  • PATRON_DEL_BUSCADOR: Url que nos vincula el OpenSearch con el buscador interno de nuestra aplicación.

La Url que introducimos posee unas variables que pueden ser usadas y se reemplazarán por el valor que se envie en la consulta.

  • searchTerms: Hace referencia a los términos de busqueda.
  • count: Número de resultados deseados por el usuario
  • startIndex: Posición inicial desde la que mostrar los resultados.
  • startPage: Página inicial desde la que mostrar los resultados.
  • language: Lenguaje de solicitud de la busqueda.
  • inputEncoding: Codificación de entrada.
  • outputEncoding: Codificación de salida.

Evidentemente estos parámetros no tienen por que ser tenidos en cuenta en nuestras aplicaciones, pero montando url’s como estas obtenemos más datos de la consulta.

http://example.com/?q={searchTerms}&amp;count={count}&amp;output={outputEncoding}

En Javascript

window.external.AddSearchProvider(engineURL);

En Javascript, tambien podemos añadir el motor de busqueda al navegador del usuario (FF2+, IE7, …) mediante esta pequeña línea, a la que reemplazando engineURL por la ruta donde encontrar el fichero opensearch.php nos vinculará nuestra aplicación con el motor de busquedas del usuario.

Más Información

Si quieres ampliar esta información dispones de mucho en OpenSearch.org

  1. Página del proyecto
  2. Mozilla Developer Center

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.