Как можно организовать вывод списка фотографий "До" и "После" правильно из множественных свойств типа "файл" в Битриксе, чтобы каждая пара фотографий оказалась в своем блоке с классом "cocoen"?
Для этого можно воспользоваться вложенными циклами в шаблоне Битрикс.
Пример кода на PHP:
```
<?php
// Получаем свойства элемента инфоблока
$photos_before = $arResult["PROPERTIES"]["PHOTOS_BEFORE"]["VALUE"];
$photos_after = $arResult["PROPERTIES"]["PHOTOS_AFTER"]["VALUE"];
if(count($photos_before) == count($photos_after)) {
$count = count($photos_before);
// Выводим каждую пару фотографий в своем блоке с классом "cocoen"
for($i = 0; $i < $count; $i++) {
?>
<div class="cocoen">
<img src="<?=CFile::GetPath($photos_before[$i])?>" alt="Before">
<img src="<?=CFile::GetPath($photos_after[$i])?>" alt="After">
</div>
<?php
}
}
?>
```
В данном примере мы сначала получаем значения свойств "PHOTOS_BEFORE" и "PHOTOS_AFTER". Затем проверяем, что количество фотографий "До" и "После" одинаково. После этого в цикле выводим каждую пару фотографий в блоке с классом "cocoen". Для получения пути к файлу используется функция CFile::GetPath().
<blockquote>Одиакового ничего, идея скорее всего выводить по идексу в массиве </blockquote> <br/> Значит нужно по индексу и связывать <br/> <pre><code class="html"><?php foreach ($arItem['PROPERTIES']['IMG_BEFORE']['VALUE'] as $index => $arImgBeforeSrc): ?>
<?php $arImgAfterSrc = $arItem['PROPERTIES']['IMG_AFTER']['VALUE'][$index] ?>
<div class="cocoen">
<img data-src="" class="blog-list__item-image<?=($arParams['ROUNDED_IMAGE'] ? ' rounded' : '');?>" src="<?=CFile::getPath($arImgBeforeSrc);?>" alt="">
<img data-src="" class="blog-list__item-image<?=($arParams['ROUNDED_IMAGE'] ? ' rounded' : '');?>" src="<?=CFile::getPath($arImgAfterSrc);?>" alt="">
</div>
<?php endforeach ?></code></pre> <br/> Только в коде не учтен момент, когда изображение "после" может отсутствовать. Во избежание ошибки, вторую картинку лучше в условии выводить и в объявлении переменной <code>$arImgAfterSrc</code> проверку сделать.