Поиск по сайту, как сделать быстро и красиво.

Доброе утро господа, сейчас расскажу как сделать поиск по сайту на примере шаблона new-jquery, быстро и красиво. :)
Воспользуемся бесплатным сервисом от яндекса, оформление можем смело пропустить.
Жмем на «Результаты поиска», в графе «Где показывать результаты поиска» выбираем «в iframe на странице», и вводим предварительно сделанную в плагине «Static page» страницу. Тут же настраиваем внешний вид выводимый страницы и переходим на «Код для вставки на сайт».
Нижнию часть копируем и вставляем в нашу предварительно созданную страницу, в поле «Текст».
Верхнюю часть не трогаем, она нам ни к чему, только запоминаем цифры в этой строчке:
<input type="hidden" name="searchid" value="ТУТ ЦИФРЫ, ИХ ЗАПИШИТЕ!!!"/>

Теперь открываем файл /templates/skin/new-jquery/nav.tpl, и ищем этот код:
<form action="{router page='search'}topics/" method="GET" class="search">
			<input class="text" type="text" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=''" value="{$aLang.search}" name="q" />
			<input class="search-submit" type="submit" value="" />
		</form>

Вместо него, вставляем этот:

{literal}<form action="ЗДЕСЬ АДРЕС ВАШЕЙ ПРЕДВАРИТЕЛЬНО СОЗДАННОЙ СТРАНИЦЫ В ПЛАГИНЕ "Static Page"!!!" method="get" class="search">			
<input type="hidden" name="searchid" value="ЗДЕСЬ ВВОДИМ ЦИФРЫ КОТОРЫЕ Я ВАМ СКАЗАЛ СОХРАНИТЬ!!!"/>
<input type="submit" class="search-submit" value=""/>
<input class="text" type="text" name="text" />
</form>
<script type="text/javascript" src="http://site.yandex.net/load/form/1/form.js" charset="utf-8"></script>
{/literal}

Вот и все, сохраняем, проверяем, и радуемся, еще + мне можно дать. :)
Для тех кто не понял, мы воспользуемся поиском от яндекса, но само поле поиска оставим от стандартного шаблона. Кэп. :)

САЙТ ДЛЯ ПРОВЕРКИ

11 комментариев

avatar
Зачем пользоваться сторонним сервисом поиска, который не всегда охватывает всю информацию на сайте, в то время как можно делать поиск по всем данным на сайте с помощью плагинов/sphinx'a?
avatar
Сфинкс без ВПСа не поставить, плагины грузят сервак, заметно будет когда топиков будет под 2-3 тысячи. Если не ошибаюсь, конечно. Да и вроде-бы только платные остались, а так пускай каждый сам решает что ему ставить. Я предложил альтернативу — Япоиск, и сделал так что бы он был еще и красивым. Не хотел Вас обидеть. :)
avatar
Да нет, что Вы, какие могут быть обиды?
На вкус и цвет фломастеры разные :)
avatar
Что интересно, на практике поиск от сфинкса гораздо хуже «охватывает всю информацию на сайте» чем поиск от Гугл. Это одна из причин по которой лично я использую гугл-поиск на своих сайтах (Яндексом не пользовался). И вторая причина — гугл(или яндекс)-поиск уже монетизирован контекстной рекламой. И CTR, кстати, на страницах результатов такого поиска очень высокий.
avatar
поиск уже монетизирован контекстной рекламой
По подробней пожалуйста? :)
У меня почему то нет рекламы, сначала договор нужно оформить?
avatar
Если работать напрямую с Яндексом, то да, договор для размещения рекламы Директа необходимо заключать, но если работать через один из ЦОП Яндекса (мои площадки работают через e-customer.ru), то договор не нужен. Есть некоторые плюсы при работе с ЦОП, например ЦОП не удерживает налог на доходы физ.лиц в размере 13%.
А в Гугл без контекстной рекламы поиск вообще не поставить.
avatar
вот уже очевидный плюс в сторону Яши :) Спасибо за развернутый ответ. :)
avatar
Лучше ставить поиск от Гугла, так как он больше и быстрее индексирует.
avatar
Спасибо за инструкцию! Поставил на 1.0.1, вот только код в nav.tpl вставлял от Яндекса, т.к. иначе выглядело так:


Подскажите, что можно подправить, чтобы оставалась стандартная форма поиска из шаблона?
  • wepp
  • 0
avatar
Оставил форму от Яндекса, в Опере ок, в Хроме выглядит так (поиск при этом работает, но кнопку «Создать» перекрывает наглухо. Что поправить можно?


Вот код, который вставляю:
<div class="search-header">
{literal}
<div class="ya-site-form ya-site-form_inited_no" onclick="return {'bg': 'transparent', 'target': '_self', 'language': 'ru', 'suggest': true, 'tld': 'ru', 'site_suggest': true, 'action': 'http://troller.ru/page/find/', 'webopt': false, 'fontsize': 12, 'arrow': false, 'fg': '#000000', 'searchid': '1944871', 'logo': 'rb', 'websearch': false, 'type': 2}">
<form action="http://yandex.ru/sitesearch" method="get" target="_self">
<input type="hidden" name="searchid" value="номер_от_Яндекса" />
<input type="hidden" name="l10n" value="ru" />
<input type="hidden" name="reqenc" value="" />
<input type="text" name="text" value="" />
<input type="submit" value="Найти" /></form></div>
<style type="text/css">.ya-page_js_yes .ya-site-form_inited_no { display: none; }</style>
<script type="text/javascript">(function(w,d,c){var s=d.createElement('script'),h=d.getElementsByTagName('script')[0],e=d.documentElement;(' '+e.className+' ').indexOf(' ya-page_js_yes ')===-1&&(e.className+=' ya-page_js_yes');s.type='text/javascript';s.async=true;s.charset='utf-8';s.src=(d.location.protocol==='https:'?'https:':'http:')+'//site.yandex.net/v2.0/js/all.js';h.parentNode.insertBefore(s,h);(w[c]||(w[c]=[])).push(function(){Ya.Site.Form.init()})})(window,document,'yandex_site_callbacks');</script>
{/literal}
</div>
avatar
а я купил какой то ппыщ плагин и мне на все покуй ))))
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.