Вывод фотографий в результатах поиска Битрикс

В стандартной поставке малого бизнеса, бизнеса, да в прочем и всех остальных редакций 1С-Битрикс, отсутствуют изображения товаров в результатах поиска. С данной вещицей можно смириться на информационных сайтах, но для интернет-каталогов и магазинов, данный момент крайне важен.

Решение проблемы вывода фотографий на странице поиска

Для наиболее оптимального решения проблемы нам понадобится собрать массив для всех id, сделать один запрос для вызова GetList и выдать на гора массив $arResult с нужным нам результатом.

Для этого найдем и откроем файл result_modifier.php. В нашем случае он находится в папке по умолчанию .default, скорее всего у Вас он находится там же.

 /bitrix/templates/.default/components/bitrix/search.page/clear1/result_modifier.php

Дабы не запутаться, не перепутать скобки и т.п дребедень в файле, допишем в самом конце ( после ?> )

<?
if($arResult["SEARCH"]){
$arID = array();
foreach($arResult["SEARCH"] as $i => $arItem)
{
if($arItem["MODULE_ID"] == "iblock" && substr($arItem["ITEM_ID"], 0, 1) !== "S")
$arID[$arItem["ITEM_ID"]] = $i;
}
$grab = CIBlockElement::GetList(array(),array("ID" => 
array_keys($arID)),false,false,array("ID","IBLOCK_ID","PREVIEW_PICTURE")); while($ar = $grab->Fetch()){
$arResult["SEARCH"][$arID[$ar["ID"]]]["PICTURE"] = CFile::GetFileArray($ar["PREVIEW_PICTURE"]);
}}
?>
В самом шаблоне template.php,
 /bitrix/templates/.default/components/bitrix/search.page/clear1/template.php
вставляем в подходящее по дизайну место следующий код
<?if(is_array($arItem["PICTURE"])):?> 
<?img src="<?=$arItem["PICTURE"]["SRC"]?>" 
class="preview_picture" border="0" width="" height=""
alt="<?=$arItem["PICTURE"]["ALT"]?> title="<?=$arItem["PICTURE"]["ALT"]?>"> 
<?endif?>

Возврат к списку