keemor.com - Surfin' JavaScript Wave

Wyszukiwarka oraz akcelerator dla IE i Firefox

Wyszukiwarka

będzie szukać po naszych kontaktach w Contails.com. Wymaga wcześniejszego zalogowania się do serwisu, ponieważ nasze kontakty są zabezpieczone hasłem i musimy mieć aktywną sesję z serwisem.

Wyszukiwarka Contails

Wyszukiwarka będzie obsługiwać sugestie w Firefoxie 2 i 3 oraz w IE8.
W IE7 będzie po prostu przekierowywać na wyniki wyszkiwania w Contails.

Akcelerator

Ta usługa jest dostępna w najnowszej wersji IE i wygląda to tak:

Na początek pod adresem http://www.contails.com/plugin/search.xml tworzymy OpenSearch Description File, który jest statycznym plikiem XML.


<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:ie="http://schemas.microsoft.com/Search/2008/">
<ShortName>Contails.com</ShortName>
<Image height="16" width="16" type="image/icon">http://www.contails.com/favicon.ico</Image>
<Url type="text/html" template="http://www.contails.com/
contacts/search_user.html?query={searchTerms}"/>   
<Url type="application/x-suggestions+json" template="http://www.contails.com/xhr/plugin/search?query={searchTerms}"/>
<ie:PreviewUrl type="text/html" template="http://www.contails.com/plugin/search_accelerator.html?query={searchTerms}"/>
</OpenSearchDescription>

  • Url type=”text/html” – Wymagany, absolutny URL, który kieruje zapytanie do podstawowego wyszukiwania w serwisie
  • Url type=”application/x-suggestions+json” – Opcjonalny URL, który zwraca sugestie wyszukiwania w postaci formatu JSON
  • ie:PreviewUrl type=”text/html” – Opcjonalny URL do wyświetlania wyników w podglądzie akceleratora w IE8.

Następnie tworzymy metodę search, która pod adresem /xhr/plugin/search zwraca sugestie w formacie JSON.


class PluginController(BaseController):
    @filter(XhrUserSignedInFilter)
    @jsonify
    def search(self):
        request_query = request.params.get('query', '')
        result = [request_query]
        # ...
        # pobieramy z bazy danych
        # ...
        result.append(search_names)
        result.append(search_emails)
        result.append(search_urls)
        return result

Format danych sugestii wygląda następująco:


["piz",
	["Pizza Gruby Benek", "Pizza Tino Zaspa", "Pizza Maxx"], 
	["58 551 58 58, gruby@benek.pl", "58 551 58 50", "pizza@maxx.pl"],	
	["http://contails.com/contacts/browse.html?id_contact=12345",
"http://contails.com/contacts/browse.html?id_contact=35597", 
"http://contails.com/contacts/browse.html?id_contact=35597"]]

Pierwszy element piz to szukana fraza.
Drugi to tablica z nazwami wyszukanych kontaktów.
Trzecia tablica zawiera informacje dodatkowe.
A czwarta absolutne linki to wyszukanych kontaktów.

Jeżeli nie ma żadnych wyników to zwracamy:


["piz"]

Dodanie wyszukiwarki

W sekcji head umieszamy link ze słowem kluczowym search, co pozwala przeglądarce wykryć nowego dostępnego dostawcę wyszukiwania.


<link title="Contails.com" rel="search" type="application/opensearchdescription+xml" href="http://www.contails.com/plugin/search.xml">

Inny sposobem jest umieszczenie na naszej stronie linka:


<a href="#"
onclick="window.external.AddSearchProvider
('http://www.contails.com/plugin/search.xml')"
>Dodaj wyszukiwarkę Contails</a>

W tych paru krokach, możemy zintegrować nasz serwis z najpopularniejszymi przęglądarkami.