Google Toolbar
Google Toolbar API

Handleiding voor het maken van aangepaste knoppen voor Google Toolbar 4 voor Internet Explorer

In dit document wordt beschreven hoe u aangepaste knoppen kunt maken. Aangepaste knoppen werken momenteel alleen in Internet Explorer.

Inhoudsopgave

Informatie
  • Informatie over XML
  • Tekens die u moet escapen
  • Informatie over variabelen
  • Inleiding

    Wat is een aangepaste knop?

    Een aangepaste knop is een knop die u kunt toevoegen aan de Google Toolbar en die kan beschikken over aangepaste functies voor navigeren, zoeken, verzenden en bijwerken. Opmerkelijk is dat u met een aangepaste zoekknop vrijwel elke zoekmachine op elke willekeurige site kunt gebruiken, niet alleen die van Google.

    Met een zoekknop kunnen de volgende taken worden uitgevoerd:

    • In de browser naar een website gaan, zoals met een bladwijzer.
    • In de browser naar een website gaan en de zoekmachine op die website gebruiken om te zoeken naar de tekst die de gebruiker in het zoekvak van de Toolbar heeft getypt. Met een Wikipedia-knop gaat u bijvoorbeeld naar wikipedia.org en zoekt u naar de opgegeven term. (U kunt naar elke landspecifieke website gaan op basis van de landinstellingen van de Toolbar.)
    • De geselecteerde browsertekst naar een service verzenden, zodat u een nieuw e-mail-, blog- of tekstbericht kunt maken.
    • Het knoppictogram, de knopinfo en de vervolgkeuzelijst met pictogrammen en tekenreeksen uit een RSS-feed bijwerken.

    Een aangepaste knop kan beschikken over de volgende functies voor de gebruikersinterface:

    • Een pictogram voor de website die wordt geopend of de actie die wordt uitgevoerd (<icon>). Dit pictogram kan worden bijgewerkt via een RSS-feed (<feed>)
    • Een vervolgkeuzelijst met pictogrammen en tekenreeksen (die u weergeeft door op een pijl-omlaag te klikken) die kan worden bijgewerkt via een RSS-feed, zoals de koppen van een nieuwsfeed (<feed>)
    • Een beschrijving in de vorm van knopinfo die tijdelijk wordt weergegeven wanneer de muisaanwijzer op de knop wordt geplaatst (<description>)
    • Een titel die eventueel naast de knop kan worden weergegeven (<title>)

    Naast de eigenschappen voor de bovenstaande functies voor de gebruikersinterface kan een aangepaste knop de volgende eigenschappen hebben (opgeslagen in een XML-bestand) waarmee de bovenstaande taken worden uitgevoerd:

    • Een URL voor een website die moet worden weergegeven wanneer het zoekvak leeg is en op de knop wordt geklikt (<site>)
    • Een zoek-URL voor een website die moet worden weergegeven en doorzocht wanneer op de knop wordt geklikt terwijl een zoekwoord in het zoekvak is opgegeven (<search>)
    • Een verzend-URL voor een website die moet worden weergegeven en waarnaar de geselecteerde tekst moet worden verzonden (<send>)
    • Een update-URL voor een website waar updates voor de knop toegankelijk zijn (<update>)

    De volgende toolbar bevat voorbeelden van aangepaste knoppen voor Slashdot, Wikipedia en BBC (gemarkeerd). De BBC-knop is een nieuwsfeed met een vervolgkeuzelijst (te herkennen aan de pijl-omlaag) met koppen.

    Een aangepaste knop toevoegen

    Aangepaste knoppen op de Google Toolbar toevoegen of beheren:

    • De eenvoudigste en meestgebruikte methode voor het toevoegen (installeren) van een aangepaste knop is door op een knop op de website van een uitgever te klikken en te bevestigen dat u de knop wilt toevoegen. Een lijst met dergelijke knoppen vindt u in de knoppenlijst voor Google Toolbar. De uitgever gebruikt een speciale opdracht-URL waarmee de gebruiker om toestemming wordt gevraagd. Als de gebruiker de Google Toolbar niet heeft geïnstalleerd, wordt de downloadpagina voor de Google Toolbar geopend.
    • Bij de tweede methode wordt een aangepaste zoekknop automatisch gemaakt en toegevoegd. Hierbij klikt de gebruiker met de rechtermuisknop in een zoekvak.
    • De derde methode is een methode waarbij de geavanceerde editor van de Google Toolbar wordt gebruikt. U opent deze door achtereenvolgens op Instellingen > Opties > Aangepaste knoppen (tab) > Bewerken > De geavanceerde editor gebruiken te klikken.
    • Als vierde kan een aangepaste knop handmatig worden gemaakt en geïnstalleerd.
    • De vijfde manier is bedoeld voor IT-beheerders die aangepaste knoppen op Windows-computers willen distribueren via een groepsbeleidtekenreeks naar een URL met een XML-bestand of door het installatieprogramma te wrappen zodat er een bestand naar het gedeelte 'All Users' in het bestandsysteem van Windows wordt geschreven.

    Aangepaste knoppen maken

    Een aangepaste zoekknop automatisch maken en toevoegen

    1. Open in Internet Explorer de zoekpagina waarvoor u een aangepaste knop wilt maken.
      Bijvoorbeeld www.wikipedia.org

    2. Klik met de rechtermuisknop op het zoekvak op de pagina die u wilt gebruiken, kies 'Aangepaste zoekopdracht genereren' en klik vervolgens op 'Toevoegen'.

    Resultaat: de aangepaste knop wordt geïnstalleerd en kan meteen worden gebruikt.

    Wanneer u deze procedure gebruikt, wordt er achter de schermen een XML-bestand met een pictogram voor de aangepaste knop gemaakt. Dit bestand wordt opgeslagen met een hash-naam in:

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

    Het voordeel van deze methode ten opzichte van een handmatig gemaakte zoekknop is dat de knop ook kan worden gebruikt voor websites waarop complexe POST-verzoeken of omleidingen worden gebruikt, waardoor de url-template moeilijk te bepalen is.

    XML-bestand voor de aangepaste knop

    De eigenschappen en het gedrag van een aangepaste knop worden gedefinieerd in een XML-bestand met het element <custombuttons>, waarvan de naamruimte is ingesteld op 'http://toolbar.google.com/custombuttons/' met een ingebed <button>-element. Voor de eenvoudigste aangepaste knop wordt <site> gebruikt. Hiermee wordt een koppeling naar een website gedefinieerd. Met de volgende XML-code wordt een knop gemaakt waarmee http://www.wikipedia.org in het huidige browservenster kan worden geopend:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
    
      <button>
        <site>http://www.wikipedia.org</site>
      </button>
    </custombuttons>
    
    Opmerking: u kunt rustig nieuwe regels en spaties in de URL-reeks in het XML-bestand gebruiken. De toolbar verwijdert deze wanneer het bestand wordt geïnterpreteerd. Dit betekent dat u ervoor moet zorgen dat als uw URL spaties nodig heeft (die dus niet moeten worden verwijderd), u deze vervangt door '%20' (als de browser dit nog niet voor u heeft gedaan). In veel van de volgende voorbeelden is de URL op twee regels getypt met een nieuwe regel in het midden van de URL. Dit werkt uitstekend.
    Opmerking: in de voorbeelden die in deze handleiding worden gebruikt, wordt alleen het gedeelte van de XML-code tussen de <button>-elementen gewijzigd.

    Een aangepaste knop handmatig maken en installeren

    Een aangepaste knop op de Google Toolbar installeren:

    1. Maak een XML-bestand voor de knop volgens de instructies in de vorige (en volgende) gedeelten.
    2. Sla het XML-bestand van de knop op in:

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

      waarbij username de gebruikersnaam is waarmee u zich aanmeldt bij Windows, en filename de bestandsnaam is die u voor het XML-bestand opgeeft.

      Als in het voorbeeld met Wikipedia de gebruikersnaam 'larry' wordt gebruikt, wordt het XML-bestand opgeslagen in:

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

    3. Open vervolgens een nieuw venster in Internet Explorer. Google Toolbar 4.0 moet wel zijn geïnstalleerd. Er wordt een nieuwe knop met een afbeelding van een vraagteken weergegeven, zoals u kunt zien in de volgende schermafbeelding. Wanneer u op het vraagtekenpictogram klikt, gaat u naar Wikipedia.

    Een knoptitel en knopinfo toevoegen

    Zoals hieronder wordt weergegeven, kunt u een knoptitel toevoegen met <title>. De titel wordt rechts van een knop weergegeven (Instellingen > Opties > Meer > Knoptekst > Alle tekst) en wordt in de lijst met aangepaste knoppen gebruikt als beschrijving voor de knop (Instellingen > Opties > Aangepaste knoppen). Als de knop een zoekknop is, moet de titel voor de knop uniek zijn, aangezien de titel ook als knopnaam wordt gebruikt in het zoekvak van Google Toolbar. (De gebruiker kan bijvoorbeeld met de toetsencombinatie Alt-G naar het zoekvak gaan, op de pijl-omlaag klikken om de vervolgkeuzelijst voor de zoekmachine weer te geven en vervolgens 'w' in het zoekvak typen om de zoekmachine van 'wikipedia' te selecteren.)

    Gebruik <description> om knopinfo toe te voegen.

    <?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>
    

    Aangepaste zoekknop

    Met de Google Toolbar kunt u ook een knop maken waarmee vrijwel elke zoekmachine van elke website kan worden uitgevoerd om de term te zoeken die de gebruiker in het zoekvak van de toolbar typt. De volgende twee voorbeelden behandelen een knop waarmee wikipedia.org wordt doorzocht met de Wikipedia-zoekmachine en een andere knop waarmee de zoekmachine van Google wordt gebruikt om te zoeken op het Internet.

    Hiervoor voegt u een zoekelement <search> url-template </search> toe aan het XML-bestand voor de knop. Voeg een URL voor de zoekopdracht toe met de variabele {query}, zoals in de volgende voorbeelden wordt weergegeven. U kunt zowel GET- als POST-zoekopdrachten gebruiken (dit wordt aangegeven met het attribuut method). Standaard wordt GET gebruikt. De URL moet zijn gebaseerd op http: of https:. U kunt geen javascript: gebruiken. Drie tekens in url-sjabloon moeten worden voorafgegaan door een escapeteken: kleiner dan (<), groter dan (>) en ampersand (&).

    Opmerking: het element <search> moet een {query}-variabele bevatten, anders wordt de knop niet weergegeven.

    Aangepaste zoekknop voor Wikipedia

    Als u bijvoorbeeld een knop wilt maken waarmee wikipedia.com wordt doorzocht met de zoekmachine van Wikipedia, begint u met een eenvoudige Wikipedia-zoekopdracht, bijvoorbeeld 'hond': http://en.wikipedia.org/wiki/Special:Search?search=hond&fulltext=Search. Als er moet worden gezocht naar de term die de gebruiker in het zoekvak van de toolbar typt, vervangt u 'hond' door '{query}' en kunt u de ampersand (&) als volgt escapen:

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

    Wanneer dit zoekelement aan de vorige knop wordt toegevoegd, ziet de code er als volgt uit:

    <?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>
    

    De ampersand (&) in de URL ziet er met het escapeteken als volgt uit: '&amp;'. In tekenreeksen in XML-bestanden moet u de ampersand (&) en de tekens voor kleiner dan (<) en groter dan (>) escapen.

    Aangepaste zoekknop voor Google

    Als u een knop wilt maken waarvoor de zoekmachine van Google wordt gebruikt om te zoeken op het Internet, begint u met een eenvoudige Google-zoekopdracht, bijvoorbeeld 'hond': http://www.google.com/search?q=hond. Vervolgens vervangt u 'hond' door '{query}':

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

    Hier volgt een voorbeeld:

    Slashdot doorzoeken

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

    Zoekopdracht verzenden met de POST-methode

    Als u een zoekopdracht via de POST- in plaats van de GET-methode wilt verzenden, voegt u het attribuut method="post" aan het zoekelement toe. Alles na het laatste vraagteken '?' wordt verzonden als post-gegevens met URL-codering. Een website kan ook gegevens met formuliercodering gebruiken in plaats van gegevens met URL-codering, maar dit wordt op dit moment niet ondersteund. Het is ook mogelijk tegelijkertijd CGI-parameters en post-gegevens te verzenden. Hiervoor gebruikt u twee vraagtekens '?'.

    The Onion doorzoeken

    In dit voorbeeld wordt de post-methode gebruikt om post-gegevens te verzenden (gemarkeerd):

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

    Een aangepaste knop bijwerken

    De download-URL die u gebruikt om het XML-bestand voor de knop te hosten, wordt de unieke id voor het bijwerken van de knop. Als er een tweede poging wordt ondernomen om de knop vanaf dezelfde URL te downloaden, wordt u gevraagd of de oude knop moet worden vervangen en niet of een nieuwe knop moet worden toegevoegd.

    Van de vijf manieren voor het toevoegen van een knop wordt bij de eerste en laatste manier automatisch vastgesteld waar de knopupdates vandaan moeten komen en wordt een eventuele <update>-waarde in het XML-bestand genegeerd. Voor de andere drie methoden kunt u het element <update> in het XML-bestand opgeven om te bepalen waar de updates voor de knop moeten worden gezocht.

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

    Knopopties

    Een knop kan een lokaal gedefinieerde optiereeks specificeren met de tag <option>. De gebruiker kan deze eenvoudig wijzigen in het dialoogvenster met de toolbarinstellingen. Dit is met name handig voor een knop naar weersvoorspellingen, waarvoor een postcode moet worden opgegeven of een knop naar aandelen, waarvoor een tickersymbool moet worden opgegeven. Bijvoorbeeld:

    <?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>
    

    De optietitel is verplicht. De standaard waarde en beschrijving zijn niet verplicht. Gebruik de variabele {option1} in een URL-sjabloon om de tekst van de gebruiker in te voegen.

    U kunt de invoer op dit moment niet controleren of de witruimte van de invoer verwijderen en met de variabele {option1} wordt alles wat de gebruiker typt, gecodeerd met utf-8- en cgi-parameters, net als een tekstbewerkingsvak wanneer er een formulier wordt verzonden.

    De huidige URL toevoegen

    Naast het verzenden van de zoekopdracht kunt u de huidige URL die in de browser wordt weergegeven, op drie manieren opgeven: {url} met codering, {url.noescape} zonder codering of {url.host} alleen de website.

    In dit voorbeeld wordt {url.noescape} gebruikt om de huidige URL naar archive.org te verzenden om te zoeken naar een oudere versie van de huidige pagina. Voor archive.org moet u de URL niet escapen:

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

    In het volgende voorbeeld wordt dezelfde zoekopdracht uitgevoerd binnen archive.org, maar dan met {url}:

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

    Als u de zoekmachine van Google wilt gebruiken om binnen de huidige website te zoeken, gebruikt u {url.host}. Dit is een snelle, krachtige methode die niet kan worden uitgevoerd vanaf de website van Google.

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

    De Google-domeinsuffix toevoegen

    Google Toolbar gebruikt de variabele {domain} om het domein, zoals com of co.uk, op te halen. Het zoekdomein kunt u vinden door in de Google Toolbar achtereenvolgens op Instellingen > Opties > Zoeken (tab) > Gebruik deze Google-site te klikken. Het betreft de tekenreeks achter 'google.'.

    U moet de variabele {domain} gebruiken in plaats van een hardgecodeerde domeinreeks. Een zoekopdracht via Google moet dus als volgt worden geformuleerd:

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

    Door de gebruiker geselecteerde tekst verzenden

    U kunt ook een aangepaste knop maken waarmee een stuk platte tekst kan worden verstuurd dat door de gebruiker op de webpagina is geselecteerd. Dit kan met name handig zijn voor een vertaalservice, of voor een blog- of berichtenprogramma. Er wordt een klein tekstpictogram weergegeven op de aangepaste knop wanneer er tekst is geselecteerd.

    Voor deze bewerking is het element <send> vereist. De bestemmings-URL voor de <send>-bewerking kan verschillen van de bestemming voor <search>. De tag <send> moet de variabele {selection} bevatten. Deze variabele wordt omgezet in de platte tekst die op dat moment in de browser is geselecteerd:

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

    Wanneer er tekst is geselecteerd, worden aangepaste knoppen met verzendfuncties ook weergegeven in het snelmenu dat wordt weergegeven als met de rechtermuisknop in de browser wordt geklikt.

    Testen op het bestaan van een variabele

    Naarmate de toolbar zich ontwikkelt, worden er mogelijk meer URL-variabelen geïmplementeerd. Om ervoor te zorgen dat deze nieuwe variabelen zowel neerwaarts als opwaarts compatibel zijn, is in alle parsers die geschikt zijn voor knoppen, de {a?b:c}-syntaxis met de volgende semantiek beschikbaar:

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

    Eenvoudig gezegd wordt de auteur van een geavanceerde aangepaste knop in staat gesteld om veilig een nieuwe functie te gebruiken die ook neerwaarts compatibel is met oudere parsers die deze nieuwe functie niet kennen. Stel dat de variabele {locale} net is geïntroduceerd. Een URL-sjabloon als de volgende kan worden gebruikt om ervoor te zorgen dat dit geen gevolgen heeft voor oudere toolbars:

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

    Als de toolbar de variabele {locale} ondersteunt, wordt de volgende code toegepast:

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

    En als dit niet het geval is:

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

    U kunt {a?b:c}-expressies maximaal 10 niveaus diep inbedden, zolang het inbedden maar achter het vraagteken '?' plaatsvindt. Dit is dus toegestaan:

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

    Houd er wel rekening mee dat telkens als er een escape-teken wordt gebruikt dat niet wordt herkend, de parser deze vervangt door een lege tekenreeks. Dus Hell{blah}o World. wordt weergegeven als Hello World. En als er een oneven aantal accolades '{' of '}' wordt gebruikt of als er een ander parseerprobleem optreedt, wordt de hele URL vervangen door een lege tekenreeks.

    Professionele pictogrammen maken

    De meeste pictogrammen die als favicons worden gebruikt, kunnen ook als pictogram voor een aangepaste knop worden gebruikt. Voorbeelden hiervan zijn BMP-, ICO-, GIF- en JPEG-afbeeldingen van 16 x 16 pixels. U hoeft ze alleen naar ASCII-tekst te coderen met base64-codering. Er zijn verschillende sites op het Internet die de codering voor u kunnen uitvoeren, zoals deze site. Op deze site gebruikt u de knop 'Browse' (Bladeren) om het bestand te selecteren dat u wilt coderen. Vervolgens klikt u op de knop 'Convert the source data' (De brongegevens converteren) om het coderen te starten. Javascript en PHP gebruiken ook enkelvoudige opdrachtregels voor base64-codering.

    Hier ziet u een Gmail-pictogram in base64. Hiervoor gebruikt u het element <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>
    

    Pictogrammen voor aangepaste knoppen kunnen groter zijn dan 16 x 16 pixels, maar de toolbar verkleint ze tot 16 x 16 pixels. Ze zijn dus niet alleen groter dan noodzakelijk, maar ze zien er ook lang niet zo mooi uit als wanneer u ze schaalt met een goed beeldbewerkingsprogramma.

    De mooiste pictogrammen zijn gemaakt met 24-bits kleuren (RGB) en 8-bits alfa en zijn opgeslagen als RGBA-pictogrammen in XP-stijl. U kunt een pictogram opslaan als PNG-bestand van 16 x 16 pixels met alfa-transparantie, het bestand vervolgens converteren naar een pictogram van 16 x 16 pixels in XP-stijl (met een programma als IconWorkshop) en dit pictogram vervolgens coderen met base64. Aangezien Windows geen PNG-bestanden ondersteunt zonder dat er extra gegevens aan dergelijke bestanden worden gekoppeld, worden PNG-bestanden niet rechtstreeks ondersteund.

    U moet een alfa-kanaal gebruiken omdat niet iedereen dezelfde grijze, zilveren of beige achtergrond voor de toolbar gebruikt als u. Windows XP stelt gebruikers in staat het kleurenschema aan te passen, inclusief de achtergrond van een toolbar. U kunt dit omzeilen door een vierkant pictogram zonder transparante onderdelen te maken, maar deze zien er minder mooi uit. Alfa-kanalen met één kleur hebben, net als GIF-afbeeldingen, korrelige ronde randen in vergelijking met goed opgebouwde pictogrammen met alfa-menging zoals die op de Google Toolbar of in Internet Explorer.

    Pictogrammen en knopinfo automatisch bijwerken

    Eén van de interessantere dingen die u met een aangepaste knop kunt doen, is vanaf een externe server met een bepaald interval het pictogram en de knopinfo voor de knop zelf bijwerken. Voor het bijwerken wordt een RSS-feed gebruikt. Zo kan de knop worden gebruikt als waarschuwingsmiddel of als statuspictogram (bijvoorbeeld voor het weer of wat u maar kunt bedenken). Een knop kan ook een vervolgkeuzelijst hebben met afzonderlijke items met tekst of pictogrammen. Voor elk menu-item kan een eigen dynamische URL worden gebruikt om de bijbehorende webpagina te openen. Voorbeelden hiervan vindt u in het volgende gedeelte.

    Een RSS-feed toevoegen

    RSS-feeds maken gebruik van het element <feed>. Hieronder volgt een voorbeeld van een CNN-nieuwsfeed:

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

    Het protocol voor het ophalen van deze updatefeeds is Atom 1.0, Atom 0.3, RSS 2.0 of RSS 1.0. Standaard feeds werken normaal gesproken prima.

    Een feed gebruiken voor het bijwerken van het knoppictogram/de knopinfo

    Als u het pictogram op de toolbar of de knopinfo wilt bijwerken via een feed, moet u met een naamruimte een toolbarspecifieke extensie aan RSS of ATOM toevoegen. Hier volgt een voorbeeld van een knop met een moodring die wordt bijgewerkt via een 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>
    
    

    Met menu="false" wordt aangegeven dat de feed alleen wordt gebruikt om het pictogram en de knopinfo bij te werken en niet om subitems in een vervolgkeuzelijst weer te geven.

    Als dit was ingesteld op een echte server, zou de feeduitvoer er als volgt uitzien:

    <?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>
    

    Het bovenstaande voorbeeld is een Atom 1.0-feed waarin de Google-naamruimte voor aangepaste knoppen is opgegeven als:

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

    Als u de knopinfo bij de knop wilt negeren, geeft u het volgende op:

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

    Als u het pictogram bij de knop wilt negeren, geeft u het volgende op:

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

    Het PHP-script achter deze complexe 'mood'-analyse ziet er als volgt uit:

    <?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>";
    
    ?>
    
    

    De pictogrammen moeten in dezelfde map staan als het script.

    Een feed gebruiken voor het bijwerken van de pictogrammen voor de knop en de vervolgkeuzelijst

    U kunt ook aangepaste pictogrammen op een server toevoegen aan de afzonderlijke items in de vervolgkeuzelijst van de feed. Hier volgt een voorbeeld van een weerknop die een feed met een vervolgkeuzelijst (standaard) heeft, maar die tevens de code refresh-menuitem="false" bevat om het menu-item voor vernieuwen te verbergen zodra er verbinding met de server is gemaakt. Dit is overzichtelijker.

    <?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>
    

    Hierna ziet u een voorbeeld van de weerfeed, met een aangepast pictogram naast elk menu-item in de vervolgkeuzelijst (om het geheel overzichtelijk te houden zijn de meeste base64-elementen verwijderd). Uitgaande van het bovenstaande voorbeeld zou dit worden weergegeven op: 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>
    

    U kunt dezelfde naamruimte 'http://toolbar.google.com/custombuttons/' en beschrijving of pictogramtags gebruiken in RSS 1.0-, RSS 2.0-, Atom 1.0- en Atom 0.3-feeds voor de toolbarfeeds.

    Meerdere talen

    Een aangepaste knop kan ook alternatieve URL's, pictogrammen en tekst verwerken voor specifieke landinstellingen voor de toolbar. Hieronder kunt u zien op welke twee manieren u dit kunt doen. U kunt echter het beste de eerste methode gebruiken.

    Een attribuut voor de landinstelling gebruiken

    U kunt het beste een lijst met XML-tags maken, waarin voor elk locale="iso-name"-attribuut de iso-name voor de betreffende landinstelling wordt gebruikt. Hier volgt een voorbeeld van een knop met alternatieve Franse en Spaanse URL's en beschrijvingen:

    <?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>
    
    

    Als de landinstelling voor de huidige toolbartaal niet meteen kan worden gevonden in de XML-tag, wordt de eerste tag in de bovenstaande lijst als standaard gebruikt.

    De variabele {locale} gebruiken

    Bij de alternatieve methode wordt de variabele {locale} ingebed in een URL, bijvoorbeeld http://{locale}/wikipedia.org. Deze methode werkt perfect als de resulterende landen kunnen worden toegewezen aan de verschillende beschikbare websites (wat het geval is voor Google.com). Dit is voor de meeste gebruikers echter niet het geval. Mogelijk is er een website beschikbaar voor een bepaald land dat nog niet door Google Toolbar wordt ondersteund. Op het moment waarop dit is geschreven, is er voor Wikipedia bijvoorbeeld een Poolse versie beschikbaar (http://pl.wikipedia.org), maar is Pools (pl) geen beschikbare instelling in de Google Toolbar, waardoor Poolse gebruikers de betreffende website niet kunnen bereiken. Het omgekeerde geldt voor Brazilië: de toolbar is wel beschikbaar voor Braziliaans-Portugees (pt-BR), maar Wikipedia beschikt niet over een speciale website voor het betreffende land. Desgewenst kunt u instructies met het attribuut locale en instructies met de variabele {locale} combineren. In dat geval is het eerste attribuut nog steeds de standaard waarde.

    Tabel met ISO-codes voor landen

    Momenteel worden de volgende landen/talen ondersteund in de toolbar:

    ISO-code Taal
    en Engels
    da Deens
    de Duits
    es Spaans
    fi Fins
    fr Frans
    it Italiaans
    ja Japans
    ko Koreaans
    nl Nederlands
    no Noors
    pt-BR Braziliaans-Portugees
    ru Russisch
    sv Zweeds
    zh-CN Vereenvoudigd Chinees
    zh-TW Traditioneel Chinees

    Een aangepaste knop hosten

    Waar moet uw knop worden gehost

    Welke download-URL u gebruikt om het XML-bestand voor de knop te hosten, is vrij belangrijk omdat die URL de unieke id voor het bijwerken van de knop wordt. Als er een tweede poging wordt ondernomen om de knop vanaf dezelfde URL te downloaden, wordt u gevraagd of de oude knop moet worden vervangen en niet of een nieuwe knop moet worden toegevoegd. Zie Een aangepaste knop bijwerken voor meer informatie.

    Uw knop aan de knoppenlijst van Google toevoegen

    Het toevoegen van uw knop aan de knoppenlijst van Google is een goede manier om de wereld op de hoogte stellen van uw knop. Uw XML-bestand moet al ergens worden gehost (de knoppenlijst bevat een rechtstreekse koppeling naar het bestand) en de knop moet voldoen aan onze redactionele richtlijnen.

    Als u een knop heeft gemaakt voor een site van uzelf, moet het XML-bestand op hetzelfde domein worden gehost als uw site. Knoppen in de knoppenlijst van Google worden aangeduid als 'officieel' als ze op hetzelfde domein worden gehost als het domein waartoe de knop toegang biedt. Hierdoor wordt het voor gebruikers gemakkelijker om de officiële knop voor uw site te vinden.

    Zodra u dit allemaal heeft gedaan, vult u het verzendformulier voor de knoppenlijst van Google in en brengt u Google op de hoogte van uw knop.

    Een koppeling naar uw knop op uw site plaatsen

    U kunt uw knop beschikbaar maken op uw site door een installatiekoppeling te maken. Wanneer gebruikers van Google Toolbar 4 op de koppeling klikken, worden ze gevraagd of ze de knop willen installeren. Als de gebruiker niet over een compatibele versie van Google Toolbar beschikt, wordt de gebruiker omgeleid naar de downloadpagina van de Google Toolbar.

    Een ontwikkelaar kan een installatiekoppeling maken door de volgende URL-syntaxis te gebruiken:

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

    waarbij url verwijst naar het XML-bestand voor de aangepaste knop. Met de koppeling in het onderstaande voorbeeld installeert u een knop voor Slashdot.com:

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

    Het label voor deze koppeling is 'Add'. Wanneer een gebruiker op de koppeling klikt, wordt de knop Slashdot.com geïnstalleerd in de Google Toolbar.

    De bovenstaande Google-URL is min of meer een trigger voor de toolbar om een aangepaste knop te installeren. Als de gebruiker niet over een compatibele versie van de toolbar beschikt, wordt de gebruiker gevraagd of de betreffende versie moet worden geïnstalleerd. Zodra de toolbar is geïnstalleerd, wordt de aangepaste knop automatisch toegevoegd.

    Uw feedverkeer beheren

    Webverkeer met feeds kan problemen opleveren. Als u goede redenen heeft om aan te nemen dat de feeds zeer populair zullen worden en dus veel verkeer zullen genereren, moet de knop de feed niet naar een server met een lage bandbreedte sturen. De server kan dan overbelast raken door de vernieuwingsaanvragen.

    De aangepaste knop heeft een eigen attribuut voor het vernieuwingsinterval voor feeds. De toolbar voldoet aan de verlooptijd die de server in de HTTP-kop definieert. Met deze instelling wordt het vernieuwingsinterval voor de knop genegeerd. Als uw server overbelast is, kunt u de verlooptijd verlengen om de belasting te verlagen. Als een knop bijvoorbeeld elk uur wordt vernieuwd, kunt u de verlooptijd instellen op elk dag vernieuwen, waardoor de hoeveelheid verkeer drastisch wordt gereduceerd (de knop wordt echter wel minder vaak vernieuwd).

    Hier volgt een voorbeeld van een PHP-script om voor Expires een tijd in te stellen die één week in de toekomst ligt:

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

    Voorbeeld van een HTTP-antwoord van de server:

    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
    

    Informatie

    Informatie over XML

    Een XML-bestand voor een aangepaste knop heeft de volgende structuur:

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

    Het element <button> kan de volgende XML-elementen bevatten. Elk element (behalve <update>) kan meerdere keren voorkomen, zolang elk element maar is toegewezen aan een andere landinstelling.

    <title> tekst </title>
    De titel van de aangepaste zoekknop die wordt weergegeven in de lijst met aangepaste knoppen (Instellingen > Opties > Aangepaste knoppen) of eventueel naast de knop. Dit moet een unieke waarde zijn, aangezien deze titel ook wordt gebruikt als standaard zoekwoord voor een zoekopdracht.
    Dit element ondersteunt hetzelfde locale-attribuut als <search> hieronder.
    Een voorbeeld met <title>.
    <description> knopinfo </description>
    De tekst voor de knopinfo voor de aangepaste zoekknop. Deze wordt weergegeven als de gebruiker de knop aanwijst met de muisaanwijzer. Dit is tevens de beschrijving die de gebruiker krijgt te zien wanneer de knop vanaf een website is gedownload.
    Dit element ondersteunt hetzelfde locale-attribuut als <search> hieronder.
    Een voorbeeld met <description>.
    <site> url </site>
    Optionele URL voor de website die wordt weergegeven wanneer het zoekvak geen nieuwe tekst bevat. Het protocol is beperkt tot http: en https: (voor beveiligde sites). De volgende variabelen in een URL worden uitgebreid: {domain}, {url}, {url.noescape}, {url.host} en {locale}.
    Het element <site> ondersteunt dezelfde method- en locale-attributen als <search> hieronder.
    Een voorbeeld met <site>.
    <search> url-sjabloon </search>
    De URL voor een website die wordt weergegeven en doorzocht wanneer het zoekvak een nieuw zoekwoord bevat en op de knop wordt geklikt. (Nieuw betekent dat het zoekvak actief is.) De URL moet zijn gebaseerd op het protocol http: of https:. U kunt javascript: niet gebruiken. De variabele {query} is vereist in de zoeksjabloon (en mag niet worden gebruikt in andere URL-sjablonen). Dit is een optioneel element en kan desgewenst worden weggelaten als deze knop niet moet worden opgenomen in de lijst met zoekknoppen.
    Het zoekelement kan de volgende attributen definiëren:
    method="post"|"get"
    Standaard wordt de 'get'-methode gebruikt. Gebruik 'post' als u de post- in plaats van de get-methode wilt gebruiken voor het verzenden van formuliergegevens met URL-codering. U moet de coderingsmethode application/x-www-form-urlencoded gebruiken. Wanneer er een zoekopdracht wordt uitgevoerd, wordt alle tekst na het vraagteken '?' verzonden als post-gegevens.
    locale="en"|"da"|"de"|"es"|"fi"|"fr"|"it"|"ja"|"ko"|"nl"|"no"|"pt-BR"|"ru"|"sv"|"zh-CN"|"zh-TW"
    Hiermee geeft u een landinstelling op waarvoor dit element een alternatieve URL kan leveren. Geef de ISO-code voor het land op, bijvoorbeeld locale="fr". Doorgaans geeft u meerdere elementen op, met elk een eigen landattribuut en alternatieve URL. (Als dit attribuut wordt gebruikt met andere XML-elementen, kan er een ander pictogram of een andere tekst worden opgegeven.) Zie voorbeelden van landinstellingen en de tabel met ISO-codes voor landen.
    Een voorbeeld met <search>.
    <send> url-sjabloon </send>
    Een optionele URL voor een website die wordt weergegeven wanneer het zoekvak geen tekst bevat en de gebruiker tekst in het browservenster heeft geselecteerd. De variabele {selection} is vereist in de verzendsjabloon (en mag niet worden gebruikt in andere URL-sjablonen).
    Het element <send> ondersteunt dezelfde method-, charset- en locale-attributen als <search> hierboven.
    Een voorbeeld met <send>.
    <icon> base64-codering </icon>
    De onderdelen van een ICO-bestand in de Windows-stijl, bij voorkeur een 32-bits RGBA-afbeelding van 16 x 16 pixels in de XP-stijl, die door veel sites worden gebruikt als favicon.ico-bestand. Aangezien dit een binaire waarde is, moet er base64-codering worden gebruikt. Als er geen pictogram beschikbaar is, wordt er een standaard pictogram gekozen. U kunt het beste ICO-afbeeldingen met alfa-menging van 16 x 16 pixels in de XP-stijl gebruiken, maar ook gewone ICO-, JPG-, BMP- en GIF-bestanden met willekeurige afmetingen worden ondersteund. De afmetingen worden echter verkleind tot 16 x 16 pixels. Het XP RGBA-pictogram werkt op alle besturingssystemen die door de Google Toolbar worden ondersteund. U hoeft dus geen afbeeldingen met 256 kleuren of 16 kleuren te maken. PNG-afbeeldingen worden niet ondersteund.
    De attributen mode en type zijn niet noodzakelijk, maar maken het bewerken in een XML-editor mogelijk wel eenvoudiger:
    mode="base64"
    De codering voor het pictogram.
    type="image/x-icon"
    Het type afbeelding.
    Dit element ondersteunt hetzelfde locale-attribuut als <search> hierboven.
    Een voorbeeld met <icon>.
    <feed> url </feed>
    Geef een URL naar het XML-bestand voor een RSS 2.0- of Atom 0.3-/1.0-feed op. Met dit element kunt u een vervolgkeuzelijst met titels en beschrijvingen voor en koppelingen naar RSS-feeds openen, vergelijkbaar met Firefox RSS-bladwijzers, die automatisch worden bijgewerkt (niet door de gebruiker). Dit is een optioneel element en zal voor de meeste aangepaste zoekopdrachten niet worden gebruikt. De variabelen {domain} en {locale} kunnen ook worden gebruikt in de feed.
    U kunt de volgende attributen in combinatie met dit element gebruiken:
    menu="true"|"false"
    Stel deze in op false om de vervolgkeuzelijst met items te verbergen in de feed. De standaard waarde is true.
    refresh-interval="secs"
    Aantal seconden dat moet worden gewacht voordat de feed opnieuw wordt geladen. De standaard waarde is 3600 (1 uur). De toolbar wordt niet vaker dan één keer per minuut bijgewerkt, zelfs niet als deze waarde minder dan 60 is.
    refresh-onclick="true"|"false"
    Stel dit attribuut in op true om ervoor te zorgen dat de knop wordt bijgewerkt wanneer de gebruiker op de knop klikt. De standaard waarde is false.
    google-service="true"|"false"
    Stel dit attribuut in op true als dit een service voor een Google-account is. Dit betekent dat de service alleen beschikbaar is als een gebruiker is aangemeld bij Google. Er wordt vernieuwd wanneer de gebruiker zich aanmeldt. Wanneer iemand zich afmeldt, worden de items in het menu gewist.
    Dit element ondersteunt hetzelfde locale-attribuut als <search> hierboven.
    Een voorbeeld met <feed>.
    <feed-icon> base64-codering </feed-icon>
    Een alternatief pictogram dat wordt weergegeven wanneer de feed nieuwe items bevat (dezelfde indeling als <icon>). Wanneer een gebruiker op een knop klikt, wordt het normale pictogram weergegeven tot de volgende feed wordt ontvangen. Een feedserver kan het pictogram mogelijk rechtstreeks specificeren in het Atom- of RSS 2.0-antwoord. In dat geval krijgt <feed-icon> of <icon> de tweede prioriteit.
    Dit element ondersteunt hetzelfde locale-attribuut als <search> hierboven.
    (Er wordt geen voorbeeld voor <feed-icon> gegeven, maar deze is vergelijkbaar met het voorbeeld voor <icon>.)
    <feed-description> knopinfo </feed-description>
    Een alternatieve beschrijving die wordt weergegeven als knopinfo als de feed nieuwe items bevat. Wanneer een gebruiker op een knop klikt, wordt de normale beschrijving weergegeven tot de volgende feed wordt ontvangen.
    Dit element ondersteunt hetzelfde locale-attribuut als <search> hierboven.
    (Er wordt geen voorbeeld voor <feed-description> gegeven, maar deze is vergelijkbaar met het voorbeeld voor <description>.)
    <update> url </update>
    De URL voor de downloadpagina van deze knopdefinitie en waar het vervangende XML-bestand voor de update van de knop vandaan zal komen wanneer de gebruiker op de koppeling voor bijwerken klikt (Instellingen > Opties > Aangepaste knoppen > knop selecteren > Bewerken > Meest recente versie downloaden). Deze URL wordt overschreven door de werkelijke URL van de pagina waar de knop is gedownload wanneer de knop via een andere site dan google.com is geïnstalleerd. Dit is het enige element in de aangepaste knop waarvoor geen landattribuut kan worden gebruikt.
    Een voorbeeld met <update> example.
    <option> subelementen </option>
    Hiermee wordt een lokaal gedefinieerde optiereeks opgegeven. De gebruiker kan deze eenvoudig wijzigen in het dialoogvenster met de toolbarinstellingen. De waarde wordt geretourneerd in de {option1}-variabele. Dit element kan drie subelementen hebben, waarvan alleen de eerste verplicht is:
    <title>
    De naam van de optie. De gebruiker ziet deze naam in het dialoogvenster met toolbarinstellingen. Dit subelement is verplicht.
    <description>
    Een beschrijving van deze optie. De gebruiker ziet deze beschrijving. Voor elke optie kunnen meerdere beschrijvingen worden gebruikt. Dit subelement is optioneel.
    <default>
    De standaard waarde van de tag {option1}. Deze waarde wordt gebruikt als de gebruiker geen waarde opgeeft. Dit subelement is optioneel.
    Een voorbeeld met <option>.

    Tekens die u moet escapen

    Voor tekenreeksen in XML-bestanden (en HTML-bestanden) moet u de volgende drie tekens escapen als de weergegeven HTML-entiteiten:

    Teken Escapereeks
    & &amp;
    > &gt;
    < &lt;

    Informatie over variabelen

    Opmerking: er is een voorwaardelijke {a?b:c}-syntaxis beschikbaar voor variabelen om ervoor te zorgen dat de variabelen zowel neerwaarts als opwaarts compatibel zijn. Zie Testen op het bestaan van een variabele voor meer informatie.

    De volgende variabelen, of escapeparameters, worden gebruikt in elementen die zijn opgenomen in het opgegeven bereik. De variabele {query} kan bijvoorbeeld alleen worden gebruikt in het element <search>.

    {query}
    Deze variabele wordt omgezet in de tekenreeks die de gebruiker in het zoekvak van de toolbar heeft getypt. Het plusteken '+' wordt toegevoegd om spaties te escapen, URL-escaping wordt gebruikt voor interpunctietekens en UTF-8-codering voor internationale tekens. Voor bepaalde websites moet de zoekopdracht met een andere methode dan UTF-8-codering worden gecodeerd, bijvoorbeeld de eigen tekencodering voor het land, zoals shift-JIS voor Japan.
    Voorbeeld: als de gebruiker 'hello world' in het zoekvak typt, wordt deze variabele omgezet in 'hello world'
    Bereik: het element <search>
    Een voorbeeld met {query}.
    {url}
    Deze variabele wordt omgezet in de URL in het adresveld van de browser, waar elk teken dat geen letter, cijfer, punt (.) of onderstrepingsteken (_) is, wordt gecodeerd (escaped). Voor het apenstaartje (@) wordt bijvoorbeeld de code %40 gebruikt en voor een spatie %20.
    Voorbeeld: http%3A%2F%2Fwww.wikipedia.org (de gecodeerde versie van http://www.wikipedia.org)
    Bereik: het element <search>, <site> of <send>
    Een voorbeeld met {url}.
    {url.host}
    Deze variabele wordt omgezet in de tekenreeks voor de website.
    Voorbeeld: www.google.com
    Bereik: het element <search>, <site> of <send>
    Een voorbeeld met {url.host}.
    {url.noescape}
    Deze variabele wordt letterlijk omgezet in de URL zoals deze wordt weergegeven in het adresveld van de browser, zonder verdere codering.
    Voorbeeld: http://www.wikipedia.org
    Bereik: het element <search>, <site> of <send>
    Een voorbeeld met {url.noescape}.
    {domain}
    Deze variabele wordt omgezet in het hoofdzoekdomein van Google voor de betreffende toolbar. Dit betekent dat er een domein wordt geretourneerd dat overeenkomt me de zoekresultaten, niet het domein waarin de gebruiker zich bevindt.
    Voorbeelden: com en co.uk
    Bereik: het element <search>, <site>, <send> of <feed>
    Een voorbeeld met {domain}.
    {locale}
    Deze variabele wordt omgezet in de ISO-landcode voor de toolbar.
    Voorbeelden: en, es en pt-BR
    Bereik: het element <search>, <site> of <send>
    Een voorbeeld met {locale}.
    {selection}
    Deze variabele wordt omgezet in de platte tekst die in het huidige browservenster is geselecteerd. De tekst is gecodeerd met utf-8 of met de codering die door het charset-attribuut wordt voorgeschreven en is cgi-escaped. Als de coderingsmethode niet post is, wordt de tekst mogelijk afgebroken.
    Voorbeeld: als de gebruiker het vetgedrukte 'hello world' in de browser selecteert, wordt deze variabele omgezet in de gewone tekst 'hello world'
    Bereik: het element <send>
    Een voorbeeld met {selection}.
    {option1}
    Deze variabele wordt omgezet in de waarde die gebruiker heeft opgegeven voor het element <option>. Deze variabele moet in een URL worden geplaatst. (Deze variabele wordt overigens option1 genoemd voor het geval er in de toekomst nog andere opties moeten worden toegevoegd.)
    Voorbeeld: als de gebruiker een postcode opgeeft in de toolbarinstellingen voor de aangepaste knop, wordt met deze variabele de betreffende waarde, bijvoorbeeld '94043', geretourneerd als onderdeel van de URL.
    Bereik: moet worden opgenomen in een URL in het element <search>, <site>, <send> of <feed>
    Een voorbeeld met {option1}.