Я хочу рассмотреть достаточно простой вариант кастумизации шаблона стандартного компонента битрикс bitrix:search.page с тем чтобы для элементов каталога выдавались маленькие картинки товара.
Естественно, мы хотим, чтобы код компонента не подвергся модификации — по этой причине мы будет использовать файл result_modifier.php, который нужно создать в папке с шаблоном компонента. В файле result_modifier.php пишем такой код:
<? foreach($arResult["SEARCH"] as &$arItem) { if ($arItem["PARAM1"]== "catalog" && $arItem["PARAM2"]== "4" && strpos($arItem["ITEM_ID"], "S")===false) { $res = CIBlockElement::GetByID($arItem["ITEM_ID"]); if($ar_res = $res->GetNext()) $arItem["PREVIEW_PICTURE"] = CFile::GetFileArray($ar_res["PREVIEW_PICTURE"]); } } ?>
Постараюсь несколько пояснить код. В $arItem[«PARAM1»] передается тип информационного блока, в $arItem[«PARAM2»] — ID информационного блока. Если мы хотим ограничить количество инфоблоков, для которых в поиске будут показываться картинки, то следует использовать эти параметры.
В $arItem[«ITEM_ID»] передается ID элемента информационного блока, либо секции элементов. Если мы хотим, чтобы картинки показывались только для элементов, то нам необходимо дополнительное условие strpos($arItem[«ITEM_ID»], «S»)===false, которое есть в моем коде.
Мы добавили картинку в поиск, но нам нужно еще, чтобы она появилась в самом шаблоне. Для этого модифицируем файл template.php
Находим строки:
<?foreach($arResult["SEARCH"] as $arItem):?> <a href="<?echo $arItem["URL"]?>"><?echo $arItem["TITLE_FORMATED"]?></a> <?echo $arItem["BODY_FORMATED"]?></p>
и изменяем их вот так:
<?foreach($arResult["SEARCH"] as $arItem):?> <a href="<?echo $arItem["URL"]?>"><?echo $arItem["TITLE_FORMATED"]?></a> <p><?if($arItem["PREVIEW_PICTURE"]):?><img src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" align="left" hspace="5" vspace="1"><?endif;?> <?echo $arItem["BODY_FORMATED"]?></p>
После этих манипуляций в выдаче поискового компонента появятся картинки.
Спасибо за сниппет. Немного поменял под себя.
Я рад, что этот код вам пригодился! :)