Вывод фотографий в результатах поиска Битрикс
В стандартной поставке Малого Бизнеса, Бизнеса, да в прочем и всех остальных редакций Битрикс, отсутствуют изображения товаров в результатах поиска. С данной вещицей можно смириться на информационных сайтах, но для интернет-каталогов и магазинов, данный момент крайне важен.
Решение проблемы вывода фотографий на странице поиска
Для наиболее оптимального решения проблемы нам понадобится собрать массив для всех 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="=$arItem["PICTURE"]["WIDTH"]?>" height="=$arItem["PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["PICTURE"]["ALT"]?> title="<?=$arItem["PICTURE"]["ALT"]?>"> <?endif?>
Вот и все, теперь в поиске видны фото и стало заметно удобнее.
