Вывод множественного свойства типа файл в списке элементов

Иногда в списке элементов необходимо вывести галерею изображений (к примеру, в виде карусели).

Для этого нужно в result_modifier.php шаблона списка news.list прописать следующий код:

<?
foreach($arResult["ITEMS"] as $ID=>$arItem) {
   if (!empty($arItem['PROPERTIES']['PHOTOS']['VALUE'])) {
      foreach ($arItem['PROPERTIES']['PHOTOS']['VALUE'] as $img) {
         $arResult["ITEMS"][$ID]['GALLERY'][] = array(
            "SMALL"=>CFile::ResizeImageGet($img, array('width' => 300, 'height' => 182), BX_RESIZE_IMAGE_EXACT, true),
            "BIG"=>$img
         );
      }
   }
}
?>

,где PHOTOS – символьный код множественного свойства.

В массив GALLERY в SMALL будут собраны измененные в размерах изображения, в BIG – значения исходных изображений (путь к которым впоследствии в template.php получаем с помощью CFile::GetPath).

Затем, для вывода изображений, в template.php:


<?if(count($arItem['GALLERY']) > 1):?>
   <div class="thmb flexslider<?=$num?> unstyled">
      <ul class="slides">
         <?foreach($arItem['GALLERY'] as $arPhoto):?>
            <li class="blink">
               <a href="<?=CFile::GetPath($arPhoto["BIG"])?>" class="fancybox blink" target="_blank" rel="gallery-<?=$num?>">
                  <img border="0" src="<?=$arPhoto["SMALL"]["src"]?>" alt="" title="" />
               </a>
            </li>
         <?endforeach;?>
      </ul>
   </div>
<?endif;?>

bitrixone © 2024