Как стать автором
Обновить

Просимся в поиск к пользователю с помощью OpenSearch

Разработка веб-сайтов *
Хабрапоиск
На картинке есть одна деталь, которую не все замечают. Подсветка стрелки выпадающего меню. Значит сайт, на котором вы находитесь, предлагает добавление поискового плагина. Работает в Firefox и IE.


Делается это с помощью подключения через <link> XML-файла формата OpenSearch. Простейший вариант для Хабра будет иметь вид:

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Хабрахабр</ShortName>
<Image height="16" width="16" type="image/vnd.microsoft.icon">habrahabr.ru/favicon.ico</Image>
<InputEncoding>utf-8</InputEncoding>
<Url type="text/html" method="get" template="http://habrahabr.ru/search/?q={searchTerms}"/>
</OpenSearchDescription>

Подключается эта конструкция тегом:

<link rel="search" type="application/opensearchdescription+xml" title="Хабрахабр" href="/habrasearch.xml">

Вуаля! Теперь можно добавить Хабр в ваш список поисковых систем. Важная фича (update из лички) — чтобы стрелка погасла после добавления плагина атрибут title тега <link> и тег <ShortName> xml-ки должны быть идентичны.

Также легко можно сделать автодополнение запроса (не для Хабра, так как нужно выдавать предположения в другом формате, нежели они отдаются по адресу habrahabr.ru/ajax/suggest). Добавляем в конец строку вида:

<Url type="application/x-suggestions+json" method="get" template="http://site.com/suggestion.php?q={searchTerms}"/>

И по адресу /suggestion.php отдаем предположения в следующем формате (упрощенный вариант):

["то, что уже ввел юзер", ["предположение №1", "предположение №2", "предположение №3"]]

Вот так это работает на одном из подшефных сайтов. Желающие могут все это навернуть, поглубже почитав вышеприведенную ссылку на opensearch.org

P.S. Хабраграждане — используйте OpenSearch! За это вам будет благодарность от пользователей и лишний аргумент в борьбе за букмарк-посетителей.
Теги:
Хабы:
Всего голосов 88: ↑80 и ↓8 +72
Просмотры 11K
Комментарии 30
Комментарии Комментарии 30

Публикации

Истории