Формы поиска

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

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

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

Для таких блоков в landing используется subtype: 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.

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

Если в манифесте указать:

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

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

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

resultPage — код шаблона страницы результатов поиска. Подстановка выполняется в afterAdd, сразу после добавления блока.

Что важно учитывать

  • подтип работает, когда в subtype_params указан type: form
  • система ищет в манифесте атрибут с type: url и attribute: action
  • в штатных блоках для этого используется селектор .landing-block-node-form
  • если resultPage не указан, подтип не подставит страницу результатов автоматически
  • страница результатов ищется на текущем сайте по коду шаблона TPL_CODE
  • при переносе конфигурации через AppConfiguration::inProcess() подготовка манифеста не выполняется

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

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

Чтобы форма поиска работала корректно, настройте атрибут action и укажите шаблон страницы результатов в resultPage.

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