Поиск Яндекса вместо Sphinx

Это просто, но для меня стало решением проблемы поиска по сайту на виртуальном хостинге.
В выдаче много повторов (ссылки на теги, топы), но зато все прелести Яндекса( подсказки, автозамена, смена раскладки, транслит, морфология).
Результат: govoritoskol.ru и страница результатов поиска

1. Настраиваем форму поиска Яндекса site.yandex.ru/new_info.xml
Выбираем «оформление результатов поиска — в iframe странице» и пишем желаемый адрес страницы результатов поиска, например yoursite.ru/page/poisk

2. Копируем полученный html-код поисковой формы и вставляем его в sidebar.tpl вместо строк
<div class="block">
	<form action="{router page='search'}topics/" method="GET">
	<input class="text" type="text" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=''" value="{$aLang.search}" name="q" />
	<input class="button" type="submit" value="{$aLang.search_submit}" />
	</form>
</div>
заключаем этот код в тег {literal}{/literal}

3. Создаем статическую страницу poisk. Для этого нужно активировать плгин static page в панели администратора. В поле «Текст» новой страницы снова вставляем код поисковой формы и затем второй код от Яндекса, примерно такой:
<div id="yandex-results-outer" onclick="return {encoding: ''}"></div>
<script type="text/javascript" src="http://site.yandex.net/load/site.js" charset="utf-8"></script>


Не уверен, что сделал все правильно, по-хорошему нужно наверно где-то выключить Sphinx. И на странице результатов поиска у меня форма и кнопка вылезли справа, пока не понял как исправить.

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

avatar
лучше уж гуглопоиск использовать. он хотя бы индексирует страницы в разы быстрее, а то тут будешь по неделе ждать новые страницы в поиске.
avatar
а вообще, в последнее время пользователи не совсем охотно юзают поиски по сайту.
avatar
да я тоже в последнее время забил на поиск
на всех моих сайтах включил gooogle поиск
и баста
avatar
я тоже создал страницу для поиска и поставил поиск Гугла. но никак не смог поставить поиск над сайдбаром. вместо старого поиска просто поставил ссылку на страницу поиска. а как сделать форму поиска сразу же над сайдбаром?
avatar
да я тоже в последнее время забил на поиск
на всех моих сайтах включил gooogle поиск
и баста

интересный вопрос как выключить Sphinx
avatar
… на странице результатов поиска у меня форма и кнопка вылезли справа...
Чтобы решить эту проблему нужно вставить стиль после «yandexform», в начале кода, в редакторе статической страницы.

Напирмер:

<div class="yandexform" style="width: 960px;" onclick="return {type: 2, logo: 'rb', arrow: false, webopt: false, websearch: false, bg: '#CCE5FF', fg: '#000000', fontsize: 14, suggest: true, site_suggest: true, encoding: ''}">


Спасибо status за помощь.
avatar
Блин, а я когда вставляю текст в редакторе html у меня часть Яндекс-кода исчезает (((
Как побороть?
avatar
Какой редактор? Под виндой пользуйте notepad++, под остальным — geany/kate
avatar
Редактор html в LiveStreet — когда статичную страницу создаю, текст приходится писать именно в нем, а контент сохраняется в MySQL.
avatar
ээ, этот код надо не в страницу выносить, а в шаблон вставлять
но если очень хочется в страницу (модуль page?), то редактируйте напрямую в mysql
avatar
Хм, я так понял что нужно в статичную страницу: «В поле «Текст» новой страницы снова вставляем код поисковой формы и затем второй код от Яндекса».

В общем в страницу я вставил, оказывается гасился пустой тег , т.е. надо было сделать его не пустым:
Тут всё что угодно, например  

Всё заработало с одним НО — в FreFox 5.0 в результатах поиска ничего не нажимается и даже не появляется контекстное меню по правой кнопке ((( В IE 9 всё ОК.
avatar
Ёлки-палки, ну вот теги вырезались )))
— Хм, я так понял что нужно в статичную страницу: «В поле «Текст» новой страницы снова вставляем код поисковой формы и затем второй код от Яндекса».

В общем в страницу я вставил, оказывается гасился пустой тег , т.е. надо было сделать его не пустым:
<div id="yandex-results-outer" onclick="return {encoding: ''}">Тут всё что угодно, например  </div>


Всё заработало с одним НО — в FreFox 5.0 в результатах поиска ничего не нажимается и даже не появляется контекстное меню по правой кнопке ((( В IE 9 всё ОК.
avatar
тьфу блин, я даже пост не прочитал до конца
вообще по-хорошему надо заменить шаблоны actionsearch
avatar
Попробуйте код яндекса заключить в теги:
{literal} код яндекса {/literal}
avatar
2. Копируем полученный html-код поисковой формы и вставляем его в sidebar.tpl вместо строк

А в шаблоне new в sidebar нету таких строк.
Где искать?
avatar
Смотрите файл 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} т.е.
{literal}<div class="yandexform"...код от яндекса...{/literal} 


На вновь созданной странице poisk расположенной по адресу Ваш сайт/page/poisk/
в код вставляем два кода выданные на яндексе (site.yandex.ru/new_info.xml)

Чтобы не сдвигался и не растягивался код поисковой формы вставляем
{literal}<div class="yandexform" <u>style="width: 260px; float:right; padding-right:30px;"</u> onclick="return...
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.