Задать вопрос
@artyomunder
гуглю за ленивых

Как вывести изображение инфоблока?

Делается слайдер на самописном компоненте с применением GetNextElement. Вот в чем вопрос, как вывести картинки(Будь то превью или детальная). Сам компонент все выводит, кроме как раз картинки.

Component.php
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

CModule::IncludeModule('iblock');
$iblockId = $arParams['IBLOCK_ID'];
$arSelect = Array("ID", "NAME", "PREVIEW_TEXT", "DETAIL_TEXT", "PREVIEW_PICTURE", "DETAIL_PICTURE");
$arFilter = Array("IBLOCK_ID"=>$iblockId, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
while($ob = $res->GetNextElement())
{
    $arFields = $ob->GetFields();
    $arResult['DISPLAY_PROPERTIES'] = CIBlockFormatProperties::GetDisplayValue($arResult, 'image');
    $arResult[] = array(
        "ID" => $arFields["ID"],
        "NAME" => $arFields["NAME"],
        "PREVIEW_TEXT" => $arFields["PREVIEW_TEXT"],
        "PREVIEW_PICTURE " => $arFields["PREVIEW_PICTURE"],
        "DETAIL_PICTURE " => $arFields["DETAIL_PICTURE"]
    );
}
$this->IncludeComponentTemplate();
?>


template.php
<section class="slider">
    <? foreach ($arResult as $news):?>
        <div style="background: url('путь к картинке')" class="slide">
            <div class="container">
                <div class="text-slider"><?= $news['NAME'];?></div>
                <div class="under-text-slider"><?= $news['PREVIEW_TEXT'];?></div>
            </div>
        </div>
    <? endforeach; ?>
</section>


Если вывести массив $arResult, то там найдем идентификаторы изображения.
  • Вопрос задан
  • 1896 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
rpsv
@rpsv
делай либо хорошо, либо никак
\CFile::getFileArray($news['PREVIEW_PICTURE'])['SRC'] ?? 'default img src'

Читайте документацию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы