Документация для разработчиков
Темная тема

Поиск по заголовкам


Описание search.title

Компонент служит для вывода поля поиска по заголовкам, которые динамически отображаются по группам в выпадающем списке. В поставку продукта входят пять шаблонов компонента: .default, catalog, visual_old, bootstrap_v4 и visual.

Компонент относится к модулю Поиск.

Примечание: с версии 14.0.0 возможно размещение нескольких компонентов search.title на одной странице.



Параметры

Поле Параметр Описание
Основные параметры
Количество категорий поиска NUM_CATEGORIES Указывается количество категорий, которые будут выводиться в выпадающем списке.
Количество результатов в каждой категории TOP_COUNT Указывается количество выводимых результатов в каждой категории.
Сортировка результатов ORDER Задается направление для сортировки:
  • date - по дате;
  • rank - по релевантности.
Включить автоопределение раскладки клавиатуры USE_LANGUAGE_GUESS При отмеченной опции будет происходить автоматическое определение раскладки в которой набран поисковый запрос.
Искать только в активных по дате документах CHECK_DATES [Y|N] При отмеченной опции поиск будет осуществляться только в активных по дате элементах сайта.
Показывать категорию "прочее" SHOW_OTHERS [Y|N] При отмеченной опции в списке будет отображаться категория "прочее", в которую входит все остальное, кроме указанного в полях Ограничение области поиска.
Внешний вид
Секция доступна только для шаблона bootstrap_v4.
Цветовая тема TEMPLATE_THEME Задается цветовая тема для формы ввода поискового запроса. По умолчанию используется синяя тема (blue).
Шаблоны ссылок
Страница выдачи результатов поиска (доступен макрос #SITE_DIR#) PAGE Указывается путь от корня сайта (макрос #SITE_DIR#) к странице, на которой будут выведены результаты поиска.
Дополнительные настройки
Показывать форму ввода поискового запроса SHOW_INPUT [Y|N] При отмеченной опции форма ввода поискового запроса будет отображаться на странице. Данная опция удобна, например, для отключения формы поиска без потери настроек.
ID строки ввода поискового запроса INPUT_ID Указывается идентификатор строки ввода поискового запроса.
ID контейнера, по ширине которого будут выводиться результаты CONTAINER_ID Указывается идентификатор контейнера, по ширине которого будут выводиться выпадающее меню с результатами поиска.
Тип цены* PRICE_CODE Указываются типы цен для отображаемых элементов.
Включать НДС в цену* PRICE_VAT_INCLUDE [Y|N] При отмеченной опции цена на товар будет отображаться с учетом НДС.
Максимальная длина анонса для вывода* PREVIEW_TRUNCATE_LEN Задается максимальная длина анонса для вывода, после которой текст анонса товара будет отсечен.
Показать картинку* SHOW_PREVIEW [Y|N] При отмеченной опции будет отображаться картинка товара, при этом необходимо настроить параметры PREVIEW_WIDTH и PREVIEW_HEIGHT.
Ширина картинки* PREVIEW_WIDTH Ширина картинки в пикселах.
Высота картинки* PREVIEW_HEIGHT Высота картинки в пикселах.
Показывать цены в одной валюте* CONVERT_CURRENCY [Y|N] При отмеченной опции цены на товары будут показаны в одной валюте, при этом необходимо настроить параметры CURRENCY_ID.
Валюта, в которую будут сконвертированы цены* CURRENCY_ID Указывается валюта, в которую будут сконвертированы цены.
* - параметры, недоступные при использовании шаблона .default.
Категория [номер_категории]
Название категории CATEGORY_<номер_категории>_TITLE Указывается название категории, которое будет отображаться в выпадающем списке.
Ограничение области поиска CATEGORY_<номер_категории> Параметр служит для ограничения области поиска: статическими файлами (main), форумами (forum), одним из типов инфоблоков (iblock), определенных в системе, блогами (blog) или социальной сетью (socialnetwork). Можно также выбрать несколько из перечисленных источников информации либо выбрать пункт Не ограничивать.
Если выбрать:
  • [main] Статические файлы - то появляется для заполнения поле Путь к файлу начинается с любого из перечисленных, в котором можно указать путь к разделу или файлу, где будет осуществлен поиск, например, /about/. Если поле пусто, то поиск осуществляется во всех статических файлах системы.
  • [forum] Форумы - то ниже отображается поле со всеми форумами, созданными на сайте. Среди них можно выбрать один или несколько форумов либо выбрать вариант (все), тогда поиск будет осуществлен во всех форумах системы.
  • [iblock_<имя>] - один из типов инфоблоков (например, [iblock_news] Новости), то при нажатии кнопки ОК станут доступны все инфоблоки, созданные внутри выбранного типа. Среди них можно выбрать один или несколько инфоблоков либо выбрать вариант (все), тогда поиск будет осуществлен во всех инфоблоках этого типа.
  • [blog] Блоги - то при данном ограничении поиск будет осуществлен только во всех блогах системы;
  • [socialnetwork] Социальная сеть (группы) - то при данном ограничении поиск будет осуществлен только в рамках групп социальной сети;
  • [socialnetwork_user] Пользователь социальной сети - то при данном ограничении поиск будет осуществлен только среди пользователей социальной сети;
  • [crm] CRM - то при данном ограничении поиск будет осуществлен только по CRM;
  • [disk] Файлы диска - то при данном ограничении поиск будет осуществлен только файлам диска.

Внимание! Если компонент был добавлен в систему через обновления, то для его работы потребуется полная переиндексация. Подробнее про индексацию смотрите на странице Переиндексация.



Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:search.title","",Array( "SHOW_INPUT" => "Y", "INPUT_ID" => "title-search-input", "CONTAINER_ID" => "title-search", "PRICE_CODE" => array("BASE","RETAIL"), "PRICE_VAT_INCLUDE" => "Y", "PREVIEW_TRUNCATE_LEN" => "150", "SHOW_PREVIEW" => "Y", "PREVIEW_WIDTH" => "75", "PREVIEW_HEIGHT" => "75", "CONVERT_CURRENCY" => "Y", "CURRENCY_ID" => "RUB", "PAGE" => "#SITE_DIR#search/index.php", "NUM_CATEGORIES" => "3", "TOP_COUNT" => "10", "ORDER" => "date", "USE_LANGUAGE_GUESS" => "Y", "CHECK_DATES" => "Y", "SHOW_OTHERS" => "Y", "CATEGORY_0_TITLE" => "Новости", "CATEGORY_0" => array("iblock_news"), "CATEGORY_0_iblock_news" => array("all"), "CATEGORY_1_TITLE" => "Форумы", "CATEGORY_1" => array("forum"), "CATEGORY_1_forum" => array("all"), "CATEGORY_2_TITLE" => "Каталоги", "CATEGORY_2" => array("iblock_books"), "CATEGORY_2_iblock_books" => "all", "CATEGORY_OTHERS_TITLE" => "Прочее" ) );?>



Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Евгений Милютин
Сообщение не промодерировано, возможны ошибки и неточности.
По умолчанию контейнер с результатами выводится перед закрывающим тегом </body>
Если необходимо изменить место вывода результата необходимо локализовать компонент, в вызов компонента добавить
Код
...........
"CONTAINER_ID" => "title-search",

/*селектор ID*/
"CONTAINER_RESULT" => "search_result",
/*селектор ID*/

"CONVERT_CURRENCY" => "Y",
...........
в шаблоне компонента добавить
Код
...........
$CONTAINER_RESULT = trim($arParams["~CONTAINER_RESULT"]);
if($CONTAINER_RESULT == '')
   $CONTAINER_RESULT = "live-search";
$CONTAINER_RESULT = CUtil::JSEscape($CONTAINER_RESULT);
...........
и чуть ниже в скрипт
Код
...........
'CONTAINER_ID': '<?echo $CONTAINER_ID?>',
/**/
'CONTAINER_RESULT': '<?echo $CONTAINER_RESULT?>',
/**/
'INPUT_ID': '<?echo $INPUT_ID?>',
...........
В начале файла script.js локализованного компонента добавить
Код
...........
'CONTAINER_ID': arParams.CONTAINER_ID,
/**/
'CONTAINER_RESULT': arParams.CONTAINER_RESULT,
/**/
'INPUT_ID': arParams.INPUT_ID,
...........
в самом низу, в функции Init()
Код
...........
this.CONTAINER = document.getElementById(this.arParams.CONTAINER_ID);
/**/
this.CONTAINER_RESULT = document.getElementById(this.arParams.CONTAINER_RESULT);
/**/
BX.addCustomEvent(this.CONTAINER, "OnNodeLayoutChange", this._onContainerLayoutChange);
...........
чуть ниже в 2х местах заменить
Код
this.RESULT = document.body.appendChild(document.createElement("DIV"));
на
Код
this.RESULT = this.CONTAINER_RESULT.appendChild(document.createElement("DIV"));
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх