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

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 20.02.27
  • Доработаны главный файл гостевого интерфейса, класс для управления SEO-параметрами, а также обработчики обратной связи и заказа звонка:
    • Теперь в email-сообщениях из форм обратной связи и заказа звонка будет приходить не только информаци о том, на какой странице была заполнена форма, но и информация о том, откуда на сайт пришёл посетитель, заполнивший форму:
      • Новая функция работает только при наличии в комплекте поставки Zion SEO Booster
  • Доработан класс для управления способами доставки (спасибо Чистая магия):
    • Реализована функция проверки того, доступна ли в данный момент доставка тем или иным способ
  • Доработан класс для работы с корзиной заказов:
    • Если в данный момент доступна доставка через СДЭК, то поле с индексом становится обязательным для заполнения в форме заказа в интернет-магазине
  • Доработаны вспомогательный класс для работы с вкладками и класс управления заказами:
    • Реализована функция проверки того, доступен ли в данный момент тот или иной способ уведомления о заказах:
      • Это позволяет автоматически отобразить (нужные) или скрыть (ненужные) вкладки в информации о заказах
        • Например, ранее вкладка Отчёт от FrontPad отображалась всегда, независимо от того, включена ли интеграция с этой CRM

Zion WebEngine Zion Catalog Zion Mail Back Zion SEO Booster Zion xDelivery Email-сообщения SEO-параметры Вкладки Гостевой интерфейс Интернет-магазин Классы Корзина для заказов Настраиваемые модули Обработчики Обратная связь/Обратный звонок Реакции на заказ СДЭК Способы доставки/самовывоза Формы Что такое Вкладки?

Zion WebEngine 20.02.26
  • Доработан класс для управления заказами (спасибо Мастерская уюта):
    • Реализована фильтрация заказов по названиям товаров в этих заказах

Zion Catalog Интернет-магазин Классы Корзина для заказов Фильтрация

Zion WebEngine 20.02.25
  • Доработан класс для управления курсами валют (спасибо Advisor Espana):
    • Создан плагин currencies_FromRUR для конвертации рублей в любую доступную валюты, аналогично ранее созданному плагину currencies_RUR для конвертации любой доступной валюты в рубли

Zion Catalog Валюты Классы Плагины Что такое Плагины?

Zion WebEngine 20.02.24
  • Доработан класс для управления заказами (спасибо Мастерская уюта):
    • Улучшена совместимость со старыми версиями таблиц данных
    • Реализована фильтрация заказов по зарегистрированным пользователям
    • Реализованы формирование и распечатка QR-кодов для товаров в заказах:
      • Каждый QR-код содержит следующую информацию:
        • Номер данного заказа
        • Номер позиции данного товара в данном заказе
        • Номер единицы данного товара из количества такого же товара в данном заказе
        • Количество данного товара в данном заказе
      • Полезно для наклеивания QR-кодов на товарные единицы для хранения товаров на складе до вручения их клиенту
  • Доработан класс для управления SMS-шлюзом:
    • В SMS-уведомлениях о заказах покупателям теперь кроме номера высылается и сумма заказа

Zion WebEngine Zion Catalog SMS База данных/Таблицы данных Классы Корзина для заказов Реакции на заказ Сайт-каталог Фильтрация

Zion WebEngine 20.02.21
  • Доработан главный файл гостевого интерфейса (спасибо Проф-Бетон):
    • Оптимизировано обращение к классам
    • Повышена производительность

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

Zion WebEngine 20.02.20
  • Доработаны класс для управления базой данных, контентом и заказами (спасибо Мастерская уюта):
    • Часть функционала, необходимая для фильтрации только контентных единиц, перенесена из класс для управления базой данных в класс для управления контентом
    • Начата разработка различных вариантов фильтрации заказов в интернет-магазине:
      • Реализована фильтрация по заказов за промежуток между выбранными датами

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

Zion WebEngine 20.02.19
  • Доработан класс для управления файлами и папками (спасибо Новый стандарт):
    • Устранены некоторые недочёты при загрузке файлов
    • Уведомления об ошибках стали более информативными

Zion WebEngine Классы Уведомления Файлы/Папки

Zion WebEngine 20.02.18
  • Доработан класс для управления навигацией (спасибо Портал поддержки):
    • Расширен набор опций на Панели инструментов при редактировании меню и списков
  • Доработан помощник по вставке плагина Menu:
    • Помощник сильно упрощён и за списком доступных параметров теперь перенаправляет на Портал поддержки
    • В помощнике отображаются только те параметры, варианты значений для которых формируются автоматически и являются динамическими, разными на каждом отдельном сайте
  • Доработан класс для управления контентом:
    • Устранены недочёты при создании записей по умолчанию

