Формы поиска
Выберите инструмент для разработки с 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: url и attribute: action. Найденное значение записывается в формате #landing<ID>, где ID — идентификатор страницы результатов.
Примеры штатных блоков
59.1.search59.2.search_sidebar59.3.search_dark
Как собрать свой блок формы
- Посмотрите манифест штатного блока методом landing.block.getmanifestfile, передав код блока из списка выше.
- Опишите в своем манифесте
subtype: searchс параметрамиtype: formиresultPage, а также атрибутactionдля селектора формы. - Зарегистрируйте блок методом landing.repo.register, передав манифест в параметре
manifest. - Добавьте блок на страницу методом landing.landing.addblock. Ссылку на страницу результатов система подставит на этом шаге.
- Проверьте значение атрибута методом landing.block.getcontent с параметром
editMode = true— без него вернется опубликованная версия блока. Если нужно указать другую страницу, запишите ее методом landing.block.updateattrs.
Права и ограничения
Scope:
landingКто может выполнять метод: в зависимости от метода
Ограничения:
- подтип срабатывает один раз, при добавлении блока на страницу. Для блоков, которые уже стоят на странице, ссылка в
actionне обновляется - в
actionможно подставить только страницу текущего сайта: произвольный URL и привязка к блоку для этого атрибута отключены - если
resultPageне указан, страница результатов не подставляется. Ее выбирают вручную в настройках блока или записывают методом landing.block.updateattrs - при переносе конфигурации сайта между Битрикс24 подготовка манифеста не выполняется, поэтому страница результатов не создается
- штатные блоки формы предназначены для сайтов типов
knowledgeиgroup - подтип отвечает только за ссылку в форме. Что настроить на самой странице результатов, описано в статье Результаты поиска