Информер курса валют ЦБ РФ   •   Магазин расширений
340 просм
2 комм
Поделиться:

Выводим изображения товара в результатах поиска в Bitrix

Довелось мне поработать на одном сайте, который находится на CMS Bitrix. Задача состояла в том, чтобы немного преобразить результаты поиска на сайте. Но проблема была в том, что по умолчанию битриксом не предусмотрен вывод изображений в поиске – а именно они мне и были нужны.

Задача это решается очень просто, и как именно, я сейчас расскажу.

В файле, отвечающем за вид результатов поиска внутри метода foreach (у меня этот был файл template.php в папке /bitrix/templates/название темы/components/bitrix/search.page/.default/), вы используете следующую конструкцию:

<?php

	$get_id_images = GetIBlockElement($arItem["ITEM_ID"]);
	$images_tumb = CFile::GetPath($get_id_images["PREVIEW_PICTURE"]);
	$image_full = CFile::GetPath($get_id_images["DETAIL_PICTURE"]);

?>

Переменные $images_tumb и $image_full содержат в себе ссылки на превью и полное изображение соответственно.

Пример вывода изображения:

<?php

	if($images_tumb != "") {

?>

	<img src="<?php echo $images_tumb; ?>">

<?php

	}

?>

Конструкция foreach, в которой я это использовал, выглядела примерно следующим образом:

<?foreach($arResult["SEARCH"] as $arItem):?>
	...
	Вид результатов поиска
	...
<?endforeach;?>

Помимо этого, вы можете создать условие, которое выведет ваше изображение у товаров, где свое изображение отсутствует. Это так называемое no photo.

Для этого строки:

$images_tumb = CFile::GetPath($get_id_images["PREVIEW_PICTURE"]);
$image_full = CFile::GetPath($get_id_images["DETAIL_PICTURE"]);

замените на:

$images_tumb = CFile::GetPath($get_id_images["PREVIEW_PICTURE"]);

if($images_tumb == "") {

	$images_tumb = "/no-photo.jpg"; // Ссылка на ваше изображение

}


$image_full = CFile::GetPath($get_id_images["DETAIL_PICTURE"]);

if($image_full == "") {

	$image_full = "/no-photo.jpg"; // Ссылка на ваше изображение
		
}

Вроде бы все. Остались вопросы – пишите о них в комментариях.

2
комментария
Александр
30.09 в 14:54
Здравствуйте! Подскажите пожалуйста решение по данной ситуации:

Вот результат страницы поиска:
http://prntscr.com/l0fme8

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

Пытался разобраться по примеру, не разобрался.

Как благодаря вашему коду вывести в результатах поиска картинку из карточки товара и раздел в котором находится товар?

http://prntscr.com/l0fmux - эта конструкция шаблона template.php компонентаsearch.page
а это из result.modifier этого же компонента:
http://prntscr.com/l0fnaw

много чего перепробовал, но что то не получается, ничего не выводится.
  • 0
Александр, самый быстрый вариант - это прислать нам доступы, можно через комментарии (ftp+админка). Так сможем точно сказать в чем проблема.
  • 0
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.