Быстрая интеграция поиска от Google в ваш сайт.

Задача довольно простая, но на всякий случай изложу готовое решение, на тот случай если кто-то сходу не разберется.

Интеграция гугло-поиска может пригодится если Sphinx вы установить не в силах (к примеру виртуальный хостинг, как это в моем случае), а плагин aceMySearch вам по каким-то причинам не подходит (не хотите получить дополнительную нагрузку на сайт или просто хотите немного заработать на AdSense :)

Первым делом вам нужно перейти на http://www.google.com/cse/?hl=ru. Если у вас нет аккаунта google — то вам придется зарегистрироваться (в дальнейшем вы сможете добавить к нему и гуглопочту, и AdSense и любой другой сервис google).

Дальше последует небольшая настройка. Тут все интуитивно понятно, обращу ваше внимание только на то, что вам надо задать конкретный адрес страницы, где будут выведены результаты. В моем случае это mysite.ru/page/find

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

Теперь вывод результатов.


Как вы успели заметить, выводим мы результаты на статической странице, поэтому необходимо ее создать (aceAdminPanel вам в помощь). И немного подредактировать плагин page.

Мы внесем два небольших измения:

1. Добавим реакцию в plugins/page/classes/actions/ActionPAge.class на url нашей статической страницы:

нас интересует функция EventShowPage(), в концее ее кода необходимо заменить код

$this->SetTemplateAction('page');


на


if($sUrlFull == "find")		
	$this->SetTemplateAction('page_find');
else
	$this->SetTemplateAction('page');


таким образом, теперь, если при отображении страницы mysite.ru/page/find/
мы будем подхватывать шаблон page_find.tpl, который необходимо создать (к примеру скопировав page.tpl)

В коде шаблона page_find.tpl мы размещаем код, который нам сгенерировал google для страницы результатов. Код размещаем после вывода основного контента (так мы сможем что-либо дописать перед выводом результатов поиска).


{if $oConfig->GetValue('view.tinymce')}
	{$oPage->getText()}
{else}
	{$oPage->getText()|nl2br}
{/if}
	
{literal}
<div id="cse-search-results"></div>
<script type="text/javascript">
  var googleSearchIframeName = "cse-search-results";
  var googleSearchFormName = "cse-search-box";
  var googleSearchFrameWidth = 950;
  var googleSearchDomain = "www.google.ru";
  var googleSearchPath = "/cse";
</script>
<script type="text/javascript" src="http://www.google.com/afsonline/show_afs_search.js"></script>
{/literal}



Ну вот собственно и все. Если подключить AdSence, то google будет дополнительно выводить рекламные объявления.

Пример того, как это выглядит:


Так же можно глянуть на моем сайте (просто поищите что-либо :).

Надеюсь этот набросок статьи сможет помочь кому-либо в его начинаниях )

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

avatar
По моему стандартный лучше ищет, да и без рекламы гугла.
Зачем этот поиск?
avatar
А вы внимательно прочитали? В самом начале:
«Интеграция гугло-поиска может пригодится если Sphinx вы установить не в силах (к примеру виртуальный хостинг, как это в моем случае), а плагин aceMySearch вам по каким-то причинам не подходит (не хотите получить дополнительную нагрузку на сайт или просто хотите немного заработать на AdSense :)»
avatar
А если чего-то нет в индексе, пользователь никогда не найдет на сайте…
avatar
да действительно.

делайте СДЛ (:
avatar
Сказки не рассказывайте СДЛ сейчас поисковики блокируют за нарушение правил, за пиратство, за нарушение авторских прав, и просто правительственная цензура. Вот и получается, что сайт СДЛ а в поиске его нет)))
avatar
Я бы в такой ситуации рекомендовал бы поиск от Яндекса. Там рекламы нет, но зато есть ограничение в 1000 запросов в сутки. Для небольших проектов этого вполне достаточно.
Хотя тут конечно нужно смотреть где больше страниц в индексе.
avatar
ну эта реклама может приносить доход — теоретически (:
яндекс конешно можно тоже подключить — это вопрос на любителя.

просто хотелось продемонстрировать способ — хорошо когда на сайте накапливаются готовые решения, пусть даже и таких простых задач (:
avatar
Хотел бы увидеть как интегрировать поиск от яндекса, как на futurin.ru/page/ya_search/?text=ad&searchid=145201&web=0#947&, во-первых красивее, а во-вторых без рекламы.
avatar
ну принцип такой же — есть код формы, есть код для страницы вывода результатов. Остается зарегистрироваться в соответствующем сервисе яндекса.
Остальной принцип интеграции продемонстрирован.
avatar
Написал про поиск Яндекса livestreet.ru/blog/5668.html
avatar
спасибо большое!
  • F-5
  • 0
avatar
По-моему, поиск гугла изменился… Теперь нам не дают код для вставки формы поиска на сайт.
Что делать?
avatar
Это гуд!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.