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

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 23.10.19
  • Доработан элемент Место в структуре (спасибо Куединский Мясокомбинат):
    • Устранены проблемы со скрытием записей определённых типов, которые нужно скрывать при отображении структуры
  • Доработаны административные JS-скрипты:
    • Перед живым поиском по административному интерфейсу теперь сначала происходит удаление пробельных символов из начала и конца поискового запроса:
      • Эти символы могли появиться при некорректном копировании какого-либо текста (который требуется найти) и могли затруднять поиск

Zion WebEngine Административный интерфейс Кодировки/Наборы символов Место в структуре Поиск текста Типы Элементы Что такое Тип контента?

Zion WebEngine 23.10.18
  • Доработан элемент Место в структуре (спасибо ТК Кило):
    • При формировании данных о структуре разделов реализована возможность организовать сортировку по любому полю и в любом направлении
    • Немного оптимизирован код формирования данных о структуре

Zion WebEngine Место в структуре Элементы Элемент "Место в структуре"

Zion WebEngine 23.10.17
  • Доработан класс для управления водяными знаками и файлы .htaccess по умолчанию (спасибо Moto-Retail18):
    • Теперь при создании изображений с водяными знаками применяется сжатие, что даёт значительное снижение размера изображений без потери качества, а также позволяет загружать изображения значительно быстрее
    • Налажено кэширование файлов в том числе с изображениями, расширение которых указано в верхнем регистре

Zion WebEngine Zion Gallery Как очистить кэш веб-браузера? Изображение Классы Кодировки/Наборы символов Кэш/Кеш Файлы/Папки

Zion WebEngine 23.10.13
  • Доработаны главные файлы гостевого и административного интерфейсов, классы для управления проектом и пользователями, а также вспомогательный класс для работы с изображениями (спасибо GL Technology):
    • Удалены некоторые архаизмы, которые могли, пусть и незначительно, но снижать производительность
    • Теперь при создании эскизов применяется 10%-ое сжатие, что даёт значительное снижение размера изображений без потери качества, а также позволяет загружать изображения значительно быстрее

Zion WebEngine Что такое Административный интерфейс и Гостевой интерфейс? Административный интерфейс Гостевой интерфейс Доступы/Пользователи Изображение Классы Эскизы

Zion WebEngine 23.10.11
  • Доработан элемент Место в структуре (спасибо Moto-Retail18):
    • Более продуманно организовано управление кэшем при определении пути к той или иной контентной единице
  • Доработан плагин универсального меню:
    • Устранены проблемы с автоматическим определением параметра factor при его не указании
  • Доработан класс для управления импортом данных о товарах из XML/1С (спасибо Белый и пушистый):
    • Теперь в именах файлов с изображениями для товаров могут использоваться любые символы в любой кодировке

Zion WebEngine Zion Import XML/RSS/1С/YML Изображение Импорт/Экспорт Классы Кодировки/Наборы символов Контент/Контентные единицы Кэш/Кеш Меню/Списки/Навигация Место в структуре Плагины Файлы/Папки Элементы Плагин Menu

Zion WebEngine 23.10.06
  • Доработан элемент Связи (спасибо ТК Кило):
    • Скорректирован HTML-код модального окна для настройки параметров связей

Zion WebEngine HTML-код веб-страницы Доступ Групп пользователей Связи Элементы Что такое Элементы?

Zion WebEngine 23.10.05
  • Доработан класс для управления импортом данных о товарах из XML/1С (спасибо Белый и пушистый):
    • Устранены проблемы с импортом данных о категориях товаров из файла с данными о товарах
  • Доработан инструмент Размеры файлов и папок:
    • Учтено возможное отсутствие некоторых таблиц данных при анализе того, используется ли тот или иной файл
    • Теперь очистка от неиспользуемых файлов может производиться в том числе в папке для импорта данных о товарах из XML/1C

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

Zion WebEngine 23.10.04
  • Доработаны классы для управления способами оплаты доставки (спасибо Сигнум):
    • Устранены проблемы при создании папок для хранения иконок способов оплаты и доставки
  • Доработан класс для управления экпортом данных в YML (спасибо Moto-Retail18):
    • Выгрузка данных для Товаров в сообществах VK.com учитывает новые требования данного веб-сервиса

Zion Catalog Zion Export XML/RSS/1С/YML Импорт/Экспорт Классы Способы доставки/самовывоза Способы оплаты Файлы/Папки Что такое Классы?

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

Zion WebEngine Доступ Групп пользователей Связи Элементы

Zion WebEngine 23.09.28
  • Доработан элемент Связи (спасибо ТК Кило):
    • Удалён устаревший, более не использующийся функционал

Zion WebEngine Связи Элементы Что такое Элементы?

