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

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 X6.05.26
  • Доработан сбор статистики о версиях установленных пакетов
  • Пока в тестовом режиме реализовано уведомление пользователей CMS о наличии новых версий
  • Доработана лента новостей: стало удобнее настраивать оформление того, что стоит отобразить, если по указанному запросу (или в выбранной категории) ни одной новости не найдено
  • Добавлены два новых типа данных для характеристик товаров в каталоге: "один из вариантов" и "несколько вариантов" (данный функционал пока находится в стадии тестирования)
  • Исправлена информация об авторских правах для доработанных компонентов

Zion Catalog Zion Server Zion News Line Выбор нескольких вариантов Выбор одного из вариантов Категории Контент/Контентные единицы Уведомления Характеристики/Разновидности

Zion WebEngine X6.05.19
  • Оптимизирован дистрибутив голосований, хаба публикаций и онлайн-оплаты через Visa Qiwi Wallet

Zion Pub Hub Zion Qiwi Zion Polls Qiwi Касса Контент/Контентные единицы Опросы/голосования Способы оплаты

Zion WebEngine X6.05.13
  • Доработана система мониторинга для каталога товаров (спасибо Якудза)
  • Доработано клонирование и удаление записей в базах данных: теперь учитываются дополнительные поля контента
  • Устранены ошибки при сохранении множественных полей контента в страницах и новостях

Zion WebEngine Zion Catalog Zion News Line База данных/Таблицы данных Контент/Контентные единицы Мониторинг Сайт-каталог

Zion WebEngine X6.05.12
  • Устранена ошибка при закачке эскизов для категорий товаров, новостей и статей (спасибо Пермский Крепёж)

Zion Catalog Zion Articles Tree Zion News Line Категории Контент/Контентные единицы Сайт-каталог Эскизы

Zion WebEngine X6.05.11
  • Удалены некоторые рудименты из Интерфейса администратора
  • Продолжена работа по плавному переходу на MySQLi

Zion WebEngine Административный интерфейс

Zion WebEngine X6.05.10
  • Налажено отображение панели поддержки в Интерфейсе администратора. Портал поддержки пока находится в стадии разработки

Zion WebEngine Zion Server Административный интерфейс

Zion WebEngine X6.05.08
  • Вставка видео с YouTube и других видео-хостингов стала значительно проще: больше нет необходимости править HTML-код, а вставка видео конкретно с YouTube доступна и через указание ссылки (спасибо Молот-Прикамье)

CKeditor Zion Edition HTML-код веб-страницы Редактор контента/WYSIWYG-редактор

Zion WebEngine X6.05.03
  • Доработана Авторизация администратора (спасибо Теплодом)
  • Улучшено отображение писем о восстановлении логина и пароля администратора для сайтов на кириллических доменах (спасибо Энерго-Профи)
  • В письмах из формы обратной связи теперь присутствует ссылка на страницу, с которой была сделана отправка для лучшего понимания потребностей Вашего клиента (спасибо Сайт-Пермь.РФ)
  • Ускорена загрузка настроек и списков записей для ядра, ленты новостей, автоматической SEO-оптимизации, каталога товаров, доски объявлений, менеджера баннеров, дерева статей и редактора контента FCKeditor за счёт открытия мастеров плагинов и свойств на отдельных страницах Интерфейса администратора
  • Оптимизирован дистрибутив менеджера баннеров и библиотеки Lightbox
  • Расширен набор доступных параметров запуска для некоторых плагинов для ленты новостей, дерева статей и доски объявлений
  • Доработана система мониторинга для ленты новостей и дерева статей
  • Использование эскизов и изображений теперь стало доступно для категорий не только товаров, но и новостей и статей
  • Мастера вставки свойств статей и новостей доработаны для использования нового функционала
  • Сделаны некоторые доработки в использовании свойств товаров, новостей и статей
  • Доработано определение активной категории в каталоге товаров и в дереве статей
  • Исправлена информация об авторских правах для доработанных компонентов

Zion WebEngine Zion Catalog Zion Mail Back Zion SEO Booster Zion Banners Manager Zion Bulletins Board Lightbox Zion Edition Zion Articles Tree Zion News Line FCKeditor Zion Edition Email-сообщения SEO-параметры Административный интерфейс Баннеры Галереи/Слайды Доступы/Пользователи Изображение Категории Кодировки/Наборы символов Контент/Контентные единицы Мониторинг Объявления Обратная связь/Обратный звонок Плагины Помощники/Мастеры/Инструкции/Подсказки Редактор контента/WYSIWYG-редактор Сайт-каталог Свойства Формы Эскизы

Zion WebEngine X6.04.28
  • Доработана система мониторинга ядра: скрыта часть уведомлений об успешном применении необходимых параметров + внесены коррективы в сбор статистики
  • Создан пакет Zion WebEngine Server, с которым теперь будут "общаться" сайты всех пользователей нашей CMS
  • Сделаны некоторые доработки для более удобной работы с кириллическими доменами
  • Расширен функционал для конвертации различных данных

Zion WebEngine Zion Server Кодировки/Наборы символов Мониторинг Уведомления

Zion WebEngine X6.04.27
  • Доработана система мониторинга ядра для нужд разрабатываемого в данный момент автоматического обновления Zion WebEngine

Zion WebEngine Zion Server Мониторинг Обновления CMS

Zion WebEngine X6.04.22
  • Доработаны опции отображения каталога товаров, ленты новостей, дерева статей и доски объявлений: упростилось использование некоторых HTML-тегов (спасибо Притолюк.РФ)

Zion Catalog Zion Bulletins Board Zion Articles Tree Zion News Line Контент/Контентные единицы Объявления Сайт-каталог

Zion WebEngine X6.04.20
  • Начат плавный переход базы данных с OKDB на MySQLi
  • Доработана система мониторинга для ядра
  • Минимальными системными требованиями теперь являются наличие PHP 5.3 и (для тех, кто планирует обновиться до более свежих версий Zion WebEngine) MySQL 4.1.3

Zion WebEngine PHP База данных/Таблицы данных Мониторинг

Zion WebEngine X6.04.19
  • Реализована возможность для каждого товара указывать неограниченное количество модификаций (спасибо Якудза)
  • Доработаны настройки для всех видов меню
  • Доработаны заказы в интернет-магазинах (они также учитывают модификации товаров), плюс некоторые обработчики переписаны с нуля и работают более эффективно
  • Доработана система мониторинга для каталога. В частности она автоматически обновляет формат базы данных для реализации поддержки модификаций товаров
  • Для работы с меню или списком товаров, а также для работы с выбранным товаром введён новый тернарный оператор, позволяющий задать разные оформление и функционал в зависимости от того, сколько у товара модификаций
  • Доработан алгоритм отслеживания последних просмотренных товаров. В частности для отображения последних просмотренных товаров теперь нет необходимости использовать отдельный специальный плагин LastItems (он удалён из дистрибутива). Отображение последних просмотренных товаров реализовано в плагине меню товаров (CatalogMenu) (спасибо Якудза)
  • Для плагина меню характеристик (CatalogPropMenu) добавлена возможность отображать название модификации товара перед списком других его характеристик. Также в нём добавлен параметр onlyitems, которые отображает только указанные через запятую характеристики (при использовании этого параметра все найденные по другим условиям характеристики игнорируются) (спасибо Якудза)
  • Начаты работы по созданию портала поддержки: скоро Вы сможете задавать свои вопросы и получать на них ответы прямо в Интерфейсе администратора. У некоторых наших клиентов уже есть такая возможность, но они при этом не могут видеть ответы на часто задаваемые вопросы. Так же можно будет поделиться своими идеями по улучшению движка и улучшить имеющиеся на данный момент мануалы (инструкции)
  • Исправлена информация об авторских правах для доработанных компонентов

Zion WebEngine Zion Catalog Zion Server Административный интерфейс База данных/Таблицы данных Интернет-магазин Корзина для заказов Меню/Списки/Навигация Мониторинг Обработчики Плагины Помощники/Мастеры/Инструкции/Подсказки Сайт-каталог Условия Характеристики/Разновидности

Zion WebEngine X6.04.11
  • Доработан файл robots.txt для более корректного задания параметров индексирования сайта. В частности запрещено индексирование страницы авторизации в Интерфейсе администратора

Zion SEO Booster SEO-параметры Административный интерфейс

Zion WebEngine X6.04.08
  • Доработано указание опций проекта
  • Доработан алгоритм автоматического создания идентификаторов для страниц и других элементов контента
  • Улучшена совместимость с PHP 5.6
  • Использование кириллических идентификаторов сделано опциональным (временно не доступно и не рекомендуется для использования на Unix-серверах)
  • Исправлена информация об авторских правах для доработанных компонентов

Zion WebEngine PHP База данных/Таблицы данных Веб-сервер/Хостинг Кодировки/Наборы символов Контент/Контентные единицы

Zion WebEngine X6.04.07
  • Устранена проблема с файл-менеджером, приводившая к скрытию всех изображений на веб-страницах (спасибоiRobot)
  • Доработана система мониторинга для ядра

Zion WebEngine Изображение Мониторинг Файл-менеджер

Zion WebEngine X6.04.06
  • Устранена ошибка при редактировании, сохранении и отображении новостей, и страниц для которых создано несколько полей контента
  • Из дистрибутива файл-менеджера удалены лишние компоненты
  • Файл-менеджер теперь позволяет загружать сразу несколько файлов
  • В Файл-менеджере доступен предпросмотр изображений
  • Доработаны и адаптированы друг под друга настройки обоих редакторов контента и файл-менеджера
  • Налажена интеграция редактора контента CKEditor с библиотекой для создания фото-галерей Lightbox
  • Оптимизирована система мониторинга для ядра

Zion WebEngine Lightbox Zion Edition Zion News Line CKeditor Zion Edition FCKeditor Zion Edition Галереи/Слайды Изображение Контент/Контентные единицы Мониторинг Редактор контента/WYSIWYG-редактор Файл-менеджер Файлы/Папки

Zion WebEngine X6.04.05
  • Устранена ошибка в плагине списка последних просмотренных в каталоге товаров (спасибо Якудза)
  • Доработаны авторизация и восстановление доступа администратора сайта
  • Адаптирована самая свежая на данный момент версия редактора контента CKEditor 4.5.8 (спасибо iRobot)
  • Повышена безопасность при работе с редактором контента FCKEditor
  • Адаптирована самая свежая на данный момент версия файл-менеджера KCFinder 3.12
  • Повышены минимальные системные требования до PHP 5.3. Рекомендованные - до PHP 5.6
  • Исправлена информация об авторских правах для доработанных компонентов

Zion WebEngine Zion Catalog CKeditor Zion Edition FCKeditor Zion Edition PHP Доступы/Пользователи Плагины Редактор контента/WYSIWYG-редактор Сайт-каталог Файл-менеджер

Zion WebEngine X6.04.04
  • Доработаны дистрибутивы ядра и обоих редакторов контента
  • Доработан алгоритм загрузки драйверов: при наличии нестандартных драйверов (в том числе от сторонних разработчиков) могла возникнуть ошибка
  • Устранена вероятность неработоспособности тернарных операторов, позволяющих делать исключения и особые варианты оформления при отображении списка статей, объявлений, товаров, новостей и их категорий, а также страниц, результатов поиска, элементов всех меню, характеристик и групп характеристик товаров (спасибо Якудза)
  • Важно! Старый синтаксис тернарного оператора [условие?истина::ложь] не совместим с новым синтаксисом [условие??истина::ложь]

Zion WebEngine Zion Catalog Zion SEO Booster Zion Bulletins Board Zion Articles Tree Zion News Line CKeditor Zion Edition FCKeditor Zion Edition Драйверы Категории Контент/Контентные единицы Меню/Списки/Навигация Объявления Поиск текста Редактор контента/WYSIWYG-редактор Сайт-каталог Условия Характеристики/Разновидности

Zion WebEngine X6.03.24
  • Доработано отображение и редактирование страниц, дерева статей, менеджера баннеров, доски объявлений, каталога товаров, ленты новостей и рассылаемых писем (спасибо АМД)
  • Доработано клонирование объектов
  • Внесены некоторые коррективы в работу с эскизами для новостей, статей и товаров
  • Временно отключено использование кириллических идентификаторов

Zion WebEngine Zion Catalog Zion Mail Back Zion Banners Manager Zion Bulletins Board Zion Articles Tree Zion News Line База данных/Таблицы данных Баннеры Кодировки/Наборы символов Контент/Контентные единицы Объявления Рассылки Сайт-каталог Эскизы