Интеграция поиска Яндекс с сайтом на Drupal

yandex

Вся мощь поисковой машины на вашем сайте. Это реально :). Синонимы, морфология, транслит и другие прелести, которыми вас может порадовать Яндекс, и скорее всего не «по зубам» встроенному в вашу CMS поисковому алгоритму.

Я уже не говорю о том, насколько это дорогое удовольствие — полнотекстовой поиск в базе данных или построение индекса статей. А типовой хостинг — это база данных MySql, с весьма скромными вычислительными  ресурсами и оперативной памятью.

Расскажу о подключение поиска Яндекс на примере CMS Drupal, но это касается любой CMS или framework.

Сервис site.yandex.ru — поиск для сайта.

Яндекс позволяет сгенерировать необходимый код для вашего сайта.

У вас будет два варианта:

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

Веб-мастерам больше интересен второй вариант, чтобы посетитель оставался все время на сайте. Что касается первого варианта, он очень прост, ведь в этом случае мы получаем только код веб-формы поиска и остаётся его вставить в подходящее место в шаблоне сайта.

Нет смысла описывать все настройки и шаги регистрации-генерации кода. Важен только один момент — «Результаты поиска»,

yandex-site-search

где нужно выбрать опцию «показывать результаты на моей странице» и указать адрес этой страницы.

На этой странице по этому адресу вам нужно разместить соответствующий код (код результатов поиска) с шага «Код для вставки на сайт».

yandex-site-search-code

Эти два кусочка кода — все что вам нужно для интеграции поиска на своём сайте.

Манипуляции в Drupal

Я не предлагаю делать именно так, но хочу дать готовое решение для тех, у кого нет времени думать самим.

Нам нужны три вещи для интеграции в Drupal:

  • запрограммировать пару полей в одну из форм настроек сайта, чтобы код для вставки не вводить вручную в шаблоне и коде модуля;
  • вставить код в нужное место в шаблоне;
  • запрограммировать страницу, выводящую «код результатов поиска».

Доп. код для Drupal (а это будет drupal 7) будем писать в модуль yasearch.

Настройки поиска по сайту

Реализуем первый шаг нашего плана. Добавим настройки (поля, принимающие кусочки кода) в форму настроек активной темы оформления сайта. Почему я делаю это в теме оформления? Мне кажется, эти настройки ближе именно к оформлению сайта, чем его программированию. Возможно, я не прав, это моё субъективное видение. Никто вам не мешает встроить их, например, в форму «настройки сайта».

Для вашей темы оформления достаточно добавить файл следующего содержания:

Не забудьте исправить префикс YOURTHEMENAME в коде.

Для двух полей tpk_ys_form и tpk_ys_code я создаю группу (fieldset), чтобы визуально они были одним целым.

Теперь вы можете настройки, полученные на site.yandex.ru, сохранить в форме настроек вашей темы оформления.

Встраиваем поисковую форму в код шаблона

Во все основные файлы шаблонов, вроде page—front.tpl.php, page.tpl.php и т.д., в зависимости от структуры вашей темы оформления, нужно будет добавить HTML код, вроде:

Код поисковой формы яндекса, вероятнее всего, вы разместите в какой то HTML контейнер, вроде DIV, чтобы было проще управлять стилями. Это зависит уже от вашего шаблона и методов верстки.

Страница с результатами поиска.

Последний шаг — программирование страницы, выводящей результаты поиска.

Напишем hook_menu и функцию обработчик вызова.

Комментарии излишни :). Код для доп. настроек темы получился и то больше.

Интеграция очень проста, но позволяет вашему сайту вкусить всех прелестей от поискового монстра Яндекс.

Минусы использования поиска Яндекс на вашем сайте?

Вы будете зависеть от оперативности обновления информации поисковой машиной. Данные вашего сайта появятся в выдаче, лишь когда они будут проиндексированы Яндекс. Встроенные средства более оперативны, т.к. работают напрямую с базой сайта.

Небольшая плата за качество.

Мало букафф? Читайте есчо !

Создать пользователя сразу на всех сайтах мультисайтинга в Drupal

Июнь 6, 2019 г.

С помощью drush и такой то матери (bash) обойдем все сайты и создадим одного и того же юзера на каждом из сайтов. Долго тянуть не стану - вот текст скрипта: [crayon-688c1fde0df48650151184/] В начале вы задаёте нужные переменные (задайте свои ...

Читать

Вывод всех локальных переменных в twig

Июнь 3, 2024 г.

Все видимые переменные шаблона можно посмотреть в переменной _context. Вывести их имена, используя перебор циклом for: [crayon-688c1fde0e1ff074541858/] В Drupal, если вы используете модуль devel, в twig будет доступна функция dpm: [crayon-688c1fde0e22c254470858/]

Читать

Ошибка в Drupal Adding non-existent permissions to a role is not allowed. The incorrect permissions are "..."

Июль 25, 2023 г.

Такое иногда вылазит как следствие удаления кастомных классов/модулей, создающих собственные права или инициализирующие права через родительский модуль. Как это пофиксить? Права из роли не были удалены штатно, потому придется сделать следующее: ...

Читать

Превышение лимитов памяти при запросе перевода в модуле tmgmt

Октябрь 1, 2024 г.

Это проблема рекурсии при сборе информации о статье. Модуль сканирует ссылочные поля (reference entity fields) и может попасть в своеобразную рекурсивную петлю. К примеру, статья ссылается на параграф, а тот ссылается на эту же статью. Т.к. глубина ...

Читать
 

Комментарии к «Интеграция поиска Яндекс с сайтом на Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: