Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Свойства (тип: Файл) товара

00 голосов
6
Создал дополнительное свойство куда можно загрузить файл
(код свойства - «M_NEW__SV_BRENDS_10»).
Вывожу это свойство при помощи кода
Код
<? echo ($arResult[PROPERTIES][M_NEW__SV_BRENDS_10][VALUE]);?>
В результате отображается значение «255», а в админке битрикса после загрузки фото отображается адрес «/upload/iblock/709/o_2.jpg»

Попробовал вывести это фото при помощи кода
Код
<? echo ($arResult[PROPERTIES][M_NEW__SV_BRENDS_10][VALUE] [SRC]);?>
И
Код
<img border="0" src="<?=$arResult[PROPERTIES][M_NEW__SV_BRENDS_10][VALUE] [SRC]?>"/> 
И
Код
<img border="0" src="<?=$arResult[M_NEW__SV_BRENDS_10][SRC]?>"/>


Взяв за основу код:
Код
<img border="0" src="<?=$arResult["DETAIL_PICTURE"]["SRC"]?>"/>


Но не выходит, может кто-нибудь знает, как можно вывести фото?
спросил 13 Сен, 13 от Itkkb (180 баллов)

6 Ответы

00 голосов
Цитата
dimawebpage пишет:
В результате отображается значение «255»

Код
<?
$arFile = CFile::GetFileArray(255);
$arResult["YOUR_OWN_PICTURE"] = $arFile;
?>
<img src="<?= $arResult["YOUR_OWN_PICTURE"]["SRC"]?>" />
ответил 15 Сен, 13 от Arn4 (2,140 баллов)
00 голосов
Антон, Спасибо.
Получилось выводить свойство (фото) при помощи кода:

Код
<? $arFile = CFile::GetFileArray(($arResult[PROPERTIES][M_NEW__SV_BRENDS_10][VALUE])); 
$arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"] = $arFile; ?> 

<img src="<?= $arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"]["SRC"]?>"/>


где "M_NEW__SV_BRENDS_10" - код свойства.
ответил 13 Дек, 13 от Itkkb (180 баллов)
00 голосов
Антон, может быть Вы знаете, как обойти проблему с отображением пустого свойства? А то сейчас выводится пустая фотография.

Т.е. чтобы когда свойство не заполнено – отображалась надпись «нет фото»
А когда заполнено – отображался код
Код
<? $arFile = CFile::GetFileArray(($arResult[PROPERTIES][M_NEW__SV_BRENDS_10][VALUE])); 
$arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"] = $arFile; ?> 
<img src="<?= $arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"]["SRC"]?>" />


попробовал решить с помощью кода
Код
<?if(count($arResult["M_NEW__SV_BRENDS_14"])>0):?>
Текст, который отображается только если свойство с кодом M_NEW__SV_BRENDS_14 заполнено
<?endif;?>

но не работает

и код
Код
<?if(count($arResult["M_NEW__SV_BRENDS_14"])>0):?>
свойство заполнено
<?endif;?>
<?if(count($arResult["M_NEW__SV_BRENDS_14"])<0):?>
свойство НЕ заполнено
<?endif;?>

тоже не срабатывает...
ответил 28 Март, 14 от Itkkb (180 баллов)
00 голосов
GetFileArray, если свойство пустое, возвращает false.
Можно делать так:
Код
<? $arFile = CFile::GetFileArray(($arResult[PROPERTIES][M_NEW__SV_BRENDS_10][VALUE]));
$arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"] = $arFile; ?> 


Код
<?if ($arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"] !== false):?>
    <img src="<?= $arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"]["SRC"]?>" />
<?else:?>
    Нет фото.
<?endif?>
ответил 20 Июль, 14 от Arn4 (2,140 баллов)
00 голосов
Но в предложенном варианте есть существенный минус - всегда будет идти запрос к БД, даже если свойство просто пустое.
Правильнее делать так:
Код
<? 
if ($arResult[PROPERTIES][M_NEW__SV_BRENDS_10][VALUE] > 0)
{
    $arFile = CFile::GetFileArray($arResult[PROPERTIES][M_NEW__SV_BRENDS_10][VALUE]);
}
else
{
    $arFile = false;
}
$arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"] = $arFile;
?>


А дальше уже:
Код
<?if ($arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"] !== false):?>
    <img src="<?= $arResult["YOUR_OWN_PICTURE_M_NEW__SV_BRENDS_10"]["SRC"]?>" />
<?else:?>
    Нет фото.
<?endif?> 


UPD: посмотрел код функции GetFileArray - там и так идет проверка на непустое свойство. Так что данный пост лишний.
ответил 21 Ноя, 14 от Arn4 (2,140 баллов)
00 голосов
Очень полезная для меня информация! Сам подобными кодировками пытаюсь вывести картинку к элементу каталога в автомате, без ручной подгрузки! Спасибо!

Только хотел уточнить как отреагирует система на замену кода [DETAIL_PICTURE] в плане отображения в автоматическом режиме (генерация из detail_picture) предпросмотровой картинки в списке элементов каталога?
Есть ли где-то еще более верхний уровень в котором можно прописать что
"DETAIL_PICTURE" => $arParams["files"], - где [files] - код свойства Файл со значением "артикул товара".jpg, выгружаемое в CommerceML из 1С
[сейчас редактирую код в /catalog.element/templates/.default/template.php]

Или же можно обыграть автоматическое уменьшение файла через код прямо в этом скрипте?
ответил 17 Март, 15 от Lilali (100 баллов)

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

0 голосов
1 ответ
0 голосов
0 ответов
спросил 19 Авг, 13 от ilYA007OY (120 баллов)
0 голосов
2 ответов
0 голосов
5 ответов
0 голосов
0 ответов