Zion WebEngine База данных/Таблицы данных Классы Контент/Контентные единицы Меню/Списки/Навигация Панель инструментов Помощники/Мастеры/Инструкции/Подсказки Плагин Menu

Zion WebEngine 20.02.17
  • Доработан класс для управления типами (спасибо Строительные машины):
    • Устранены недочёты при сохранении типа в том случае, когда для него не указан шаблон по умолчанию

Zion WebEngine Классы Типы Шаблоны контента

Zion WebEngine 20.02.15
  • Доработан класс для управления миграцией со старых версий CMS (спасибо Пермский крепёж):
    • Более продуманно организована миграция характеристик

Zion WebEngine Что такое CMS Zion WebEngine? Классы Миграция Характеристики/Разновидности

Zion WebEngine 20.02.14
  • Доработан класс для управления миграцией со старых версий CMS (спасибо Пермский крепёж):
    • Улучшена миграция свойств эскизов и изображений для товаров
    • Улучшена миграция характеристик и групп характеристик, а также списков характеристик и списков групп характеристик
    • Более продуманно организована миграция единиц измерения

Zion WebEngine Изображение Классы Меню/Списки/Навигация Миграция Сайт-каталог Свойства Характеристики/Разновидности Эскизы

Zion WebEngine 20.02.13
  • Доработан класс для управления миграцией со старых версий CMS (спасибо Пермский крепёж):
    • Расширен набор опций, с помощью которых можно управлять миграцией
    • Реализована миграция эскизов и изображений для категорий товаров
    • Теперь доступна полноценная миграция с Zion WebEngine X6.05.11
    • Раширены возможности для использования нестандартной миграции
    • Улучшено миграция SEO-параметров для категорий товаров

Zion WebEngine Zion WebEngine X6.05.11 Что такое CMS Zion WebEngine? SEO-параметры Изображение Категории Классы Миграция Сайт-каталог Эскизы

Zion WebEngine 20.02.12
  • Доработан плагин Meta (спасибо Вечная память):
    • Устранены некоторые недочёты предыдущей версии
  • Доработан класс для управления проектом и элемент Место в структуре:
    • Повышена совместимость со старыми версиями CMS

Zion WebEngine Zion SEO Booster SEO-параметры Адрес (URL)/ЧПУ/Переадресация Классы Место в структуре Плагины Элементы Элемент "Место в структуре"

Zion WebEngine 20.02.11
  • Доработан класс для управления навигацией:
    • Скорректированы некоторые подсказки
  • Доработан класс для управления проектом (спасибо Отель "Атриум"):
    • Реализована возможность определять, запущен ли проект на локальном или на "боевом" веб-сервере
      • Благодаря этой возможности оптимизирована система мониторинга для интерфейса администратора, Zion SEO Booster, cURL, reCAPTCHA, SMS-шлюза и SMTP
    • Упразднена опция Использовать человекопонятные URL (ЧПУ) (спасибо Гид по Тоскане):
      • Подразумевается, что ЧПУ теперь всегда включен:
        • Благодаря этому оптимизирована работа объявлений и их категорий, опросов, плагина Meta и класса для управления миграцией со страых версий CMS

Zion WebEngine Zion Mail Back Zion SEO Booster Zion Bulletins Board Zion Polls Что такое Административный интерфейс и Гостевой интерфейс? PHP SEO-параметры SMS SMTP/PHP-mail Административный интерфейс Адрес (URL)/ЧПУ/Переадресация Веб-сервер/Хостинг Категории Классы Меню/Списки/Навигация Миграция Мониторинг Объявления Опросы/голосования Плагины Помощники/Мастеры/Инструкции/Подсказки Спам

Zion WebEngine 20.02.07
  • Доработан класс для работы с миграцией со старых версий CMS (спасибо Строительные машины):
    • Более корректно осуществляется поиск класса для нестандартной миграции
    • Более корректно конвертируются SEO-параметры
    • Более корректно конвертируются характристики для товаров
  • Доработан класс для работы с галереями:
    • Скрыты подсказки, отправляющие на компоненты недоступные в комплекте поставки

Zion WebEngine Zion Gallery Что такое CMS Zion WebEngine? SEO-параметры Галереи/Слайды Классы Миграция Помощники/Мастеры/Инструкции/Подсказки Сайт-каталог Характеристики/Разновидности

