Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Vytvoření_vyhledávacího_modulu_OpenSearch

OpenSearch

Firefox 2 a novější podporuje formát OpenSearch pro tvorbu vyhledávacích modulů. Moduly vytvořené ve formátu OpenSearch jsou kompatibilní s IE 7 a Firefoxem. Z tohoto důvodu se jedná o doporučený formát pro použití na webu.

Firefox též podporuje rozšířené vyhledávací možnosti, které nejsou v základní verzi specifikace formátu OpenSearch zahrnuty. Jedná se zejména o element SearchForm a našeptávač (jeho specifikace je součástí rozšíření Suggestions 1.0). Tento článek vám ukáže, jak vytvořit vyhledávací modul ve formátu OpenSearch, který nebude zahrnovat tyto specifika pro Firefox.

Vyhledávací moduly ve formátu OpenSearch mohou být též propagovány webovou stránku či mohou být instalovány programově dle popisu v článku Přidání vyhledávacího modulu z webové stránky.

Popis formátu OpenSearch

XML soubor popisující vyhledávací modul je značně jednoduchý zvlášť, pokud použije šablonu níže. Části uvedené kurzívou je potřeba upravit v závislosti na vyhledávacím modulu, který píšete.

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>engineName</ShortName>
<Description>engineDescription</Description>
<InputEncoding>inputEncoding</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,imageData</Image>
<Url type="text/html" method="method" template="searchURL">
  <Param name="paramName1" value="paramName1"/>
  ...
  <Param name="paramNameN" value="paramValueN"/>
</Url>
<Url type="application/x-suggestions+json" template="suggestionURL"/>
<moz:SearchForm>searchFormURL</moz:SearchForm>
</OpenSearchDescription>
ShortName
Krátké jméno vyhledávacího modulu.
Description
Stručný popis vyhledávacího modulu.
InputEncoding
Kódování použité pro vstupní data vyhledávacího modulu.
Image
Ikona 16x16 vyhledávacího modulu zakódovaná pomocí Base-64. Zde se vám může hodit jeden užitečný nástroj, který naleznete zde: DataURLMaker.
Url
Popisuje adresu URL (či adresy) pro vyhledávání. Atribut method uvádí, zda se má pro získání výsledku použít metoda GET či POST. Atribut template uvádí základní adresu URL pro vyhledávací dotaz.
Poznámka: Internet Explorer 7 nepodporuje metodu POST.
Existují dva typy URL adresy, kterou můžete specifikovat:
  • type="text/html" je použito pro určení URL pro vyhledávací dotaz.
  • type="application/x-suggestions+json" je použito pro určení URL, kde se bude nabízet našeptávání pro vyhledávání.
V obou typech URL můžete použít {searchTerms} jako zástupce pro vyhledávaný výraz, který uživatel zadá do pole vyhledávání. Další podporované parametry vyhledávání jsou popsané v parametrech OpenSearch 1.1.
Pro dotaz na našeptávač je pro získání výsledku použita specifická URL šablona ve formátu JavaScript Object Notation (JSON). Pro bližší informace, jak implementovat podporu pro našeptávání na serveru, nahlédněte do článku Podpora našeptávače ve vyhledávacích modulech.

Ukázka našeptávání Firefoxu 2

Param
Parametry, které je potřeba předat společně s vyhledávacím dotazem v podobě klíč/hodnota. Když určujete hodnoty, můžete použít {searchTerms} jako zástupný znak pro hledané fráze zadávané v poli vyhledávání.
Poznámka: Internet Explorer 7 tento element nepodporuje.
SearchForm
Adresa URL pro přechod na stránku, která poskytuje vyhledávání, které je zpřístupněno vyhledávacím modulem. Jedná se o způsob, jak Firefox umožní uživatelům přejít na tuto stránku přímo.
Poznámka: Tento element je specifický pro Firefox a není součástí specifikace OpenSearch. Je pro něj použita předpona "moz:" ve jmenném prostoru XML, která zaručí, že jiní klienti, kteří nepodporují tento element, jej budou bezpečně ignorovat.

Upozorňování na vyhledávací modul

Webová stránka, která nabízí vyhledávací modul, na to může upozornit. Uživatelé Firefoxu tak mohou snadno stáhnout a nainstalovat vyhledávací modul.

Upozornění zajistíte přidáním jednoho řádku do sekce <HEAD> webové stránky:

<link rel="search" type="application/opensearchdescription+xml" title="searchTitle" href="pluginURL">

Nahraďte text napsaný kurzívou podle popisu níže:

searchTitle
Jméno vyhledávacího modulu - např. "Search MDC" či "Yahoo! Search". Tato hodnota by se měla shodovat s elementem ShortName uvedeném ve vyhledávacím modulu.
pluginURL
URL adresa vyhledávacího modulu z kterého jej prohlížeč může stáhnout.

Pokud vaše stránka nabízí více vyhledávacích modulů, můžete upozornit na všechny. Například:

<link rel="search" type="application/opensearchdescription+xml" title="MySite: By Author" href="http://www.mysite.com/mysiteauthor.xml">
<link rel="search" type="application/opensearchdescription+xml" title="MySite: By Title" href="http://www.mysite.com/mysitetitle.xml">

Tímto způsobem může vaše stránka nabízet vyhledávací moduly pro vyhledávání dle autora a dle názvu.

Tipy na řešení problémů

Pokud je v vyhledávacím modulu ve formátu XML chyba, měli byste ve Firefoxu 2 získat chyby při přidávání nabízeného modulu. Chybové hlášení nemusí být vždy užitečné, ale následující tipy vám pomohou nalézt problém.

  • Ujistěte se, že vámi nabízený vyhledávací modul ve formátu XML je dobře formátovaný. Můžete to zkontrolovat prostým načtením modulu ve Firefoxu. Znak & v URL musí být správně převeden na &amp; a jednotlivé tagy musí být korektně uzavřeny lomítkem či koncovým tagem.
  • Atribut xmlns je důležitý. Bez něj získáte chybové hlášení typu "Firefox nemohl stáhnout vyhledávací modul z (URL)".
  • Mějte v patrnost, že musíte vložit text/html adresu URL — vyhledávací moduly obsahující pouze Atom či RSS typy URL (které projdou validátorem A9 OpenSearch) budou též generovat chybu typu "nemohu stáhnout vyhledávací modul".

Je též dobré vědět, že služba pro správu vyhledávacích modulů poskytuje mechanismus, který může být vývojářům modulů užitečný. Přejděte na konfigurační stránku about:config a nastavte předvolbu 'browser.search.log' na hodnotu true. Logovací informace se začnou objevovat v Chybové konzoli (Nástroje -> Chybové konzola) Firefoxu poté, co se pokusíte vyhledávací modul přidat.

Referenční materiály

Document Tags and Contributors

Štítky: 
 Contributors to this page: teoli, Pawell, JasnaPaka
 Last updated by: teoli,