Формы поиска

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Формы поиска — это блоки с полем ввода и кнопкой отправки. Они передают запрос на страницу результатов поиска.

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

Такие блоки описывают подтипом search с параметром type: form в манифесте блока. Подтип отвечает за одно: подставить в форму ссылку на страницу результатов.

Что нужно для работы блока

Минимальный набор:

  • тег <form>
  • поле ввода для поискового запроса
  • кнопка отправки формы
  • атрибут action, настроенный через ключ attrs манифеста

Пример описания атрибута формы:

'attrs' => [
    '.landing-block-node-form' => [
        'name' => 'Search result page',
        'attribute' => 'action',
        'type' => 'url',
        'allowedTypes' => [
            'landing',
        ],
        'disableCustomURL' => true,
        'disallowType' => true,
        'disableBlocks' => true,
    ],
],

В штатных блоках атрибут action задается для селектора .landing-block-node-form. Ключи примера:

  • type: url — поле выбора ссылки в редакторе
  • attribute: action — DOM-атрибут, куда сохранится ссылка
  • allowedTypes: ['landing'] — ограничение выбора страницами сайта
  • disableCustomURL, disallowType, disableBlocks — запрет на ручной ввод адреса, смену типа ссылки и выбор блока

Общие поля атрибута и его типы разобраны в статье Атрибуты.

Как работает subtype: search

Пример описания подтипа:

'block' => [
    'subtype' => 'search',
    'subtype_params' => [
        'type' => 'form',
        'resultPage' => 'search-result',
    ],
],

После добавления блока система:

  • ищет на текущем сайте страницу с шаблоном search-result
  • если страница найдена, подставляет ее в action
  • если страницы нет, создает ее по шаблону и затем подставляет в action

Параметры подтипа:

Параметр

Что задает

type

Роль блока в сценарии поиска. Поддерживается одно значение — form. С другим значением или без параметра подтип манифест не меняет

resultPage

Код шаблона страницы результатов. По нему система ищет страницу на текущем сайте в поле TPL_CODE, а если не находит, создает страницу по этому шаблону

Чтобы подставить ссылку, система ищет в манифесте атрибут с type: url и attribute: action. Найденное значение записывается в формате #landing<ID>, где ID — идентификатор страницы результатов.

Примеры штатных блоков

  • 59.1.search
  • 59.2.search_sidebar
  • 59.3.search_dark

Как собрать свой блок формы

  1. Посмотрите манифест штатного блока методом landing.block.getmanifestfile, передав код блока из списка выше.
  2. Опишите в своем манифесте subtype: search с параметрами type: form и resultPage, а также атрибут action для селектора формы.
  3. Зарегистрируйте блок методом landing.repo.register, передав манифест в параметре manifest.
  4. Добавьте блок на страницу методом landing.landing.addblock. Ссылку на страницу результатов система подставит на этом шаге.
  5. Проверьте значение атрибута методом landing.block.getcontent с параметром editMode = true — без него вернется опубликованная версия блока. Если нужно указать другую страницу, запишите ее методом landing.block.updateattrs.

Права и ограничения

Scope: landing

Кто может выполнять метод: в зависимости от метода

Ограничения:

  • подтип срабатывает один раз, при добавлении блока на страницу. Для блоков, которые уже стоят на странице, ссылка в action не обновляется
  • в action можно подставить только страницу текущего сайта: произвольный URL и привязка к блоку для этого атрибута отключены
  • если resultPage не указан, страница результатов не подставляется. Ее выбирают вручную в настройках блока или записывают методом landing.block.updateattrs
  • при переносе конфигурации сайта между Битрикс24 подготовка манифеста не выполняется, поэтому страница результатов не создается
  • штатные блоки формы предназначены для сайтов типов knowledge и group
  • подтип отвечает только за ссылку в форме. Что настроить на самой странице результатов, описано в статье Результаты поиска

Продолжите изучение