Barra Google
API de la barra Google

Guía de creación de botones personalizados de la barra Google 4 para Internet Explorer

En este documento se describe el procedimiento que se debe seguir para crear botones personalizados. Por ahora, estos sólo serán compatibles con Internet Explorer.

Índice

Referencia
  • Referencia XML
  • Caracteres de escape
  • Referencia de variables
  • Introducción

    ¿Qué es un botón personalizado?

    Un "botón personalizado" es un botón en el que se puede hacer clic y que puede añadirse a la barra Google. Asimismo, se caracteriza por incorporar capacidades personalizadas de navegación, búsqueda, envío y actualización. Este botón es compatible con el motor de búsqueda de prácticamente cualquier sitio web, no sólo el de Google.

    Al hacer clic en un botón de búsqueda, este permite:

    • Acceder a un sitio web, como si se tratara de un marcador.
    • Acceder a un sitio web y buscar en su motor de búsqueda el texto introducido en el cuadro de búsqueda de la barra Google. Por ejemplo, un botón de Wikipedia permitiría acceder al sitio wikipedia.org y buscar el término especificado. El botón ofrecería acceso a cualquiera de los sitios web específicos de la configuración regional compatible con la barra Google.
    • Enviar el texto que se ha seleccionado en el navegador a un servicio, por ejemplo, para redactar un mensaje de correo electrónico, una entrada de blog o un mensaje de texto.
    • Actualizar el icono del botón, su descripción y su lista desplegable de iconos y cadenas a partir de un feed RSS.

    Un botón personalizado puede presentar las siguientes características de interfaz:

    • Un icono que represente el sitio web al que ofrece acceso o la acción que ejecuta (<icon>). Este icono puede actualizarse a partir de un feed RSS (<feed>).
    • Una lista desplegable de iconos y cadenas, accesibles mediante un botón de flecha hacia abajo. Estos pueden actualizarse a partir de un feed RSS como, por ejemplo, los titulares de un feed de noticias (<feed>).
    • Una descripción de las funciones del botón, que aparece durante unos instantes al colocar el puntero del ratón encima (<description>).
    • Un título que, de manera opcional, puede aparecer al lado del botón (<title>).

    Además de las propiedades de interfaz mencionadas, un botón personalizado puede presentar las siguientes características (en un archivo XML) para llevar a cabo las tareas anteriores:

    • Una URL que redireccione el navegador al sitio web correspondiente cuando el usuario haga clic en el botón sin haber introducido ninguna consulta en el cuadro de búsqueda (<site>).
    • Una URL que redireccione el navegador al sitio web en el que efectuar la búsqueda del término introducido en el cuadro de búsqueda, tras hacer clic en el botón (<search>).
    • Una URL que redireccione el navegador al sitio web al que deberá acceder y enviar el texto seleccionado (<send>).
    • Una URL de actualización desde la que obtener las actualizaciones del botón (<update>).

    En la siguiente barra Google aparecen resaltados ejemplos de botones personalizados de Slashdot, Wikipedia y BBC. El botón de BBC corresponde a un feed de noticias que ofrece una lista desplegable de titulares accesibles a través de la flecha hacia abajo.

    Cómo añadir un botón personalizado

    Para añadir o administrar un botón personalizado en la barra Google:

    • La manera más fácil y habitual de añadir o instalar un botón personalizado es hacer clic en él a través del sitio web del editor y confirmar dicho proceso. En la Galería de botones de la barra Google se proporciona una selección de todos ellos. El editor, por su parte, emplea un comando URL especial que solicita permiso de instalación al usuario. En caso de que este último no tenga instalada la barra Google, la URL redireccionará el navegador a la página de descarga de la aplicación.
    • Como alternativa, el botón se puede crear y añadir de forma automática haciendo clic con el botón derecho del ratón en el campo de texto de un cuadro de búsqueda.
    • Una tercera posibilidad es editar el botón personalizado mediante el editor avanzado de la barra Google, disponible a través de Configuración > Opciones > Botones personalizados (pestaña) > Editar > Usar el editor avanzado.
    • También existe la posibilidad de crear e instalar el botón de forma manual.
    • Por último, los administradores de TI podrán publicar botones personalizados en equipos Windows mediante una cadena de política de grupo que redireccione el sistema a una URL con un archivo XML, o delimitar el programa de instalación para que escriba un archivo en la sección de datos de la aplicación "Todos los usuarios" del sistema de archivos de Windows.

    Cómo crear botones personalizados

    Cómo crear y añadir automáticamente un botón de búsqueda personalizado

    1. Abre Internet Explorer y accede a la página de búsqueda para la que deseas crear un botón de búsqueda.
      Ejemplo: www.wikipedia.org

    2. Haz clic con el botón derecho del ratón en el cuadro de búsqueda de la página, selecciona Generar botón de búsqueda... y, a continuación, haz clic en Añadir.

    Resultado: el botón de búsqueda en cuestión se instala y ya se puede utilizar.

    Por su parte, el proceso crea un archivo XML del botón personalizado con un icono y lo guarda bajo un nombre asociado en el directorio siguiente:

    C:\Documents and Settings\larry\Local Settings\Application Data\Google\Custom Buttons\

    Este procedimiento presenta una ventaja frente a la creación manual del botón en tanto que resulta útil para sitios web que emplean solicitudes POST complejas o redireccionamientos que dificultan la identificación de url-template.

    Archivo XML del botón personalizado

    Las propiedades y los comportamientos de un botón personalizado se definen en un archivo XML con el elemento <custombuttons>, cuyo espacio de nombre se establece en "http://toolbar.google.com/custombuttons/" junto con el elemento <button> anidado. El botón personalizado más simple utiliza <site>, que define el vínculo de un sitio web. El siguiente código XML genera un botón que, al hacer clic en él, abre la página http://www.wikipedia.org en la ventana vigente del navegador:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
    
      <button>
        <site>http://www.wikipedia.org</site>
      </button>
    </custombuttons>
    
    NOTA: Se permite añadir líneas y espacios nuevos en las cadenas de URL del archivo XML; la barra Google los extraerá cuando interprete el archivo. Esto significa que si la URL que introduces requiere espacios y, por lo tanto, no deben extraerse, reemplázalos por "%20", si el navegador no lo ha hecho. En la mayoría de los ejemplos siguientes se muestra la URL en dos líneas con una línea nueva entremedio, lo cual no supone problema alguno.
    NOTA: En todos los ejemplos ilustrados en esta guía, sólo varía la parte del código XML que contiene el elemento <button>.

    Creación e instalación manual de un botón personalizado

    Para instalar un botón personalizado en la barra Google:

    1. Crea un archivo XML del botón, tal y como se indica en las secciones anteriores y siguientes.
    2. Guarda dicho archivo en este directorio:

      C:\Documents and Settings\username\Local Settings\Application Data\Google\Custom Buttons\filename.xml

      donde username es tu nombre de acceso a Windows y filename el nombre que has asignado al archivo XML.

      Retomando el ejemplo de Wikipedia anterior, para el nombre de acceso "larry", guarda el archivo XML del botón en este directorio:

      C:\Documents and Settings\larry\Local Settings\Application Data\Google\Custom Buttons\wikipedia.xml

    3. A continuación, abre una ventana de Internet Explorer con la barra Google 4.0 instalada. Aparecerá un botón nuevo con un signo de interrogación, tal y como se muestra en la captura de pantalla siguiente; si haces clic en él, accederás a Wikipedia.

    Cómo añadir un título y una descripción a un botón

    Tal y como se indica a continuación, <title> sirve para añadir un título a un botón. El título, que puede aparecer a la derecha del botón (Configuración > Opciones > Más > Etiquetas con el texto de los botones > Todo el texto), permite identificarlo en la lista de botones personalizados (Configuración > Opciones > Botones personalizados). Si el botón sirve para realizar búsquedas, el título debería ser el mismo para todos los botones de búsqueda personalizados, ya que también funciona como dicho nombre de botón en el cuadro de búsqueda de la barra Google. Por ejemplo, el usuario puede pulsar Alt+G para ir al cuadro de búsqueda, pulsar la tecla hacia abajo para mostrar el menú de motores de búsqueda y, a continuación, escribir "w" en el cuadro de búsqueda para acceder al motor de "wikipedia".

    Utiliza <description> para añadir una descripción del botón.

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <site>http://www.wikipedia.org</site>
    
        <title>Wikipedia</title>
        <description>The Free Encyclopedia</description>
      </button>
    </custombuttons>
    

    Botón de búsqueda personalizado

    La barra Google también ofrece la posibilidad de crear un botón para buscar el término introducido en el cuadro de búsqueda de la misma mediante el motor de búsqueda de prácticamente cualquier sitio web. En los dos ejemplos siguientes se incluye un botón para realizar búsquedas en wikipedia.org mediante el motor de búsqueda de Wikipedia, y otro para efectuar búsquedas en Internet a través del motor de búsqueda de Google.

    Para ello, añade un elemento de búsqueda en formato <search> url-template </search> en el archivo XML del botón. Incluye una URL de consulta con la variable {query}, tal y como se indica en los ejemplos siguientes. Si bien pueden especificarse tanto consultas GET como consultas POST, estas deben identificarse mediante el atributo method; GET es la opción predeterminada. La URL debe basarse en http: o https:, ya que no se admite código javascript:. Asimismo, deben introducirse tres caracteres de escape: los signos de menor que (<), mayor que (>) y el símbolo de unión (&).

    NOTA: El elemento <search> debe contener la variable {query}; de lo contrario, el botón no se mostrará.

    Botón personalizado para realizar búsquedas en Wikipedia

    Supongamos que quieres crear un botón para realizar búsquedas en wikipedia.com mediante el motor de búsqueda de Wikipedia; empieza con un término de consulta de lo más simple, por ejemplo, "perro": http://en.wikipedia.org/wiki/Special:Search?search=dog&fulltext=Search. Para que, en lugar de ello, el sistema busque el término que el usuario ha introducido en el cuadro de búsqueda de la barra, sustituye "perro" por "{query}" e inserta el símbolo de unión (&) como carácter de escape, tal y como se muestra a continuación:

    <search>http://en.wikipedia.org/wiki/Special:Search?search={query}&amp;fulltext=Search</search>
    
    

    Si añadimos este elemento de búsqueda al botón anterior, obtendremos el resultado siguiente:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <site>http://www.wikipedia.org</site>
    
        <title>Wikipedia</title>
        <description>The Free Encyclopedia</description>
        <search>http://en.wikipedia.org/wiki/Special:Search?search={query}&amp;fulltext=Search</search>
    
      </button>
    </custombuttons>
    

    Observa que se ha utilizado "&amp;" como carácter de escape para el símbolo de unión (&). Las cadenas de los archivos XML requieren caracteres de escape tales como el símbolo de unión (&) y los signos de menos que (<) y mayor que (>).

    Botón personalizado para la búsqueda en Google

    Si deseas crear un botón para realizar búsquedas en Internet mediante el motor de búsqueda de Google, empieza con un término de consulta de lo más simple, por ejemplo, "perro": http://www.google.com/search?q=dog. A continuación, reemplaza "perro" por "{query}", tal como se indica a continuación:

    <search>http://www.google.com/search?q={query}</search>
    

    Ejemplo:

    Búsqueda en Slashdot

    <search>http://slashdot.org/search.pl?query={query}</search>
    

    Envío de acciones de búsqueda como consultas POST

    Para enviar acciones de búsqueda como consultas POST en lugar de consultas GET, incluye el atributo method="post" en el elemento de búsqueda. Todo lo que aparezca después del último signo de interrogación "?" se enviará como datos POST de formulario codificados de URL. Si bien es posible que un sitio web emplee datos codificados de formulario en lugar de datos codificados de URL, por ahora, no se admite dicha opción. Asimismo, es posible enviar parámetros CGI y datos POST al mismo tiempo. Para ello, utiliza dos signos de interrogación (?).

    Búsquedas en The Onion

    En el siguiente ejemplo, utilizaremos el método POST para enviar datos POST (aparecen resaltados):

    <search method="post">http://www.theonion.com/content/search/node
            ?edit%5Bkeys%5D={query}</search>
    

    Actualización de un botón personalizado

    La URL de descarga que sirve para albergar el archivo XML del botón se convierte en el ID exclusivo para su posterior actualización. Si se produce un segundo intento de descargar un botón desde la misma URL, la barra Google te permitirá reemplazar el existente, pero no añadir uno nuevo.

    De los cinco métodos para añadir un botón descritos anteriormente, el primero y el último detectan automáticamente la ubicación de las actualizaciones del botón, y se omite todo valor <update> que contenga el archivo XML. Para el resto de métodos, puedes especificar la ubicación a la que debe acceder el botón para obtener las actualizaciones correspondientes; para ello, inserta el elemento <update> en el archivo XML.

    <update>http://buttons.com/updated_button.xml</update>
    

    Opciones de los botones

    Un botón puede especificar una cadena de opción localmente definida mediante la etiqueta <option>, que el usuario puede cambiar fácilmente a través del cuadro de diálogo Configuración de la barra Google. Esto resulta útil, por ejemplo, para especificar un código postal en un botón sobre previsión meteorológica, o para especificar una marca de cotización en un botón sobre acciones de bolsa. Por ejemplo:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <title>Weather</title>
        <option>
    
          <title>Zip code</title>
          <description>Enter a US zip code.  For example, 94043 is Mountain View, CA</description>
          <default>94043</default>
        </option>
    
        <site>http://www.google.com/search?q=weather+{option1}</site>
      </button>
    </custombuttons>
    

    El título de la opción es obligatorio, mientras que no lo son el valor predeterminado y la descripción. Para insertar el texto del usuario, utiliza la variable {option1} en cualquier especificación de plantilla de URL.

    En esta fase no se valida ni se eliminan espacios en blanco del texto introducido, y la variable {option1} inserta caracteres de escape en el texto introducido mediante parámetros de escape CGI y UTF-8, tal y como ocurriría en el cuadro de edición de texto al enviar un formulario.

    Inclusión de la URL actual

    Además de enviar la consulta de búsqueda, también es posible especificar la URL que el navegador muestra en esos momentos de tres formas distintas: con codificación, {url}, sin codificación {url.noescape} o sólo el sitio web, {url.host}.

    En los ejemplos siguientes, el elemento {url.noescape} sirve para direccionar la URL vigente al sitio archive.org a fin de buscar una versión anterior de la página; archive.org requiere una URL sin caracteres de escape:

    <site>http://web.archive.org/web/*/{url.noescape}*</site>
    

    El ejemplo siguiente ilustra la misma búsqueda en archive.org, pero se utiliza {url}:

    <site method="post">http://www.archive.org/searchresults.php?search={url}&amp;mediatype=mediatype&amp;Submit=Submit</site>
    

    Para que las búsquedas en el sitio web vigente las realice el motor de búsqueda de Google, utiliza {url.host}; se trata de un método de acceso directo eficaz, aunque no puede usarse en el sitio web de Google.

    <search>http://www.google.com/search?q=site:{url.host}+{query}</search>
    

    Inclusión del sufijo de dominio de Google

    La barra Google dispone de una variable, {domain}, que permite obtener los dominios como, por ejemplo, com o co.uk. El dominio de búsqueda se encuentra en Configuración > Opciones > Búsqueda (pestaña) > Utilizar el sitio de Google; concretamente, es la cadena que sigue al término "google.".

    Te recomendamos emplear la variable {domain} en lugar de codificar la cadena del dominio. Por consiguiente, la búsqueda en Google debería especificarse como se indica a continuación:

    <search>http://www.google.{domain}/search?q={query}</search>
    

    Envío de texto seleccionado por el usuario

    Un botón personalizado también permite enviar el texto sin formato que el usuario seleccione en una página web. Esto podría resultar útil para un servicio de traducciones, o una aplicación de blogs o mensajes. Al seleccionar el texto, el botón muestra un pequeño icono de texto.

    Esta operación exige el elemento <send>. La URL de destino de la operación <send> puede ser distinta de la de <search>. La etiqueta <send> debería incluir la variable {selection}, que devuelve el texto sin formato que se ha seleccionado en el navegador:

    <send>http://www.google.com/search?hl=en&amp;lr=&amp;q=define%3A+{selection}</send>
    

    Los botones personalizados que incluyan operaciones de envío también aparecerán en el menú contextual que se activa al hacer clic con el botón derecho del ratón sobre el texto seleccionado.

    Comprobación de la existencia de variables

    A medida que vayamos desarrollando la barra Google, se irán implementando más variables de URL. Para que estas nuevas variables sean totalmente compatibles con versiones futuras y anteriores, la sintaxis {a?b:c} estará disponible en todos los analizadores de advertencia de los botones personalizados con la semántica siguiente:

    {param_to_be_tested?use this text if the param is implemented:use this text if not}
    

    En resumen, permite al autor de un botón personalizado avanzado utilizar una nueva función de forma segura, y ofrece compatibilidad con analizadores anteriores que no conocen esta nueva función. Por ejemplo, si introducimos la variable {locale}, la plantilla de URL siguiente nos permitirá asegurarnos de que no es válida para versiones anteriores de la barra:

    <site>http://google.com/{locale??hl={locale}}</site>
    

    Si la barra admite la variable {locale}, la URL sería:

    <site>http://google.com/?hl=en</site>
    

    Si no la admite:

    <site>http://google.com/</site>
    

    Las expresiones {a?b:c} pueden anidarse hasta 10 niveles, siempre y cuando se produzca después del signo "?". Por ejemplo:

    <site>http://google.com/{locale??hl={domain?{domain}:{query}}}</site>
    
    

    Cabe destacar también que si se utiliza un carácter de escape no reconocido por el sistema, el analizador sustituye la cadena vacía. Así pues, Hol{blah}a Mundo. resultará en Hola Mundo. Además, si se produce un número desigual de llaves "{' or '}", o cualquier otro conflicto de análisis, la URL se restablecerá a una cadena vacía.

    Cómo crear iconos atractivos

    La mayoría de los iconos que se utilizan como iconos favoritos o "faviconos" pueden servir también como iconos de botones personalizados. Ello incluye imágenes BMP, ICO, GIF y JPEG de 16 x 16; tan sólo deberás codificarlas en texto ASCII mediante base64. En Internet encontrarás varios sitios para hacerlo de forma automática; haz clic aquí para acceder a uno de ellos. Una vez accedas al sitio en cuestión, utiliza el botón Browse…(Examinar...) para seleccionar el botón que deseas codificar. A continuación, haz clic en el botón Convert the source data (Convertir el código fuente) para iniciar el proceso. Los códigos JavaScript y PHP también ofrecen comandos de una línea para la codificación base64.

    A continuación se ofrece un icono de Gmail codificado en base64, para el que se ha utilizado el elemento <icon>:

        <icon mode="base64" type="image/x-icon">
    AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ONr/ODja/6en+f+np/n/p6f5/6en+f+np/n/p6f5
    /6en+f+np/n/p6f5/6en+f+np/n/p6f5/zg42v84ONr/ODja/zg42v/i4v//////////////////
    /////////////////////////////////////+Li//84ONr/ODja/zg42v84ONr/p6f5/+Li////
    /////////////////////////////////////////+Li//+np/n/ODja/zg42v84ONr/ODja/+Li
    //+np/n/4uL/////////////gYHy/4GB8v///////////+Li//+np/n/4uL//zg42v84ONr/ODja
    /zg42v//////4uL//6en+f+2tv//gYHy/1pa6f9aWun/gYHy/7a2//+np/n/4uL///////84ONr/
    ODja/zg42v84ONr///////////+2tv//gYHy/1pa6f84ONr/ODja/1pa6f+BgfL/trb/////////
    ////ODja/zg42v84ONr/ODja////////////gYHy/1pa6f84ONr/trb//7a2//84ONr/Wlrp/4GB
    8v///////////zg42v84ONr/ODja/zg42v//////gYHy/1pa6f84ONr/trb/////////////trb/
    /zg42v9aWun/gYHy//////84ONr/ODja/zg42v84ONr/gYHy/1pa6f84ONr/trb/////////////
    //////////+2tv//ODja/1pa6f+BgfL/ODja/zg42v84ONr/ODja/zg42v84ONr/trb/////////
    /////////////////////////7a2//84ONr/ODja/zg42v84ONr/ODja/zg42v84ONr/gYHy/6en
    +f+np/n/p6f5/6en+f+np/n/p6f5/6en+f+np/n/gYHy/zg42v84ONr/ODja/wAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAA//8AAP//AAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAD//wAA//8AAA==
        </icon>
    

    Si bien es posible utilizar iconos superiores a 16 x 16, la barra los escalará a dicho tamaño; la imagen no sólo será más grande de lo necesario, sino que además no tendrá el aspecto que tendría si se escalara con un editor de imágenes de calidad.

    Los mejores iconos son los que se crean con 24 bits de color (RGB) y 8 bits de alpha, y se guardan como iconos RGBA de estilo XP. También puedes guardar el icono como PNG de 16 x 16 con transparencia alpha, convertirlo en un icono 16 x 16 de estilo XP mediante un programa como IconWorkshop y, a continuación, codificarlo en base64. Los archivos PNG no son compatibles directamente, ya que Windows no los admite de forma nativa sin antes enlazar varios elementos.

    La razón por la que debe emplearse un canal alpha es que no todos los fondos de las barras Google serán del mismo color gris, plateado o beige. Windows XP permite al usuario personalizar los colores, incluido el fondo de las barras de herramientas. Otra opción es crear un icono cuadrado sin ninguna transparencia, aunque no resulta igual de atractivo. Las imágenes creadas con canales alpha de un solo color, como las imágenes GIF, presentarán bordes redondeados y granulados; en cambio, el aspecto que ofrecen los iconos basados en canales alpha con una mezcla de colores, como los de la barra Google o Internet Explorer, es inmejorable.

    Actualización automática de los iconos y las descripciones

    Una de las prestaciones más interesantes de un botón personalizado es su capacidad para actualizar su imagen y descripción mediante un servidor remoto, basándose en intervalos especificados. El proceso de actualización se sirve de un feed RSS. Gracias a esta característica, el botón hace las veces de notificador o informador, por ejemplo, en el caso de un botón que ofrezca la previsión meteorológica. El botón también puede incluir un menú desplegable que, a su vez, ofrezca elementos independientes con texto o iconos. Por su parte, cada elemento de menú puede tener una URL dinámica propia, que se ejecuta al hacer clic en él. En la sección siguiente encontrarás ejemplos ilustrativos de ello.

    Cómo añadir un feed RSS

    Los feeds RSS utilizan el elemento <feed>. A continuación se muestra un ejemplo de un feed de noticias de la CNN:

    <feed refresh-interval="1800">http://rss.cnn.com/rss/cnn_topstories.rss</feed>
    

    El protocolo para obtener la actualización de estos feeds es Atom 1.0, Atom 0.3, RSS 2.0 o RSS 1.0. Los feeds estándar también suelen ser válidos.

    Actualización del icono y de la descripción de un botón mediante un feed

    Para cambiar el icono o la descripción de un botón de la barra Google a partir de un feed, habrá que añadir una extensión específica de dicha barra al feed RSS o ATOM mediante un espacio de nombre. A continuación se ofrece el ejemplo de un botón de anillo sobre el estado de ánimo que se actualiza a partir de un feed:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <title>Mood ring</title>
        <description>Your virtual mood ring</description>
    
        <site>http://www.google.com/search?q=mood+ring</site>
        <feed menu="false" refresh-interval="900">
              http://www.example.com/custombuttons/samples/feeds/mood</feed>
      </button>
    </custombuttons>
    
    

    Observa que se especifica menu="false" para indicar que el feed se utiliza únicamente para actualizar el icono y la descripción del botón, no para insertar subelementos en el menú desplegable.

    Si esto se ejecutara en un servidor real, el resultado del feed sería parecido al siguiente:

    <?xml version='1.0'?>
    <feed xmlns='http://www.w3.org/2005/Atom' 
        xmlns:gtb='http://toolbar.google.com/custombuttons/'>
    <id>http://www.example.com/custombuttons/samples/feeds/mood</id>
    
    <title>Mood</title>
    <link href='http://www.google.com/search?q=+ring' />
    <link rel='self' 
        href='http://www.example.com/custombuttons/samples/feeds/mood' />
    <gtb:description>Bluegreen:
    Inner emotions charged, somewhat relaxed</gtb:description>
    <gtb:icon mode="base64" type="image/x-icon">
    AAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAMAA
    AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAGAAAAHAAAAEAAAABhAAAAcwAAAHQAAABpAAAAVQAAAD4AAAApAAAAGAAAAAoAAAAD
    AAAAAQAAAAAAAAAAAAAAESZIXl4zdJvAXbHS8m3C3f9LnrrLFUtsmwILEX4AAABzAAAAYQAAAEcA
    AAAqAAAAEwAAAAcAAAACAAAAACs9RTNOjrDtW6nS/53u/f+n/P//hej//2bP/P9Fq93wHGaNrxEv
    O4kAAAB6AAAAXwAAADwAAAAfAAAADAAAAANihaWST6XK/0h/kcAdKCyWKTtAgVJ/kIhytNKse873
    9E+w6v9RuN39SXuJpgQHCIoAAAB2AAAAUQAAACsAAAAPb6nU7mK65v9jqs76KkNPqAUICJoAAACE
    AAAAaxUgJWBkrMiwsvv+//D+/v+y1NniIj1FnAAAAIgAAABcAAAALHS74PV1zPn/c835/1Oezv9N
    iq7vNVRjrxUiJ5kBAgORAQICh3uLjZz3+vr1+f///4PL5/wvVmusAAAAigAAAFNyu+TPdtL8/0Cp
    7v8ng8X/CFOH/ytpjv86gJ//R46z+Th6jsovVmCsd56pxNf2/f9TuPH/W7fs/ypGV6UAAAByf77Y
    r02y7P9Zwfb/puH3/y+AtP8jZ5f/KWKH/0p7hP+ZrVr/zcUt/9vMKf/bzSz/tsBP/3OzrP9kl7Pp
    AAAAgHGdpThatuT/0fn+//b///+V0uv/NICu/4mvfP/czjL/3M0v/9rMKP/dzzT/3c83/9vNLf/b
    zS//nrWA/gAAAIMAMzMFbrrd2d/+///5////t+n6/4q6nf/czzX/3tA+/97QPf/czjP/3dA7/97R
    Qv/czjD/3M4z/9DHLPoAAAB/AAAAAWShtUix5+//5v7+/5Hf7//Bvjn/3M0v/9/SSP/g1FL/39RR
    /+DVWv/e0kf/3tFA/9zNL//bzCj/AAAAbwAAAAAAAAADcq7Fmpzo8f9rsL3/2ssl/93POf/f0kj/
    49pu/+ffhP/q45b/49pp/97SSv/czS//yb0q4wAAAE8AAAAAAAAAAF54hhNrq77BXpCj/7+7Of/c
    zjH/3tFH/+bdeP/w7cv/9PLa/+zlnf/g1VP/1so5/mBfJHsAAAArAAAAAAAAAAAAAAABa5GgIHWs
    t/dymG3/3tE//9/UUv/o4Ij/9PHT//v67P/v6a3/08xY/3uMX6UAAAAuAAAAEAAAAAAAAAAAAAAA
    AAAAAAKSvb9YSoWa+WyagP+wv2X/4NRO/+ngfv/m4Zf/rLeB+lpubIkAAAAlAAAADgAAAAMAAAAA
    AAAAAAAAAAAAAAAAAAAAAoqvuDxkkp2gYo+c51mHkv9lk5v/Y4eNtlBfaEgAAAAWAAAACQAAAAIA
    AAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAMAA
    AADgAAAA8AEAAA==
    </gtb:icon>
    
    </feed>
    

    El ejemplo anterior ilustra un feed Atom 1.0, cuyo espacio de nombre de los botones personalizados de Google se especifica de la manera siguiente:

    xmlns:gtb='http://toolbar.google.com/custombuttons/'
    

    Para sobrescribir la descripción que incorporaba el botón, escribe:

    <gtb:description> new-description </gtb:description>
    
    

    Para sobrescribir el icono que incorporaba el botón, escribe:

    <gtb:icon> icon-base64-code </gtb:icon>
    

    La secuencia de comandos PHP que ejecuta este complejo sistema de análisis de "estado de ánimo" es parecida a la siguiente:

    <?php
    
    header('Content-type: text/xml');
    
    switch(rand(1, 7)) {
      case 1:
        $icon = "amber.ico";
        $desc = "Amber:\nNervous, on edge, uncertain";
        break;
    
      case 2:
        $icon = "black.ico";
        $desc = "Black:\nTense, stressed, working too hard";
        break;
    
      case 3:
        $icon = "blue.ico";
        $desc = "Blue:\nComfortable, breeze, at rest, loveable";
        break;
    
      case 4:
        $icon = "bluegreen.ico";
        $desc = "Bluegreen:\nHeightened inner emotional state, moderately relaxed";
        break;
    
      case 5:
        $icon = "gray.ico";
        $desc = "Gray:\nAnxious, ill at ease, strained";
        break;
    
      case 6:
        $icon = "green.ico";
        $desc = "Green:\nSteady, stable, no emotional turmoil";
        brea;
    
      case 7:
        $icon = "purple.ico";
        $desc = "Dark Blue:\nImpassioned, delighted, whiff of romance";
        break;
    }
    
    $icon = base64_encode(file_get_contents($icon));
    
    echo "<?xml version='1.0'?>";
    echo "\n<feed xmlns='http://www.w3.org/2005/Atom' xmlns:gtb='http://toolbar.google.com/custombuttons/'>";
    echo "\n<id>http://www.example.com/custombuttons/samples/feeds/mood</id>";
    echo "\n<title>Mood</title>";
    echo "\n<link href='http://www.google.com/search?q=$mood+ring' />";
    echo "\n<link rel='self' href='http://www.example.com/custombuttons/samples/feeds/mood' />";
    echo "\n<gtb:description>$desc</gtb:description>";
    echo "\n<gtb:icon mode='base64' type='image/x-icon'>$icon</gtb:icon>";
    echo "\n</feed>";
    
    ?>
    
    

    Los iconos deben almacenarse en la misma carpeta que la secuencia de comandos.

    Actualización de los iconos del botón y del menú desplegable mediante un feed

    También es posible añadir iconos personalizados basados en servidor a los elementos del menú desplegable de feeds. A continuación, se ofrece el ejemplo de un botón de previsión meteorológica que consta de un feed con un menú desplegable (valor predeterminado), y que además incluye refresh-menuitem="false" a fin de ocultar el elemento de menú de actualización cada vez que se establece una conexión correcta con el servidor. Con ello, se consigue un aspecto óptimo del botón.

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <title>Weather 94043</title>
        <description>Weather updates for Mountain View, CA</description>
    
        <site>http://www.google.com/search?q=weather+94043&num=1</site>
        <feed refresh-interval="3600" refresh-menuitem="false">
            http://www.example.com/custombuttons/samples/feeds/weather?zip=94043</feed>
      </button>
    
    </custombuttons>
    

    A continuación, se proporciona una muestra del aspecto que tiene un feed sobre previsión meteorológica, con un icono personalizado junto a cada uno de los elementos del menú desplegable; para mayor claridad, se ha eliminado gran parte de la codificación base64 del icono. Si retomamos el ejemplo anterior, esta sería la página de visualización: http://www.example.com/custombuttons/samples/feeds/weather?zip=94043

    <?xml version='1.0'?>
    <feed xmlns='http://www.w3.org/2005/Atom' 
        xmlns:gtb='http://toolbar.google.com/custombuttons/'>
    <id>http://www.example.com/custombuttons/samples/feeds/weather</id>
    
    <title>Weather Mountain View, CA</title>
    <link href='http://www.google.com/search?q=weather+94043/' />
    <link rel='self'
        href='http://www.example.com/custombuttons/samples/feeds/weather' />
    <gtb:description>Mountain View, CA
    63F Mostly Cloudy
    Humidity: 48%
    Wind: NW at 8 mph</gtb:description>
    <gtb:icon mode='base64' type='image/x-icon'>
    R0lGODlhKAAoANUAAEuc/Pz8/Fik/Ii00k9daZGPivLy8tbW1k2R0uvr6wZj3HSq0f/QMMfHx7a2
    tj2F0fu0EePj4yx81neUp4J/eKanphJq3IJtOGB3iI3C5BFt5B5XnWis7H2346jO5/6+IWKo8923
    ... and so on...
    </gtb:icon>
    
    <entry>
    <title>Today: Mostly Cloudy 65 | 50</title>
    
    <link href='http://www.google.com/search?q=weather+94043/' />
    <id>http://www.example.com/custombuttons/samples/feeds/weather/0</id>
    <gtb:icon mode='base64' type='image/x-icon'>
    R0lGODlhKAAoANUAAEuc/Pz8/Fik/Ii00k9daZGPivLy8tbW1k2R0uvr6wZj3HSq0f/QMMfHx7a2
    tj2F0fu0EePj4yx81neUp4J/eKanphJq3IJtOGB3iI3C5BFt5B5XnWis7H2346jO5/6+IWKo8923
    ... and so on...
    </entry>
    
    <entry>
    <title>Thu:  66 | 51</title>
    <link href='http://www.google.com/search?q=weather+94043/' />
    <id>http://www.example.com/custombuttons/samples/feeds/weather/1</id>
    <gtb:icon mode='base64' type='image/x-icon'>
    R0lGODlhKAAoAPcAAAAAAP///4WOwPT1+tDT3unr8sHG1ff5/6Wy0mZ8rGqAr3mJrJakxa+zvHSK
    tcDBw1R2slBql110njBXjztmqS9OfjtekTZWhGeJuoqctklLTgJYyQJQtQ9hzhRr3BZlzBVRoS1S
    ... and so on...
    </gtb:icon>
    
    </entry>
    
    <entry>
    <title>Fri:  67 | 51</title>
    <link href='http://www.google.com/search?q=weather+94043/' />
    <id>http://www.example.com/custombuttons/samples/feeds/weather/2</id>
    <gtb:icon mode='base64' type='image/x-icon'>
    
    R0lGODlhKAAoANUAAObm52ms7k2Q0Uuc/Fmk+v2zDoS01HOp0avP5tvb26CPXQZj3DqG14yLh05Y
    Yf/IKv/VN3mCiMPDw6SkpCt82GhxePz8/JG+2pd5NRZu3hBq3fb29rCAFrm5uSN549OWE4WltqHI
    ... and so on...
    </gtb:icon>
    </entry>
    <entry>
    <title>Sat:  67 | 50</title>
    <link href='http://www.google.com/search?q=weather+94043/' />
    
    <id>http://www.example.com/custombuttons/samples/feeds/weather/3</id>
    
    <gtb:icon mode='base64' type='image/x-icon'>
    R0lGODlhKAAoANUAAObm52ms7k2Q0Uuc/Fmk+v2zDoS01HOp0avP5tvb26CPXQZj3DqG14yLh05Y
    Yf/IKv/VN3mCiMPDw6SkpCt82GhxePz8/JG+2pd5NRZu3hBq3fb29rCAFrm5uSN549OWE4WltqHI
    ... and so on...
    </gtb:icon>
    </entry>
    </feed>
    

    Se puede utilizar el mismo espacio de nombre "http://toolbar.google.com/custombuttons/" y descripción o etiquetas de icono de los feeds RSS 1.0, RSS 2.0, Atom 1.0 y Atom 0.3 para los feeds de la barra Google.

    Varios idiomas

    Un botón personalizado admite URL, iconos y texto alternativo específico de las distintas configuraciones regionales compatibles con la barra Google. Aunque existen dos procedimientos, se recomienda emplear el primero, que se detalla a continuación.

    Atributo locale

    El método recomendado es crear una lista de etiquetas XML, donde cada una de ellas utiliza el atributo locale="iso-name" con iso-name para el país o la región en cuestión. A continuación, se ofrece el ejemplo de un botón con URL y descripciones en francés y español:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <title>Wikipedia</title>
        <site>http://www.wikipedia.org</site>
    
        <site locale="fr">http://fr.wikipedia.org</site>
        <site locale="es">http://es.wikipedia.org</site>
        <description>The Free Encyclopedia</description>
    
        <description locale="fr">L'encyclopdie libre</description>
        <description locale="es">La enciclopedia libre</description>
      </button>
    </custombuttons>
    
    

    Si la configuración regional del idioma de la barra no se encuentra directamente en la etiqueta XML, se utilizará como predeterminada la primera etiqueta de la lista anterior.

    Variable {locale}

    Como alternativa, te proponemos utilizar la variable {locale} incrustada en una URL como, por ejemplo, http://{locale}/wikipedia.org. Este método es ideal si el conjunto de configuraciones regionales que ofrece coincide exactamente con los distintos sitios web disponibles, que es el caso de Google.com. Sin embargo, este no será el caso para la mayoría de los usuarios. Es posible que la barra Google todavía no admita alguno de los sitios web propuestos. Por ejemplo, a fecha de redacción del presente documento, si bien Wikipedia existe en versión polaca (http://pl.wikipedia.org), la configuración regional del polaco (pl) no es nativa de la barra Google. Así pues, los usuarios de este idioma no podrán acceder a dicho sitio web. Por el contrario, si bien la barra ofrece soporte para la configuración regional del portugués (Brasil) (pt-BR), Wikipedia no dispone de sitio web en dicho idioma. Asimismo, es posible combinar cadenas con el atributo locale y cadenas con la variable {locale}; en dicho caso, el primer atributo seguiría siendo el predeterminado.

    Tabla ISO de nomenclatura de configuraciones regionales

    A continuación se enumeran las configuraciones regionales admitidas por la barra Google:

    Configuración regional según la ISO Idioma
    en Inglés
    da Danés
    de Alemán
    es Español
    fi Finés
    fr Francés
    it Italiano
    ja Japonés
    ko Coreano
    nl Holandés
    no Noruego
    pt-BR Portugués (Brasil)
    ru Ruso
    sv Sueco
    zh-CN Chino (simplificado)
    zh-TW Chino (tradicional)

    Alojamiento de un botón personalizado

    Alojamiento de un botón

    La URL de descarga que utilices para albergar el archivo XML del botón es bastante importante, ya que se convierte en el ID exclusivo del botón para su posterior actualización. Si se produce un segundo intento de descargar un botón desde la misma URL, la barra Google te permitirá reemplazar el existente, pero no añadir uno nuevo. Para obtener más información al respecto, consulta el apartado Actualización de un botón personalizado.

    Cómo añadir un botón a la Galería de botones de Google

    Gracias a la Galería de botones de Google, podrás ofrecer tu nuevo botón al resto de usuarios. El archivo XML correspondiente debe estar alojado en alguna ubicación, a la cual enlazará directamente la Galería de botones. Además, el botón debe cumplir con nuestras directrices editoriales.

    Si el botón que has creado es de un sitio tuyo, deberás alojar el archivo XML en el mismo dominio. En la Galería de botones de Google, los botones que se alojan en el mismo dominio al que este accede, aparecen marcados como "botón oficial", lo que facilita a los usuarios poder encontrar el botón oficial de tu sitio.

    Cuando hayas terminado, rellena el formulario de envío de la Galería para informar a Google sobre tu botón.

    Cómo enlazar tu sitio a tu botón

    Si deseas que el botón esté disponible en tu sitio, crea un vínculo de instalación. Cuando un usuario de la barra Google 4 haga clic en dicho vínculo, se le solicitará si desea instalarlo. Si la versión de la barra que tiene instalada es incompatible, el vínculo redireccionará el sistema a la página de descarga de la aplicación.

    La sintaxis de URL siguiente permite a un programador crear un vínculo de instalación:

    http://toolbar.google.com/buttons/add?url=url

    donde url señala el archivo XML del botón personalizado. A continuación se muestra un ejemplo de vínculo para instalar el botón Slashdot.com:

    <a href="http://toolbar.google.com/buttons/add?url=http://www.slashdot.org/slashdot_button.xml">Add</a>

    La etiqueta de este vínculo es Añadir. Cuando un usuario haga clic en este vínculo, el botón Slashdot.com se instalará en su barra Google.

    La URL de Google anterior sirve básicamente para activar la instalación de cualquier botón personalizado por parte de la barra. Si la versión que tiene instalada el usuario es incompatible con esta acción, el sistema le solicitará que instale una versión válida. Una vez instalada la barra, el botón personalizado se añadirá de forma automática.

    Administración del tráfico de un feed

    El tráfico web que generan los feeds puede convertirse en un problema. El feed del botón que crees no debería señalar a un servidor de banda ancha de baja capacidad, sobre todo si tienes la certeza de que será muy popular y que, por lo tanto, generará un volumen considerable de tráfico. El servidor podría sobrecargarse debido a las consultas de actualización.

    El botón personalizado dispone de un atributo para feeds propio, refresh-interval. La barra Google concede el tiempo definido en Expires que el servidor proporciona en la cabecera HTTP. Este ajuste sobrescribirá el atributo refresh-interval del botón. De sobrecargarse el servidor, podrías aumentar el tiempo de Expires para así reducir dicho flujo. Por ejemplo, si el botón debe actualizarse cada hora, el valor de Expires podría establecerse en una vez al día, lo que reduciría considerablemente el tráfico, en detrimento, obviamente, de la capacidad de renovación del botón.

    A continuación, se ofrece la secuencia de comandos PHP para definir Expires en un intervalo de una semana:

    <?php
    $expires = gmdate("D, d M Y H:i:s", time() + 3600 * 24 * 7) . " GMT";
    Header("Expires: " . $expires);
    ?>
    

    Ejemplo de respuesta HTTP del servidor:

    HTTP/1.1 200 OK
    Date: Thu, 05 Jan 2006 23:39:54 GMT
    Server: Apache/2.0.47 (Red Hat Linux)
    Accept-Ranges: bytes
    X-Powered-By: PHP/4.3.2
    Expires: Thu, 12 Jan 2006 23:39:54 GMT
    Transfer-Encoding: chunked
    Content-Type: text/html
    

    Referencia

    Referencia XML

    El archivo XML de un botón personalizado presenta la estructura siguiente:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
    
      <button>
        <!-- XML elements -->
      </button>
    </custombuttons>
    

    Los siguientes elementos XML pueden aparecer en el elemento <button>. Todos los elementos, salvo <update>, pueden aparecer más de una vez, siempre y cuando estén asignados a configuraciones regionales distintas.

    <title> texto </title>
    El título del botón de búsqueda personalizado que aparecerá en la lista de botones personalizados (Configuración > Opciones > Botones personalizados) o junto al botón. Este valor debería ser exclusivo, ya que servirá de palabra clave predeterminada, si aparece como un tipo de búsqueda.
    Este elemento es compatible con el mismo atributo locale que el elemento <search> que se indica a continuación.
    Consulta el ejemplo de <title>.
    <description> texto descriptivo </description>
    El texto descriptivo del botón de búsqueda personalizado que aparece al colocar el puntero del ratón encima. Se trata también de la descripción que se ofrece tras descargar el botón del sitio web.
    Este elemento admite el mismo atributo locale que el elemento <search> que se indica a continuación.
    Consulta el ejemplo de <description>.
    <site> url </site>
    URL opcional a la que debe accederse cuando el cuadro de búsqueda no contiene texto nuevo. El protocolo está restringido a http: y https: por motivos de seguridad. Se ampliarán las siguientes variables de esta URL: {domain}, {url}, {url.noescape}, {url.host} y {locale}.
    El elemento <site> admite los mismos atributos method y locale que el elemento <search> que se indica a continuación.
    Consulta el ejemplo de <site>.
    <search> plantilla de url </search>
    La URL a la que accederá el navegador y en la que realizará la búsqueda del "nuevo" término del cuadro de búsqueda tras hacer clic en el botón. Por "nuevo" se entiende que el cuadro de búsqueda presenta un elemento nuevo. La URL debe basarse en http: o https:, ya que no se admite el código javascript:. La variable {query} es obligatoria en la plantilla de búsqueda; en cambio, no se permite utilizar en otras plantillas de URL. Este elemento es opcional y puede omitirse si el botón no debe formar parte de la lista de botones de búsqueda.
    El elemento de búsqueda puede especificar estos atributos:
    method="post"|"get"
    El valor predeterminado es "get". Define el método en "post" para utilizar dicho valor al enviar datos de formulario codificados de URL. El método de codificación deberá ser application/x-www-form-urlencoded. Cuando se realice una búsqueda, el texto situado detrás del último signo de interrogación "?" se enviará como datos POST.
    locale="en"|"da"|"de"|"es"|"fi"|"fr"|"it"|"ja"|"ko"|"nl"|"no"|"pt-BR"|"ru"|"sv"|"zh-CN"|"zh-TW"
    Especifica una configuración regional para la que este elemento puede proporcionar una URL alternativa. Incluye el nombre de dicha configuración según la normativa ISO como, por ejemplo, locale="fr". Por lo general, se especificarían varios elementos, cada uno de ellos con su propio atributo y URL alternativa de configuración regional. Cuando este atributo se emplea con otros elementos XML, puede especificar un icono o texto distinto. Consulta los ejemplos de configuración regional y la tabla ISO de nomenclatura de configuraciones regionales.
    Consulta el ejemplo de <search>.
    <send> plantilla de url </send>
    La URL opcional a la que debe acceder el navegador cuando no hay texto en el cuadro de búsqueda y el usuario ha seleccionado texto en la ventana del navegador. La variable {selection} es obligatoria en la plantilla de envío; en cambio, no se permite utilizar en otras URL.
    El elemento <send> admite los mismos atributos method, charset y locale que el elemento <search> anterior.
    Consulta el ejemplo de <send>.
    <icon> codificación base64 </icon>
    Los bits reales de un archivo .ico de estilo Windows, preferiblemente una imagen RGBA de 32 bits y 16 x 16 de estilo XP, que muchos sitios emplean como su archivo favicon.ico. Dado que se trata de un valor binario, debe codificarse en base64. Si no existe icono, se elegirá uno predeterminado. Si bien el formato óptimo son imágenes .ico basadas en canales alpha con una mezcla de colores de 16 x 16 de estilo XP, también son compatibles las imágenes ICO, JPG, BMP y GIF estándar de cualquier tamaño; en caso necesario, se escalarán a tamaño 16 x 16. El icono RGBA de estilo XP es compatible con todos los sistemas operativos en los que se ejecuta la barra Google, por lo que no es preciso crear una imagen alternativa de 256 ó 16 colores. No se admite el formato PNG.
    Los atributos mode y type no son imprescindibles, pero simplifican su edición en un editor XML para interpretarlos:
    mode="base64"
    La codificación del icono.
    type="image/x-icon"
    El tipo de imagen.
    Este elemento admite el mismo atributo locale que el elemento <search> anterior.
    Consulta el ejemplo de <icon>.
    <feed> url </feed>
    Especifica una URL a un archivo XML de RSS 2.0 o Atom Feed 0.3/1.0. Este elemento permite abrir un menú desplegable con títulos, descripciones y vínculos de feeds RSS, similar a los marcadores RSS de Firefox, que se actualizan automáticamente (no iniciado por el usuario). Este elemento es opcional, y la mayoría de las búsquedas personalizadas no lo utilizarán. También puede emplearse en el feed las variables {domain} y {locale}.
    Este elemento utiliza los atributos siguientes:
    menu="true"|"false"
    Define este atributo en false para ocultar el menú desplegable de las entradas del feed. El valor predeterminado es true.
    refresh-interval="secs"
    Segundos que deben transcurrir antes de volver a cargar el feed. El valor predeterminado es 3600 segundos (1 hora). La barra Google no se actualizará más de una vez por minuto, incluso si este valor es inferior a 60.
    refresh-onclick="true"|"false"
    Define este atributo en true para forzar una segunda carga cada vez que el usuario hace clic en el botón. El valor predeterminado es false.
    google-service="true"|"false"
    Establece este atributo en true si el que utilizas es un servicio de cuentas de Google, lo que indica que sólo está disponible si el usuario ha accedido a Google. Cuando se detecta un inicio de sesión, se produce una actualización, y cuando el usuario sale de la misma, se borran los elementos del menú.
    Este elemento admite el mismo atributo locale que el elemento <search> anterior.
    Consulta el ejemplo de<feed>.
    <feed-icon> codificación base64 </feed-icon>
    Icono alternativo que se muestra cuando el feed contiene elementos nuevos (el mismo formato que <icon>). Cuando un usuario haga clic en un botón, el icono volverá a adoptar la forma normal hasta el siguiente feed. Un servidor de feeds puede especificar un icono directamente en la respuesta del feed Atom o RSS 2.0, en cuyo caso tendrán la segunda prioridad <feed-icon> o <icon>.
    Este elemento admite el mismo atributo locale que el elemento <search> anterior.
    No se incluye ningún ejemplo de <feed-icon>; sería parecido al de <icon>.
    <feed-description> texto descriptivo </feed-description>
    Descripción alternativa que aparece cuando el feed dispone de elementos nuevos. Cuando el usuario hace clic en el botón, el texto adopta de nuevo la descripción normal hasta el próximo feed.
    Este elemento admite el mismo atributo locale que el elemento <search> anterior.
    No se incluye ningún ejemplo de <feed-description>; sería parecido al de <description>.
    <update> url </update>
    La URL desde la que se descargó esta definición de botón, y en la que el botón de actualización obtendrá un archivo XML de sustitución si el usuario hace clic en el vínculo para su actualización (Configuración > Opciones > Botones personalizados > selecciona el botón > Editar > Descarga la última versión). La URL se sobrescribirá con la URL real desde la que se descargó el botón en instalaciones web que no provienen de google.com. Este elemento es el único del botón personalizado que no admite un atributo de configuración regional.
    Consulta el ejemplo de <update>.
    <option> subelementos </option>
    Especifica una cadena de opción localmente definida que el usuario puede cambiar fácilmente en el cuadro de diálogo Configuración de la barra Google. El valor se devuelve en la variable {option1}. Este elemento admite tres subelementos, siendo el primero de ellos obligatorio:
    <title>
    El nombre de la opción que aparece en el cuadro de diálogo Configuración de la barra Google. Este subelemento es obligatorio.
    <description>
    Descripción de la opción que se muestra al usuario. Cada opción puede tener varias descripciones. Este subelemento es opcional.
    <default>
    El valor predeterminado de la etiqueta {option1}. Se utiliza si el usuario no introduce ningún valor. Este subelemento es opcional.
    Consulta el ejemplo de <option>.

    Caracteres de escape

    Las cadenas de los archivos XML, y HTML, deben contener los tres caracteres de escape siguientes, como las entidades HTML que se muestran:

    Carácter Cadena con caracteres de escape
    & &amp;
    > &gt;
    < &lt;

    Referencia de variables

    NOTA: Existe la sintaxis condicional {a?b:c} para variables que ofrecen compatibilidad con versiones anteriores y posteriores. Para obtener más información al respecto, consulta el apartado Comprobación de la existencia de variables.

    Las variables siguientes, o parámetros de escape, se utilizan en los elementos del ámbito especificado. Por ejemplo, {query} sólo puede utilizarse en el elemento <search>.

    {query}
    Devuelve la cadena que el usuario ha introducido en el cuadro de búsqueda de la barra Google, con el signo más "+" como carácter de escape para espacios, caracteres de escape en la URL para elementos de puntuación y la codificación UTF-8 para caracteres internacionales. Es posible que ciertos sitios web exijan que la consulta se codifique en otro método distinto del UTF-8, por ejemplo, una codificación nativa de país, como shift-JIS para Japón.
    Valor de ejemplo: si el usuario escribe "hola mundo" en el cuadro de búsqueda, la variable devolverá "hola mundo"
    Ámbito: <search> elemento
    Consulta el ejemplo de {query}.
    {url}
    Devuelve la URL del campo de dirección del navegador, donde todo carácter que no sea una letra, un número, un punto (.) o un guión bajo (_) aparece codificado (carácter de escape). Por ejemplo, el símbolo "arroba" (@) se codifica en %40, y el espacio en %20.
    Valor de ejemplo: http%3A%2F%2Fwww.wikipedia.org se trata de la versión con caracteres de escape de http://www.wikipedia.org
    Ámbito: elementos <search>, <site> o <send>
    Consulta el ejemplo de {url}.
    {url.host}
    Devuelve la cadena del sitio web.
    Valor de ejemplo: www.google.com
    Ámbito: elementos <search>, <site> o <send>
    Consulta el ejemplo de {url.host}.
    {url.noescape}
    Devuelve la misma URL, exactamente como aparece en el campo de dirección del navegador, sin codificar.
    Valor de ejemplo: http://www.wikipedia.org
    Ámbito: elementos <search>, <site> o <send>
    Consulta el ejemplo de {url.noescape}.
    {domain}
    Devuelve el dominio de búsqueda principal de Google para la barra en cuestión. Es decir, devuelve el dominio correspondiente a los resultados de búsqueda, y no el dominio en el que se encuentra el usuario.
    Valores de ejemplo: com y co.uk
    Ámbito: elementos <search>, <site>, <send> o <feed>
    Consulta el ejemplo de {domain}.
    {locale}
    Devuelve la configuración regional ISO de la barra Google.
    Valores de ejemplo: en, es y pt-BR
    Ámbito: elementos <search>, <site> o <send>
    Consulta el ejemplo de {locale}.
    {selection}
    Devuelve el texto sin formato que se ha seleccionado en la ventana del navegador. Aparece codificado en UTF-8 o el método que especifique el atributo charset y con parámetros de escape CGI. Si el método de codificación no es POST, el texto podría mostrarse truncado.
    Valor de ejemplo: si el usuario selecciona "hola mundo" en negrita en el navegador, la variable devolverá el texto sin formato
    Ámbito: <send> elemento
    Consulta el ejemplo de {selection}.
    {option1}
    Devuelve el valor especificado por el usuario del elemento <option>. Esta variable debe insertarse en una URL. Hemos denominado a esta variable option1, por si hay que añadir otras opciones en el futuro.
    Valor de ejemplo: si el usuario especifica un código postal en la configuración del botón personalizado de la barra Google, la variable devolverá dicho valor, por ejemplo, "94043", como parte de la URL.
    Ámbito: debe insertarse en una URL en los elementos <search>, <site>, <send> o <feed>
    Consulta el ejemplo de {option1}.