--- title: Tworzenie wtyczek OpenSearch dla Firefoksa slug: Web/OpenSearch tags: - Dodatki - OpenSearch - Wszystkie_kategorie - Wtyczki_wyszukiwarek translation_of: Web/OpenSearch original_slug: Tworzenie_wtyczek_OpenSearch_dla_Firefoksa --- <p> </p> <h2 id="OpenSearch" name="OpenSearch">OpenSearch</h2> <p><a href="pl/Firefox_2">Firefox 2</a> obsługuje format opisu wtyczek wyszukiwarek <a class="external" href="http://opensearch.org/">OpenSearch</a>. Wtyczki korzystające ze <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document">składni OpenSearch</a> są zgodne z IE 7 i Firefoksem. Z tego powodu są formatem zalecanym do stosowania na stronach WWW.</p> <p>Firefox obsługuje także dodatkowe możliwości spoza <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document">specyfikacji OpenSearch</a>, takie jak podpowiedzi wyszukiwania i element <code>SearchForm</code>. Niniejszy artykuł skupia się na tworzeniu wtyczek zgodnych z OpenSearch, ale wykorzystujących także i te dodatkowe możliwości.</p> <p>Dostępność plików opisu OpenSearch może być także ogłaszana w sposób opisany w podrozdziale <a href="#Automatyczne_wykrywanie_wtyczek_wyszukiwarek">Automatyczne wykrywanie wtyczek wyszukiwarek</a>, mogą być także instalowane w sposób programowy, tak jak to opisano w artykule <a href="pl/Dodawanie_wyszukiwarek_ze_stron_WWW">Dodawanie wyszukiwarek ze stron WWW</a>.</p> <h2 id="Plik_opisu_OpenSearch" name="Plik_opisu_OpenSearch">Plik opisu OpenSearch</h2> <p>Plik XML opisujący wyszukiwarkę ma prostą budowę, taką, jak przedstawiona w poniższym szablonie. Pogrubione fragmenty muszą być dostosowane do wymogów konkretnej wyszukiwarki.</p> <pre class="eval"><OpenSearchDescription xmlns="<span class="nowiki">http://a9.com/-/spec/opensearch/1.1/</span>" xmlns:moz="<span class="nowiki">http://www.mozilla.org/2006/browser/search/</span>"> <ShortName><b>nazwaWyszukiwarki</b></ShortName> <Description><b>opisWyszukiwarki</b></Description> <InputEncoding><b>kodowanieWejściowe</b></InputEncoding> <Image width="16" height="16">data:image/x-icon;base64,<b>daneObrazu</b></Image> <Url type="text/html" method="<b>metoda</b>" template="<b>adresURLWyszukiwania</b>"> <Param name="<b>nazwaParam1</b>" value="<b>wartośćParam1</b>"/> ... <Param name="<b>nazwaParamN</b>" value="<b>wartośćParamN</b>"/> </Url> <Url type="application/x-suggestions+json" template="<b>adresURLPodpowiedzi</b>"/> <moz:SearchForm><b>adresURLFormularza</b></moz:SearchForm> </OpenSearchDescription> </pre> <dl> <dt> <b>ShortName</b></dt> <dd> Krótka nazwa wyszukiwarki.</dd> </dl> <dl> <dt> <b>Description</b></dt> <dd> Zwięzły opis wyszukiwarki.</dd> </dl> <dl> <dt> <b>InputEncoding</b></dt> <dd> Kodowanie znaków stosowane przy wprowadzaniu danych do wyszukiwarki.</dd> </dl> <dl> <dt> <b>Image</b></dt> <dd> Zakodowana przy użyciu algorytmu Base-64 ikona o wymiarach 16x16 reprezentująca wyszukiwarkę. Narzędzie ułatwiające tworzenie danych do umieszczenia w tym elemencie (kodowania plików algorytmem Base64) można znaleźć na stronie: <a class="external" href="http://software.hixie.ch/utilities/cgi/data/data">The data: URI kitchen</a>.</dd> </dl> <dl> <dt> <b>Url</b></dt> <dd> Określa adres lub adresy URL wykorzystywane do wyszukiwania. Atrybut <code>method</code></dd> </dl> <p>decyduje, czy do wysłania zapytania ma być stosowana metoda <code>GET</code> czy <code>POST</code>. Atrybut określa podstawowy adres URL dla zapytania wyszukiwarki.</p> <dl> <dd> <div class="note"> <b>Uwaga:</b> Internet Explorer 7 nie obsługuje żądań <code>POST</code>.</div> </dd> </dl> <dl> <dd> Firefox obsługuje dwa typy elementów Url:</dd> </dl> <ul> <li><code>type="text/html"</code> – do określenia adresu URL samego zapytania wyszukiwarki</li> <li><code>type="application/x-suggestions+json"</code> – do określenia adresu URL z podpowiedziami wyszukiwania.</li> </ul> <dl> <dd> W adresach obu typów tekst <code>{searchTerms}</code> zostanie zastąpiony przez wartości wprowadzone przez użytkownika do paska wyszukiwania. Inne obsługiwane parametry dynamiczne wyszukiwania można znaleźć w rozdziale <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_3#OpenSearch_1.1_parameters">OpenSearch 1.1 parameters</a> specyfikacji OpenSearch.</dd> </dl> <dl> <dd> Podczas przeglądania <i> oficjalnej specyfikacji OpenSearch</i> , a konkretnie elementu Url, można zauważyć, że Mozilla w pewnym stopniu nie przestrzega specyfikacji, używając atrybutu <code>method</code> i znacznika <code>Param</code> bez odpowiedniej przestrzeni nazw. Jeśli chcemy zachować zgodność zarówno ze specyfikacją, jak i z Mozillą, możemy bezpiecznie używać obu sposobów równolegle, tzn. używać atrybutu <code>method</code> i jego wersji z przestrzenią nazw obok siebie.</dd> </dl> <dl> <dd> Dla zapytań o podpowiedzi wyszukiwania, podany szablon adresu URL wykorzystywany jest do pobrania listy podpowiedzi w formacie JavaScript Object Notation (JSON). Szczegóły na temat implementacji podpowiedzi wyszukiwania po stronie serwera można znaleźć w artykule <a href="pl/Wsparcie_dla_podpowiedzi_wyszukiwania_w_wyszukiwarkach">Wsparcie dla podpowiedzi wyszukiwania w wyszukiwarkach</a>.</dd> </dl> <p><img alt="Image:SearchSuggestionSample.jpg"></p> <dl> <dt> <b>Param</b></dt> <dd> Parametry, które muszą zostać przekazane wraz z zapytaniem, w postaci par klucz/wartość. Przy określaniu tych wartości można użyć <code>{searchTerms}</code>, by wstawić w to miejsce wyszukiwane słowa wprowadzone przez użytkownika w pasku wyszukiwania.</dd> <dd> <div class="note"> <b>Uwaga:</b> Internet Explorer 7 nie obsługuje tego elementu.</div> </dd> </dl> <dl> <dt> <b>SearchForm</b></dt> <dd> Adres URL strony z wyszukiwarką na danej witrynie. (Niejako adres strony, którą wtyczka wyszukiwarki zastępuje - przyp. tłum.). W ten sposób Firefox umożliwia użytkownikowi bezpośrednie otwarcie danej witryny.</dd> </dl> <div class="note"> <b>Uwaga:</b> Ten element nie jest częścią specyfikacji OpenSearch, jest związany z konkretną funkcją Firefoksa. Z tej przyczyny poprzedzony został przedrostkiem przestrzeni nazw XML "<code>moz:</code>", aby inne aplikacje, nie obsługujące tego elementu, mogły go zignorować.</div> <h2 id="Automatyczne_wykrywanie_wtyczek_wyszukiwarek" name="Automatyczne_wykrywanie_wtyczek_wyszukiwarek">Automatyczne wykrywanie wtyczek wyszukiwarek</h2> <p>Witryna oferująca wtyczkę wyszukiwarki może ogłosić jej dostępność, umożliwiając użytkownikom Firefoksa na łatwą i szybką instalację wtyczki.</p> <p>Aby skorzystać z tej funkcji, wystarczy po prostu w części <code><head></code> strony internetowej dodać jedną linię:</p> <pre class="eval"><link rel="search" type="application/opensearchdescription+xml" title="<i>tytułWyszukiwarki</i>" href="<i>adresURLWtyczki</i>"> </pre> <p>Pochylony tekst należy zastąpić, jak opisano poniżej:</p> <dl> <dt> <b>tytułWyszukiwarki</b></dt> <dd> Nazwa wyszukiwarki, np. "Yahoo! Search". Wartość ta powinna być zgodna z wartością ShortName w pliku wtyczki.</dd> </dl> <dl> <dt> <b>adresURLWtyczki</b></dt> <dd> Adres URL do pliku XML wtyczki wyszukiwania, która ma zostać pobrana przez przeglądarkę.</dd> </dl> <p>Jeśli witryna oferuje szereg wtyczek wyszukiwania, można pozwolić na automatyczne wykrywanie ich wszystkich - przez umieszczenie tylu znaczników <code>link</code>, ile wtyczek chcemy zaoferować, np.:</p> <pre class="eval"><link rel="search" type="application/opensearchdescription+xml" title="MySite: wg autora" href="<a class="external" href="http://www.mysite.com/mysiteauthor.xml" rel="freelink">http://www.mysite.com/mysiteauthor.xml</a>"> <link rel="search" type="application/opensearchdescription+xml" title="MySite: wg tytułu" href="<a class="external" href="http://www.mysite.com/mysitetitle.xml" rel="freelink">http://www.mysite.com/mysitetitle.xml</a>"> </pre> <p>W ten sposób witryna oferuje osobne wtyczki pozwalające na przeszukanie wg autorów i tytułów.</p> <h2 id="Rozwi.C4.85zywanie_problem.C3.B3w_.E2.80.93_wskaz.C3.B3wki" name="Rozwi.C4.85zywanie_problem.C3.B3w_.E2.80.93_wskaz.C3.B3wki">Rozwiązywanie problemów – wskazówki</h2> <p>Jeśli w pliku XML wtyczki jest błąd, mogą wystąpić problemy podczas instalacji wykrytej wtyczki w Firefoksie 2. Informacja o błędzie może nie być zbyt dokładna, dlatego poniżej podajemy kilka wskazówek, które powinny pomóc w takiej sytuacji.</p> <ul> <li>Wtyczka wyszukiwarki XML musi być prawidłowo uformowana. Sprawdzić to można np. otwierając plik wyszukiwarki bezpośrednio w Firefoksie. Ampersandy („&”) w szablonach adresów URL muszą występować w postaci encji <code>&amp;</code>, a każdy znacznik musi być zamknięty, albo przez ukośnik na końcu, albo przez odpowiedni znacznik zamykający.</li> <li>Atrybut <code>xmlns</code> jest ważny; w sytuacji jego braku można otrzymać komunikat o błędzie: "Firefox nie mógł pobrać wtyczki wyszukiwarki z: (adres URL)".</li> <li><b>Konieczne</b> jest dołączenie adresu URL typu <code>text/html</code> &ndashl wtyczki zawierające tylko adresy typu Atom lub <a href="pl/RSS">RSS</a> (poprawne, ale nie obsługiwane obecnie przez Firefoksa) również spowodują wyświetlenie powyższego komunikatu błędu.</li> <li>Zdalne ikony witryn („favicons”) nie mogą być większe niż 10 KB (zob. {{ Bug(361923) }}).</li> </ul> <p>Ponadto usługa wtyczek wyszukiwarek zapewnia dostęp do mechanizmu dziennika, który może być przydatny dla twórców wtyczek. Aby skorzystać z dziennika, należy na stronie <i> about:config</i> ustawić wartość opcji '<code>browser.search.log</code>' na <code>true</code>. Informacje dziennika będą pojawiać się w <a href="pl/Konsola_b%c5%82%c4%99d%c3%b3w">Konsoli błędów</a> Firefoksa (Narzędzia->Konsola błędów) przy dodawaniu wtyczek.</p> <h2 id="Literatura" name="Literatura">Literatura</h2> <ul> <li><a class="external" href="http://opensearch.org/">Dokumentacja OpenSearch</a>, <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/Extensions/Parameter/1.0">OpenSearch Documentation about the Url and Param element</a></li> <li>Technorati.com has a <a class="external" href="http://technorati.com/osd.xml">working osd.xml</a></li> <li>Więcej o problemach z automatycznym wykrywaniem - {{ Bug(340208) }}</li> <li><a class="external" href="http://en.wikipedia.org/wiki/Data:_URI_scheme">Adresy URI <code>data:</code></a></li> <li><a class="external" href="http://www.searchplugins.net">searchplugins.net</a> - tworzenie wtyczek OpenSearch dla Firefoksa 2 <a class="external" href="http://www.searchplugins.net/pluginlist.aspx">Lista wygenerowanych wtyczek</a></li> <li><a class="external" href="http://ready.to/search/en/">Ready2Search</a> - tworzenie wtyczek OpenSearch. <a class="external" href="http://ready.to/search/make/en_make_plugin.htm">Wyszukiwanie za pomocą Ready2Search</a></li> </ul> <p><span class="comment">Interwiki link</span></p> <div class="noinclude"> </div>