Как настроить вывод результата поиска одного товара в Битрикс?
Всем привет.
Прошу помощи. На сайте вывожу компонент каталога с нужным мне шаблоном на нужной странице. Это сделано для того, что для определенных юзеров показывался другой шаблон на странице, которую видят только они. В параметрах вывода каталога указаны нужные страницы для вывода результата.
Добавил на страницу компонент поиска search.title. Проблема в том, что если перейти по ссылке выбранного товара, он перекидывает на страницу общего каталога, а не на ту, у которой ограничен доступ.
Как настроить, чтобы поиск не перекидывал на общий каталог, а именно на тот, у которого ограничен доступ?
Никита Ермиличев, нет, у меня две разные страницы и 2 разных шаблона. На странице, которая доступна ограниченному кругу юзеров, я вывожу каталог со своими настройками, где детальный просмотр товаров идет тоже на странице для определенных юзеров. Вот теперь мне надо чтобы из поиска был переход на страницу детального просмотра именно на страницу, которая сделана для определенных юзеров
Юпитер Макс, у вас ссылка на детальную страницу берется из настроек инфоблока. Вам принципиально, чтобы каталоги находились на двух разных страницах? Если нет, то отобразите оба компонента каталога на одной странице и инициализируйте нужный в зависимости от прав (if else :) )
Никита Ермиличев, да, у меня есть раздел, который доступен только после авторизации определенных групп. Больше его никто не видит. Он полностью отличается от общего шаблона сайта. Соответственно у меня и 2 каталога
В $arResult шаблона search.title приходит ITEM_ID, который является ID элемента ИБ.
Сделайте условие на нужную группу пользователей и по этому условию формируйте URL по другому шаблону
В arResult есть массив найденных элементов. У каждого элемента заполнен ITEM_ID.
Собираете эти ITEM_ID и делаете запрос этих элементов с помощью CIblockElement::GetList
С помощью SetUrlTemplates задаете шаблон URL
$arIds = [];//Тут должен быть массив ранее собранных ITEM_ID
$IBLOCK_ID = 1;
$arSelect = ["ID", "NAME", "IBLOCK_ID"];
$arFilter = [
"IBLOCK_ID" => $IBLOCK_ID,//ID инфоблока с товарами
"ID" => $arIds,
];
$res = CIBlockElement::GetList(array("ID" => "ASC"), $arFilter, false, false, $arSelect);
$res->SetUrlTemplates("/catalog/#SECTION_CODE#/#ELEMENT_CODE#.php");//формируете свой шаблон URL для товаров
while ($arItem = $res->getNext()) {
//тут меняете URL из $arResult на полученный в $arItem
}