Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
Вопрос, подкупающий своей новизной. Часто ли вам встречались иллюстрации в результатах поисковой выдачи на сайтах? В гигантах Яндекс и Google и то не так давно появилось это полезное и приятное усовершенствование. Не будем вдаваться в историю, но просто расскажем, как устроить это на «Битрикс».
Способ первый:
Добавим в стандартный компонент поиска код:
А точнее:
Бывает так, что в инфоблок не добавлено изображение. Чтобы не выводить пустой квадратик, добавим в компонент условие:
Способ второй:
Прежде всего найдем в папке .default файл result_modifier.php. Точный путь:
/bitrix/templates/.default/components/bitrix/search.page/clear1/result_modifier.php
В самом конце, после закрывающего ?> добавим код:
Теперь отредактируем файл template.php, Точный путь:
/bitrix/templates/.default/components/bitrix/search.page/clear1/template.php
Выберем подходящее по структуре дизайна место и добавим в него код:
А как вывести другие свойства элементов в поиске, например, как вывести свойство с кодом PHONE?
Решение идентично второму способу.
В файл /bitrix/templates/.default/components/bitrix/search.page/clear1/result_modifier.php добавляем следующий код:
А файле шаблона /bitrix/templates/.default/components/bitrix/search.page/clear1/template.php выводим необходимые данные:
--------------------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!
Назад в раздел
Способ первый:
Добавим в стандартный компонент поиска код:
<? $grab = GetIBlockElement($arItem["ITEM_ID"]); $image1 = CFile::GetPath($grab["PREVIEW_PICTURE"]); $image2 = CFile::GetPath($grab["DETAIL_PICTURE"]); ?>
А точнее:
<? $grab = GetIBlockElement($arItem["ITEM_ID"];); $image_prw = CFile::GetPath($grab["PREVIEW_PICTURE"];); //$image2 = CFile::GetPath($grab["DETAIL_PICTURE"];); ?> <img src="<?=$image_prw;?>" width="60" height="45" alt="img" />
Бывает так, что в инфоблок не добавлено изображение. Чтобы не выводить пустой квадратик, добавим в компонент условие:
<?if($arResult["PREVIEW_PICTURE"]!='' && $arResult["DETAIL_PICTURE"]!=''):?> <? $grab = GetIBlockElement($arItem["ITEM_ID"]); $image_prw = CFile::GetPath($grab["PREVIEW_PICTURE"]); $image2 = CFile::GetPath($grab["DETAIL_PICTURE"]); ?> <img src="<?=$image_prw;?>" width="60" height="45" alt="img" /> <?endif?>
Способ второй:
Прежде всего найдем в папке .default файл result_modifier.php. Точный путь:
/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?>
А как вывести другие свойства элементов в поиске, например, как вывести свойство с кодом PHONE?
Решение идентично второму способу.
В файл /bitrix/templates/.default/components/bitrix/search.page/clear1/result_modifier.php добавляем следующий код:
if (count($arResult["SEARCH"]) > 0) { $arIDs = array(); foreach ($arResult["SEARCH"] as $si => $arItem) { if ($arItem["MODULE_ID"] == "iblock" && substr($arItem["ITEM_ID"], 0, 1) !== "S") { // связь: iblock_id => id : search_id $arIDs[ $arItem['PARAM2'] ][ $arItem["ITEM_ID"] ] = $si; } } CModule::IncludeModule('iblock'); foreach ($arIDs as $iblockId => $searchIds) { // для инфоблоков 2.0 передавать IBLOCK_ID для выбора свойств обязательно $grab = CIBlockElement::GetList(array(), array( "IBLOCK_ID" => $iblockId, "ID" => array_keys($searchIds) ), false, false, array( "ID", "IBLOCK_ID", "PREVIEW_PICTURE", // Указываем необходимые свойства, в данном случае PHONE "PROPERTY_PHONE" )); while ($ar = $grab->Fetch()) { $ar['PICTURE'] = CFile::GetFileArray($ar["PREVIEW_PICTURE"]); $si = $arIDs[ $iblockId ][ $ar["ID"] ]; $arResult["SEARCH"][ $si ]["ELEMENT"] = $ar; } } }
А файле шаблона /bitrix/templates/.default/components/bitrix/search.page/clear1/template.php выводим необходимые данные:
//... <?foreach($arResult["SEARCH"] as $arItem):?> //.... <p><?echo $arItem["ELEMENT"]['PROPERTY_PHONE_VALUE']?></p> //....
--------------------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!
Назад в раздел
Подписаться на новые материалы раздела: