Как наладить поиск по сайту?

15.07.2024

Как наладить поиск по сайту?

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

Важно понимать, что введёная поискова строка будет искаться именно в том виде, в котором она будет введена. Морфология не учитывается. Порядок слов также не будет изменён. Чтобы обойти эти ограничения, можете фразы с другим порядком слов и в других падежах, временах, спряжениях и т.п. указывать в каких-либо скрытых полях, которые не будут видны на сайте. И указать эти поля как те, по которым также должен вестись поиск. Это будет описано ниже...

Создание формы поиска

Форму поиска (обычный HTML-код) можно написать прямо в шаблонах в элементе HTML-код веб-страницы, но это не самый продуманный вариант, если, вдруг, Вам понадобится быстро изменить один и тот же код сразу в нескольких шаблонах. Лучше создать одно редактируемое поле, в котором будет HTML-код формы. И уже это поле можно вставить во всех (нужных) шаблонах. Так в случае изменения кода в форме, он автоматически изменится во всех (нужных) шаблонах.

  1. Перейдите в раздел Контент \ Редактируемые поля (можно в другой подраздел раздела Контент)
  2. Нажмите Добавить новую запись
  3. Укажите любое название, например, Форма поиска
  4. Укажите любой ID, например, search-form (дальше будет ориентироваться именно на такой ID)
  5. Выберите шаблон Многострочное поле без редактора и нажмите Добавить. Если такого шаблона нет (был удалён), то ознакомьтесь с тем, как создать шаблон и вставить в него элемент Многострочное поле без редактора.
  6. Вставьте в поле Содержимое поля без редактора (название может быть другое), код указанный ниже, скорректируйте его под свои нужды и сохраните изменения.

Пример кода:

<form method="post" action="/search/">
  <input placeholder="Поиск..." type="text" name="search" value="{plugin:current_SearchText}" />
  <input type="submit" value="Найти">
</form>

Для тега form, можно изменить следующее:

  • method - может быть, как post, так и get. Во втором случае поисковый запрос будет доступен в адресной строке браузера
  • action - здесь должен быть указан адрес страницы, на которой будут располагаться результаты поиска. В нашем случае это страница с ID search. Далее будем ориентироваться именно на него, хотя ограничений на ID страницы с результатами поиска нет.

Поле, в котором будет вводиться поисковый запрос, обязательно должно иметь значение search в свойстве name. Изменить можно следующее:

  • type - может быть любым, подходящим в Вашем случае, например, number. Но в большинстве случаев лучше оставить text или search.
  • value - можно оставить пустым или написать любой другой текст, который сразу же будет отображаться в поле для ввода поискового запроса. Чтобы автоматически отобразить здесь только что введённый поисковый запрос, напишите {plugin:current_SearchText}

Других ограничений или обязательных требований нет. Для отправки формы можете использовать, как <input type="submit"><input type="image"><button type="submit"></button>, так и любой другой, допустимый в HTML, вариант.

Естественнно, код формы нужно оформить в стиле Вашего сайта, если он сильно выделяется на фоне других элементов интерфейса wink

Код формы поиска, например, имеющей вид {plugin:content;id:search-form;value:multistringfield_1_value}, будет виден ниже поля Содержимое поля без редактора (название может быть другое). Скопируйте его и вставьте в элемент HTML-код веб-страницы во всех нужных шаблонах. Если код формы не виден, то на панели инструментов нажмите кнопку Подсказки и помощники по вставке плагинов и свойств: показать.

Создание списка результатов поиска

Список результатов поиска отображается также, как любой другой список или любое меню - с помощью плагина универсального меню.

  1. Перейдите в раздел Справочники \ Оформление меню нажмите Добавить новую запись
  2. Нажмите Добавить новую запись
  3. Укажите любое название, например, Результаты поиска
  4. Укажите любой ID, например, search-results (дальше будет ориентироваться именно на такой ID) и нажмите Добавить

Далее в самом простом случае достаточно заполнить только поле HTML-код обычной записи, например, таким кодом:

<p>
  <a href="{content_url_value}">{content_name}</a>
</p>

Чуть более сложный вариант, в котором также будет отображён путь к найденным страницам при условии, что вариант меню с ID path существует (не было удалён):

<p>
  <a href="{content_url_value}">{content_name}</a>
  <br />
  {plugin:menu;id:path;select:path;factor:{content_id}}
</p>

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

  • HTML-код до списка подстраниц: <p><a href="{menu_subpage_firsturl}" title="В начало списка">«</a>
  • HTML-код после списка подстраниц: <a href="{menu_subpage_lasturl}" title="В конец списка">»</a></p>
  • HTML-код обычного элемента списка подстраниц: <a href="{menu_subpage_url}">{menu_subpage}</a>
  • HTML-код активного элемента списка подстраниц: <a href="{menu_subpage_url}">{menu_subpage}</a>

Код меню тоже желательно оформить в стиле Вашего сайта, если он сильно отличается от других элементов интерфейса. Ограничений или обязательных требований по части HTML-кода - нет.

Осталось только вставить код для вызова списка результатов поиска в основной текст страницы c ID search (либо с другим ID, который указан в форме поиска), либо в HTML-код её шаблона.

Код может быть, например, таким:

{plugin:menu;id:search-result;search:{plugin:current_SearchText};inlist:20;maxsubpages:10;factor:.;select:children-all;sort:name}

Вы можете использовать другие параметры для вызова плагина универсального меню. Важно обратить внимание на следующие:

  • id: должен быть равен ID списка (меню), созданного для отображения результатов поиска
  • types: здесь можно через запятую перечислить типы, записи, которых Вам нужны. Например, если нужны новости и товары, то напишите news,goods. Если ничего не указывать, то поиск будет вестись по записям всех типов.
  • select: в большинстве случаев больше других вариантов подойдёт all (поиск будет вестись по всей струтуре сайта). Также часто может быть полезен вариант children (для поиска только по непосредственным подразделам того, что указано в factor). И также может быть полезен вариант children-all (для поиска по всем подразделам того, что указано в factor). Последний вариант даёт самую высокую нагрузку на веб-сервер, поэтому не является предпочтительным, если другие варианты дают схожий результат.
  • search: здесь должна быть указана поисковая фраза. Чтобы автоматически указать здесь то, что было введено в форме поиска, напишите {plugin:current_SearchText}.
  • search-cols: здесь через запятую можно указать поля, по которым будет вестись поиск. По умолчанию используется такое значение: id,name,seo_title,seo_description,seo_keywords,maintext_value. Вы также можете добавить в этот список другие поля, в том числе те скрытые поля, про которые написано в начале данной статьи.
  • factor: не будет иметь значение, если в select указано all. Для других, описанных выше, вариантов здесь можно указать ID той страницы, подразделы которой нам важны в поиске, например, catalog для поиска товаров и их категорий. Если нужно указать самый верх структуры (для поиска по всем её подразделам), укажите точку - .
  • inlist: позволит не выводить огромное количество результатов поиска на одной странице, а разбить список на несколько подстраниц, ограничив каждую максимально допустимым, указанным здесь количеством записей
  • maxsubpages: позволит ограничить количество подстраниц с результатами поиска на случай, если их будет слишком много
  • sort: даст возможность организовать один из вариантов сортировки

 


CMS Zion WebEngine является бесплатной системой. Развивается за счёт рекламы, помощи веб-студии #webZion и других спонсоров.

 

Будем рады, если Вы поддержите нас любой суммой, а также поделитесь идеями на счёт каких-либо улучшений и доработок для CMS...

 

Заранее, большое, спасибо

 

Блог обновлений

Zion WebEngine 26.07.29
  • Доработаны классы для управления базой данных, корзиной для заказов, заказами, способами оплаты (спасибо Li:Store):
    • Теперь для каждого способа оплаты можно отдельно настроить скидку/наценку не только на указанное число, но и на указанный процент

Zion WebEngine Zion Catalog База данных/Таблицы данных Интернет-магазин Корзина для заказов Скидки/Наценки Способы оплаты

Zion WebEngine 26.07.22
  • Доработаны класс для управления базой данных и элемент Связи (спасибо Киокушин Online):
    • Оптимизировано использование оперативной памяти

Zion WebEngine База данных/Таблицы данных Классы Связи Элементы Что такое Классы?

Zion WebEngine 26.07.21
  • Доработаны класс для управления контентом, элемент Место в структуре, меню администратора для пакета Zion WebEngine, а также административные скрипты и CSS-определения (спасибо Li:Store):
    • Сильно упрощена фильтрация контента в случаях, когда в административном интерфейсе нужно отобразить подразделы только одного надраздела:
      • В том числе теперь нет необходимости указывать тип надраздела
      • Все надразделы выводятся в виде древовидной структуры
    • Отменено внедрение возможности редактирования контента через древовидную структуру надразделов/подразделов:
      • Весь необходимый функционал теперь доступен при фильтрации контета по надразделу

Zion WebEngine Административный интерфейс Классы Контент/Контентные единицы Меню администратора Место в структуре Типы Фильтрация Элементы Что такое Элементы?

Zion WebEngine 26.07.16
  • Доработан инструмент для обновления цен через совместимый с Excel CSV-файл (спасибо Li:Store):
    • Теперь, если в CSV-файле есть несколько товаров с одинаковым сочетанием названия и характеристик, то в таблице сопоставлений ассоциация будет происходить по уникальному полю, например, по ссылке на товар на сайте конкурентов
    • Теперь настройки этого инструента можно скрыть, чтобы освободить рабочее пространства для более нужного

Zion Import CSV/Excel Импорт/Экспорт Сайт-каталог Характеристики/Разновидности

Zion WebEngine 26.07.15
  • Доработан инструмент для обновления цен через совместимый с Excel CSV-файл (спасибо Li:Store):
    • Устранена проблема с необновлением зачёркнутой цены
  • Доработаны драйвер оболочки, класс для управления проектом и JS-скрипт реализации AJAX:
    • Улучшено экранирование и разэкранирование некоторых символов, которые могут искажаться при передаче GET-запросов через AJAX

Zion WebEngine Zion Import AJAX CSV/Excel POST/GET-данные Драйверы Импорт/Экспорт Классы Кодировки/Наборы символов Сайт-каталог Что такое Классы?

Zion WebEngine 26.07.10
  • Доработан инструмент для обновления цен через совместимый с Excel CSV-файл (спасибо Li:Store):
    • Улучшены автоматическое и ручное сопоставления содержимого CSV-файла с товарами, которые есть на сайте
    • Реализовано применение цен из товаров в CSV-файле к товарам на сайте
    • Разработка завершена, но доработки ещё возможны

Zion Import CSV/Excel Импорт/Экспорт Сайт-каталог

Zion WebEngine 26.07.09
  • Продолжена разработка инструмента для обновления цен через совместимый с Excel CSV-файл (спасибо Li:Store):
    • Налажен процесс автоматического сопоставления содержимого CSV-файла с товарами, которые есть на сайте
    • Для случаев, когда автоматическое сопоставление не справляется или срабатывает неправильно, реализована возможность ручного сопоставления:
      • При этом товар не нужно долго искать - автоматика находит наиболее похожие по названию/описанию товры и предлагает выбрать их в первую очередь
    • Реализована возможность предпросмотра того, как будут выглядеть цена и зачёркнутая цена после применения данных из файла
    • Разработка продолжается

Zion Import CSV/Excel База данных/Таблицы данных Импорт/Экспорт Сайт-каталог Как импортировать данные о товарах из XML

Zion WebEngine 26.07.07
  • Доработана система мониторинга для сервера обновлений:
    • Исключена вероятность того, что для того или иного пакета может быть загружен дистрибутив от другого пакета

Zion Server Что такое система Мониторинга? Веб-сервер/Хостинг Мониторинг Обновления CMS

Zion WebEngine 26.07.05
  • Продолжена разработка инструмента для обновления цен через совместимый с Excel CSV-файл (спасибо Li:Store):
    • Реализована возможность указать такие параметры, как
      • тип всех товаров и основной шаблон товаров (а в нём выбор полей с обычной и зачёркнутой ценой)
      • что делать с указанной ценой в файле ценой (применять в к товару в том же виде, что и в файле, либо увеличивать/уменьшать на указанное число или на указанный процент относительно цены, указанной в файле)
      • как "украшать" цену (например, добавить в конце девятки и/или нули)
    • Содержимое файла теперь автоматически копируется во временную таблицу, чтобы с ним было удобнее работать при сопоставлении с товарами на сайте
    • Разработка продолжается

Zion Import CSV/Excel База данных/Таблицы данных Импорт/Экспорт Сайт-каталог Типы Шаблоны контента Элементы Что такое Шаблон контента?

Zion WebEngine 26.07.03
  • Начата разработка инструмента для обновления цен через совместимый с Excel CSV-файл (спасибо Li:Store):
    • Реализована возможность указать такие параметры, как кодировка файла и разделитель (формат CSV поддерживает различные варианты разделителей между значениями)
    • Реализована возможность указывать важность полей из файла, чтобы упростить автоматическое сопоставление данных из файла с данными в базе сайта, т.к. названия товаров в них могут отличаться:
      • Можно указать, какое поле является названием, какое идентифицирующей характеристикой, какое уникальным значение, какое ценой
      • Можно скрывать или показывать неважные поле
      • Можно не только сохранять, но и сбрасывать параметры на случай, если для обновления цен будут использоваться разные файлы
    • Создана инструкция
    • Разработка продолжается
  • Доработано меню администратора для пакета Zion Import:
    • Добавлен новый подраздел в разделе Инструменты
  • Доработаны классы для управления корзиной для мусора, точками самовывоза, способами доставки и импортом товаров из CSV:
    • Оптимизировано использование оперативной памяти

Zion WebEngine Zion Catalog Zion xDelivery Zion Import Что такое Меню администратора? CSV/Excel База данных/Таблицы данных Импорт/Экспорт Кодировки/Наборы символов Корзина для мусора Меню администратора Помощники/Мастеры/Инструкции/Подсказки Сайт-каталог Способы доставки/самовывоза Характеристики/Разновидности

Zion WebEngine 26.06.30
  • Доработан плагин универсального меню (спасибо Li:Store):
    • Теперь, если используется недавно реализованный параметр different, и для отображения найдена всего одна запись, то список (из всего одной записи) отображён не будет

Zion WebEngine Меню/Списки/Навигация Плагины Плагин Menu

Zion WebEngine 26.06.25
  • Доработаны элемент Место в структуре, меню администратора для пакета Zion WebEngine, а также административные скрипты и CSS-определения (спасибо Li:Store):
    • Начато внедрение возможности редактирования контента через древовидную структуру надразделов/подразделов:
      • Разработка ещё не завершена, но просмотр древовидной структуры уже доступен
  • Доработан класс для управления контентом:
    • Расширен список доступных свойств контента
  • Доработаны главный файл административного интерфейса и общий монитор функциональности административного интерфейса
    • Оптимизировано использование оперативной памяти

Zion WebEngine Что такое система Мониторинга? Административный интерфейс Классы Контент/Контентные единицы Меню администратора Место в структуре Мониторинг Свойства Элементы

Zion WebEngine 26.06.24
  • Доработаны класс для работы с текущими данными и главный файл гостевого интерфейса (спасибо Li:Store):
    • Оптимизировано использование оперативной памяти

Zion WebEngine Что такое Административный интерфейс и Гостевой интерфейс? POST/GET-данные Гостевой интерфейс Классы Куки

Zion WebEngine 26.06.21
  • Доработан плагин формы обратной связи (спасибо Li:Store):
    • Расширены возможности кастомизации оформления формы в целом и конкретно Google reCAPTCHA
  • Доработаны класс для управления пользователями и главный файл гостевого интерфейса
    • Оптимизировано использование оперативной памяти

Zion WebEngine Zion Mail Back Гостевой интерфейс Доступы/Пользователи Классы Обратная связь/Обратный звонок Плагины Спам Формы Что такое Классы?

Zion WebEngine 26.06.20
  • Доработан плагин универсального меню (спасибо Li:Store):
    • Расширены возможности использования парметру search-cols:
      • Теперь, если в нём указать *, то поиск будет вестить по всем полям таблицы данных
  • Доработан драйвер оболочки
    • Расширен список символов, которые можно использовать в командах вызова плагинов

Zion WebEngine База данных/Таблицы данных Драйверы Меню/Списки/Навигация Плагины Поиск текста Что такое Плагины?

Zion WebEngine 26.06.18
  • Доработан плагин универсального меню (спасибо Li:Store):
    • Добавлена возможность фильтровать записи по новому параметру oneof:
      • У найденных записей в указанном поле значение должно быть равно, одному из указанных в этом параметре вариантов
    • Расширены возможности фильтрации по парметру substring:
      • Теперь в нём можно указать сразу несколько вариантов искомых подстрок
  • Доработаны элемент Изображение и Место в структуре, а также класс для управления водяными знаками
    • Оптимизировано использование оперативной памяти

Zion WebEngine Zion Gallery Изображение Меню/Списки/Навигация Место в структуре Плагины Фильтрация Элементы Элемент "Место в структуре"

Zion WebEngine 26.06.17
  • Доработан плагин универсального меню (спасибо Li:Store):
    • Удалены некоторые архаизмы
  • Доработан элемент Галочка:
    • Теперь плагин checkbox_Checked, если галочка должна быть отмечена, может возвращать не только текст checked, но и любой заданный в параметре checked текст или код
  • Доработан главный файл гостевого интерфейса:
    • Оптимизировано использование оперативной памяти

Zion WebEngine Zion Catalog Что такое Административный интерфейс и Гостевой интерфейс? Галочка Гостевой интерфейс Меню/Списки/Навигация Плагины Элементы

Zion WebEngine 26.06.14
  • Доработан плагин универсального меню (спасибо Li:Store):
    • Устранены некоторые недочёты из предыдущего обновления.
  • Доработан класс для управления базой данных:
    • Улучшено копирование связей при клонировании контента
    • Реализовано копирование галерей при клонировании контента
  • Доработан класс для управления корзиной заказов:
    • Более продуманно организовано изменения списка товаров в корзине через AJAX

Zion WebEngine Zion Catalog AJAX База данных/Таблицы данных Галереи/Слайды Классы Контент/Контентные единицы Корзина для заказов Меню/Списки/Навигация Обновления CMS Плагины Связи Как редактировать Контент?

Zion WebEngine 26.06.13
  • Добавлены новые параметры в плагин универсального меню (спасибо Li:Store):
    • same: отображать только записи, у которых в указанных через запятую полях значения такие же, как у записи, указанной в параметре factor
    • different: отображать только записи, у которых в указанных через запятую полях значения отличаются от указанной в параметре factor
    • Рекомендуется сочетать эти два параметра, например, для отображения вариантов товаров, например, смартфонов одной модели с одинаковым цветом, но разным объёмом памяти и т.п.
  • Доработан класс для управления базой данных:
    • Расширены возможности отладки некоторых запросов в СУБД

Zion WebEngine База данных/Таблицы данных Классы Меню/Списки/Навигация Плагины Плагин Menu

Ответы на вопросы

Как импортировать данные о пользователях из XML

Как загрузить данные о пользователях, например, о клиентах на сайт из 1С и аналогичных внешних систем через формат XML

Zion UserControl Zion Import XML/RSS/1С/YML Импорт/Экспорт Меню администратора

Что такое Меню администратора?

Общая информация о Меню администратора: что это, где его найти и как им пользоваться?

Zion WebEngine Zion UserControl Zion Catalog Zion Mail Back Zion SEO Booster Zion xDelivery Zion Import Zion Gallery Zion xPayment Zion Pub Hub Zion Export Zion JivoSite Zion Chat Zion Multi-Lang Zion Banners Manager Zion Sender Zion Server Email-сообщения SMS SMTP/PHP-mail XML/RSS/1С/YML Валюты Веб-сервер/Хостинг Галереи/Слайды Доступ Групп пользователей Доступы/Пользователи Изображение Импорт/Экспорт Интернет-магазин Категории Корзина для заказов Корзина для мусора Кэш/Кеш Меню/Списки/Навигация Меню администратора Многоязычность/Языки Обновления CMS Обмен сообщениями/Чат Обратная связь/Обратный звонок Онлайн-консультант Политика конфиденциальности Помощники/Мастеры/Инструкции/Подсказки Рассылки Реакции на заказ Сайт-каталог Скидки/Наценки Спам Способы доставки/самовывоза Способы оплаты Файлы/Папки ФЗ-152 Формы Шаблоны контента Эскизы

Что такое Тип контента?

Общая информация о Типах контента: что это, для чего они нужны, и как их использовать

Zion WebEngine Zion Catalog Zion Pub Hub Меню/Списки/Навигация Типы

Как редактировать Контент?

Как управлять страницами, редактируемыми полями, новостями, статьями, товарами, аксессуарами и другими контентными единицами?

Zion UserControl Zion Catalog Zion Pub Hub Адрес (URL)/ЧПУ/Переадресация Кэш/Кеш Меню/Списки/Навигация Помощники/Мастеры/Инструкции/Подсказки Фильтрация Шаблоны контента

Как настроить сайт?

Zion WebEngine 26 - CMS без абонентской платы

Что такое Комплект поставки?

Общая информация о Комплекте поставки: что это, где его посмотреть и как можно расширить?

Настраиваемые модули

Что такое Вкладки?

Общая информация о Вкладках: что это, для чего они нужны, и как их использовать

Zion WebEngine Zion Catalog Zion Gallery Zion Pub Hub Вкладки

Что такое Шаблон контента?

Общая информация о Шаблонах контента: что это, для чего они нужны, и как их использовать

Zion WebEngine Шаблоны контента

Как подтвердить права на сайт в поисковой системе?

Как подтвердить права на сайт в Яндекс.Вебмастере, Google Search Console, Кабинете вебмастера Mail.Ru, Bing - Webmaster Tools и других аналогичных сервисах

SEO-параметры