Поиск по сайту

Поиск по сайту

Тип страницы search добавляет на сайт форму поиска с выдачей результатов.

Как включить

Добавьте запись в таблицу navigation:

  • page_type: search
  • url: search (или любой другой)
  • location: header (или где нужно)

Поиск автоматически заработает по адресу /search (или вашему url).

Что ищет

Поиск проходит по всем таблицам, указанным как source_table в активных записях navigation, плюс всегда таблица pages.

Из каждой таблицы выбираются текстовые колонки (TEXT, VARCHAR) — кроме служебных: status, slug, url, image, email, phone, password, token, api_key.

Результаты

  • Заголовок берётся из колонки title → name → summary (первая найденная)
  • URL строится автоматически: для pages — /{slug}, для dynamic-таблиц — /{nav_url}/{item_slug}
  • Сниппет: 150-200 символов вокруг первого найденного слова
  • Подсветка: <mark>...</mark> вокруг искомого слова
  • Сортировка: по релевантности (точное совпадение в заголовке > частичное)

Шаблон

search.html.twig — находится в ядре (core_lib/front/app/views/). Проект может переопределить, создав свой front/app/views/search.html.twig.

Безопасность

  • Системные таблицы (system_settings, navigation, sqlite_sequence, visit_stats) исключены из поиска
  • Пароли, токены, API-ключи — колонки исключены по имени
  • Поиск только по активным записям (status='active')
  • Минимальная длина запроса: 2 символа