Zion WebEngine 23.09.27
  • Доработана система мониторинга SEO-оптимизации (спасибо Moto-Retail18):
    • Приняты меры для устранения некорректного указания адресов веб-страниц при автоматическом формировании sItemap.xml

Zion SEO Booster SEO-параметры Адрес (URL)/ЧПУ/Переадресация Мониторинг Как создать sitemap.xml?

Zion WebEngine 23.09.26
  • Доработаны класс для работы с SMS-шлюзом:
    • Удалёны различные архаизмы

Zion WebEngine SMS Классы Что такое Классы?

Zion WebEngine 23.09.25
  • Доработан класс для управления базой данных (спасибо ТК Кило):
    • Теперь при просмотре списка пользователей в административном интерфейсе отображается название и ID соответствующей группы пользователей

Zion WebEngine Что такое Административный интерфейс и Гостевой интерфейс? Административный интерфейс База данных/Таблицы данных Доступ Групп пользователей Доступы/Пользователи Классы

Zion WebEngine 23.09.22
  • Доработаны элемент Связи и административные скрипты (спасибо ТК Кило):
    • Стал доступен вариант отображения не только развёрнутого, но и свёрнутого списка подразделов, доступных для установки связи:
      • Такой список загружается быстрее, но предоставляет тот же функционал
      • В некоторых случаях такой вариант отображения будет удобнее для поиска нужного раздела в структуре

Zion WebEngine Место в структуре Связи Элементы Что такое Элементы?

Zion WebEngine 23.09.21
  • Доработан класс для управления базой данных (спасибо ТК Кило):
    • Теперь для некоторых кнопок в административном интерфейсе можно отображать альтернативные подсказки
  • Доработаны элемент Связи и административные скрипты:
    • Различных параметров для настройки связей теперь стало больше:
      • Новые параметры: Описание и Цена
    • Все параметры связей теперь редактируются не в отдельных столбцах, а при нажатии по соответствующей новой кнопке Настроить связь:
      • При этом открывается модальное окно со всеми параметрами
      • Добавление, настройка и удаление связей теперь происходит быстрее и с затратой меньших ресурсов
      • Список связей теперь стал более лаконичным и загружается значительно быстрее и с затратой меньших ресурсов
      • При настройке элемента Связи в шаблоне теперь можно указать, какие параметры отобразить рядом с кнопкой Настроить связь:
        • При этом отображаться будут только непустые параметры

Zion WebEngine Административный интерфейс База данных/Таблицы данных Классы Помощники/Мастеры/Инструкции/Подсказки Связи Шаблоны контента Элементы Что такое Шаблон контента?

Zion WebEngine 23.08.17
  • Доработан плагин Meta (спасибо Феникс):
    • Теперь из заголовка, описания и ключевых слов автоматически удаляются двойные пробельные символы (в том числе переносы строк, символы табуляции, символы &nbsp; и т.д.), что чаще позволяет укладываться в лимиты поисковиков

Zion SEO Booster SEO-параметры Плагины Что такое Плагины?

Zion WebEngine 23.08.16
  • Доработан класс для управления проектом (спасибо Trade59):
    • Устранены проблемы с отображением количества доступных обновлений для CMS

Zion WebEngine Что такое CMS Zion WebEngine? Классы Обновления CMS

Zion WebEngine 23.08.15
  • Доработаны элементы Число и Изображение, а также административные JS-скрипты (спасибо Moto-Retail18):
    • Для формирования суммы прописью (например, для указания в счетах) теперь используется новый алгоритм, основанные на встроенных возможностях PHP:
      • Теперь поддерживает не только целые, но и дробные числа
      • Теперь работает не только более корректно, но и использует меньше ресурсов
    • Реализована возможность работать не только с изображениями из файл-менеджера, но и загружать изображения со сторонних сайтов:
      • Важно! Проверка файлов, загружаемых непосредственно со сторонних серверов, на вирусы, целостность, корректность и т.п. в момент загрузки недоступна, поэтому рекомендуется проверять папку с этими файлами /upload/image/external/, например, средствами Вашего хостинга

Zion WebEngine PHP Веб-сервер/Хостинг Изображение Файл-менеджер Число Элементы Что такое Элементы?

Zion WebEngine 23.08.07
  • Доработаны главный файл административного интерфейса и меню администратора для ядра (спасибо Moto-Retail18):
    • Устранены проблемы с отображением количества доступных обновлений для CMS

Zion WebEngine Что такое Меню администратора? Административный интерфейс Меню администратора Обновления CMS

Zion WebEngine 23.08.03
  • Доработан плагин Meta (спасибо MasterProfi):
    • Теперь из заголовка, описания и ключевых слов страницы автоматически удаляются переносы строк и двойные пробелы

Zion SEO Booster SEO-параметры Плагины Что такое Плагины?

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

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