Zion WebEngine 20.02.05
  • Доработан элемент Место в структуре (спасибо Good Авто):
    • Устранена проблема с некорректными запросам к БД в случаях, когда нужно скрывать в структуре записи более, чем одного типа

Zion WebEngine База данных/Таблицы данных Место в структуре Типы Элементы Элемент "Место в структуре"

Zion WebEngine 20.01.28
  • Доработан настраиваемый модуль для доставки через СДЭК (спасибо Чистая магия):
    • Актуализирована инструкция по настройке способов доставки в связи с изменениями на сайте СДЭК
  • Доработано меню администратора для пакета Zion Sender:
    • Улучшена совместимость рассылок с другими пакетами
  • Доработан класс для управления SMS-уведомлениями (спасибо Color House):
    • Дополнена инструкция по настройке SMS-шлюза
  • Доработан класс для управления корзиной заказов:
    • Теперь более тщательно отслеживается необходимость заполнения обязательных полей в форме заказа в интернет-магазине
  • Класс для работы с почтой перенесён из пакета Zion Mail Back в Ядро (спасибо Лидия Никонова):
    • Он может быть нужен в базовой поставке, например, для восстановления пароля пользователя
  • Доработан класс для управления навигацией:
    • Более корректно сформулирована подсказка по доступным условия в зависимости от комплекта поставки
  • Доработаны элемент HTML-кодом веб-страницы, а также класс и плагин для работы с галереями (спасибо Якудза):
    • Ранее доступное только для меню условие IS_HOUR<значение??истина::ложь, теперь стало доступно для использования в оформлении галерей и HTML-кода веб-страницы:
      • С его помощью можно применять разное оформление в зависимости от того, наступил ли указанный в значении час:
        • Может быть полезно, например, в тех случаях, если Вы принимаете заказы не круглосуточно

Zion WebEngine Zion Catalog Zion Mail Back Zion xDelivery Zion Gallery Zion Sender Что такое Комплект поставки? Email-сообщения HTML-код веб-страницы SMS Галереи/Слайды Доступы/Пользователи Интернет-магазин Классы Корзина для заказов Меню/Списки/Навигация Меню администратора Настраиваемые модули Плагины Помощники/Мастеры/Инструкции/Подсказки Рассылки СДЭК Способы доставки/самовывоза Условия Формы Элементы

Zion WebEngine 20.01.27
  • Доработан класс для управления базой данных:
  • Доработаны классы для управлениями типами контента и местом в структуре:
    • Стала доступна возможность скрывать при выборе места в структуре записи любых типов:
      • Для каждого типа это настраивается отдельно в разделе Справочники \ Типы:
        • Доступно при наличии в комплекте постави Zion Pub Hub или Zion Catalog
      • Может быть полезно, если у Вас очень много новостей, статей или товаров, у которых не может быть подразделов, но которые при этом отображаются в дереве подразделов, что сильно затрудняет поиск нужного надраздела
  • Доработан класс для управления элементом контента Дата:
    • Учтены особенности браузера Apple Safari, который обрабатывает даты не по общепринятым стандартам в отличии от других браузеров:
      • Данный браузер НЕ РЕКОМЕНДУЕТСЯ для пользователей Windows, так как для этой платформы его разработка завершена и последние версии давно устарели
  • Компоненты, необходимые для работы с reCAPTCHA перенесены из ядра в пакет Zion Mail Back

Zion WebEngine Zion UserControl Zion Catalog Zion Mail Back Zion Pub Hub Что такое Комплект поставки? База данных/Таблицы данных Веб-браузер Дата/Время/TimeMashine Доступы/Пользователи Классы Контент/Контентные единицы Кэш/Кеш Место в структуре Сайт-каталог Спам Типы Элементы

Zion WebEngine 20.01.23
  • Доработан класс для интеграции с Gifts.Ru (спасибо ZS-Moskva):
    • При импорте изображений учтена вероятность использования недопустимых символов в именах файлов

Zion Import Изображение Импорт/Экспорт Классы Кодировки/Наборы символов Файлы/Папки

Zion WebEngine 20.01.22
  • Доработан класс для интеграции с Gifts.Ru (спасибо ZS-Moskva):
    • Переработан алгоритм скрытия категорий, в которых нет ни одного товара

Zion Import Импорт/Экспорт Категории Классы Сайт-каталог

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

Как импортировать данные о пользователях из 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-параметры