|
Компонент AJAX-форма поиска с подсказками (askaron:askaron.search.form_ajax) размещается внутри шаблона или выше компонента Страница поиска (bitrix:search.page)
Компоненты имеют одинаковые настройки области поиска и способа поиска. Размещайте компоненты с одинаковыми настройками, чтобы разультаты подсказок поиска совпадали с тем, что будет на странице поиска.


Проще всего разместить компонент выше. Но при этом в нижнем компоненте bitrix:search.page скрыть форму поиска стилями
.my-search-container form
{
display: none;
}
Компонент
При этом стандартный компонент bitrix:search.page не умеет фильтровать по инфоблоку или разделу. Дополнительный фильтр передаётся с помощью глобальной переменной "FILTER_NAME" => "arrSearchFilter";
Метод \Askaron\Search\Tools::addFilterBySearchSection помогает превратить $_REQUEST["search_sections_filter"] в $arrSearchFilter
Пример страницы /search/index.php:
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Поиск");
?>
<?$APPLICATION->IncludeComponent(
"askaron:askaron.search.form_ajax",
".default",
array(
"COMPONENT_TEMPLATE" => ".default",
"FORM_CODE" => "f1",
"PAGE" => "#SITE_DIR#search/index.php",
"AJAX" => "Y",
"TOP_COUNT" => "10",
"RESTART" => "N",
"NO_WORD_LOGIC" => "Y",
"CHECK_DATES" => "N",
"USE_TITLE_RANK" => "N",
"DEFAULT_SORT" => "rank",
"FILTER_NAME" => "",
"arrFILTER" => array(
),
"SHOW_WHERE" => "N",
"arrWHERE" => array(
0 => "forum",
1 => "iblock_catalog",
2 => "iblock_news",
3 => "iblock_offers",
4 => "iblock_services",
5 => "blog",
),
"SHOW_IBLOCK_FILTER" => "Y",
"IBLOCK_TYPE_FILTER" => array(
0 => "catalog",
1 => "news",
2 => "",
),
"IBLOCK_TYPE_FILTER_SECTIONS" => "Y",
"IBLOCK_TYPE_FILTER_SECTIONS_TOP" => "Y",
"IBLOCK_TYPE_FILTER_SECTION_CODE" => "section_id",
"IBLOCK_ID_BY_TYPE_catalog" => array(
0 => "",
1 => "",
),
"IBLOCK_ID_BY_TYPE_news" => array(
0 => "17",
1 => "37",
2 => "",
),
"IBLOCK_ID_BY_TYPE_services" => array(
0 => "",
1 => "",
),
"IBLOCK_ID_BY_TYPE_askaron_regions" => array(
0 => "",
1 => "",
),
"IBLOCK_ID_BY_TYPE_testcatalog" => array(
0 => "",
1 => "",
),
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000",
"USE_LANGUAGE_GUESS" => "Y",
"BUTTON_TEXT" => "",
"SHOW_IBLOCK_TYPE" => "Y",
"SHOW_IBLOCK" => "Y"
),
false
);?>
<?php
global $arrSearchFilter;
$arrSearchFilter = [];
if (\Bitrix\Main\Loader::includeModule( "askaron.search" ))
{
$arrSearchFilter = \Askaron\Search\Tools::addFilterBySearchSection(
$arrSearchFilter,
$_REQUEST["search_sections_filter"] ?? "",
"section_id"
);
}
?>
<style>
.my-search-container
{
margin-top: 5px;
}
.my-search-container form
{
display: none;
}
</style>
<div class="my-search-container">
<?$APPLICATION->IncludeComponent(
"bitrix:search.page",
".default",
array(
"AJAX_MODE" => "N",
"AJAX_OPTION_ADDITIONAL" => "",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_SHADOW" => "Y",
"AJAX_OPTION_STYLE" => "Y",
"CACHE_TIME" => "36000000",
"CACHE_TYPE" => "A",
"CHECK_DATES" => "N",
"COMPONENT_TEMPLATE" => ".default",
"DEFAULT_SORT" => "rank",
"DISPLAY_BOTTOM_PAGER" => "Y",
"DISPLAY_TOP_PAGER" => "N",
"FILTER_NAME" => "arrSearchFilter",
"NO_WORD_LOGIC" => "Y",
"PAGER_SHOW_ALWAYS" => "N",
"PAGER_TEMPLATE" => "arrows",
"PAGER_TITLE" => "Результаты поиска",
"PAGE_RESULT_COUNT" => "25",
"PATH_TO_USER_PROFILE" => "",
"RATING_TYPE" => "",
"RESTART" => "N",
"SHOW_ITEM_DATE_CHANGE" => "N",
"SHOW_ITEM_TAGS" => "N",
"SHOW_ORDER_BY" => "N",
"SHOW_RATING" => "",
"SHOW_TAGS_CLOUD" => "N",
"SHOW_WHEN" => "N",
"SHOW_WHERE" => "N",
"USE_LANGUAGE_GUESS" => "Y",
"USE_SUGGEST" => "N",
"USE_TITLE_RANK" => "N",
"arrFILTER" => array(
0 => "no",
),
"arrFILTER_iblock_catalog" => array(
0 => "all",
),
"arrFILTER_iblock_news" => array(
0 => "all",
),
"arrFILTER_iblock_services" => array(
0 => "all",
),
"arrFILTER_main" => "",
"arrWHERE" => ""
),
false
);?>
</div>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Размещение компонента через визуальный редактор |
Описание курса
| Прием пожертвований
|