gnvs
@gnvs
With best regards

Как правильно вывести множественное свойство с условием?

Доброго времени,
вывожу множественное свойство файл. используется специфический слайдер.

вот верстка, где вывод свойства
<div class="swiper-slide">
     <div class="news-slider__item">

                 <!-- вывод 1 картинки -->
                  <div class="news-slider__image-large">
                              <img src="img/slide1.jpg" width="" height="" alt="">
                  </div>

                 <!-- вывод остальных 3 картинок  -->
                  <div class="news-slider__image-small">
                             <img src="img/slide2.jpg" width="" height="" alt=" title="">
                            <img src="img/slide3.jpg" width="" height="" alt="" title="">
                            <img src="img/slide4.jpg" width="" height="" alt="" title="">
                  </div>

                </div>
              </div>


т.е. в свойство я загружаю 4 картинки,
по факту все файлы у меня выводятся, но не пойму как дать условие, чтобы первая картинка выходила в div,
а остальные в своем div-e.

может нужно что-то типа такой конструкции?? -- это как пример с условием, он понятное дело не отрабатывает.

<?if($arResult['GALLERY_PHOTOS']) { //проверка на картинки?>
<?  
$count = 0;
foreach ($arResult['GALLERY_PHOTOS'] as $key => $photo) { 
$count++;	
?>

<div class="swiper-slide">
	<div class="news-slider__item">	
										
		<?if($count == 1):?>
			<div class="news-slider__image-large">
				<img src="<?=$photo['SRC_BIG'];?>" alt="<?=$photo['ALT'];?>" title="<?=$photo['TITLE'];?>">
			</div>
		 <?endif;?>
			<div class="news-slider__image-small">
				<img src="<?=$photo['SRC_SMALL'];?>" alt="<?=$photo['ALT'];?>">
			</div>
               	
</div>
</div>		
<?}?>
<?}?>
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 2
Tomio
@Tomio
backend developer (python, php)
Чтобы вывести первую картинку в див особых премудростей не нужно:

<div class="news-slider__image-large">
    <img src="<?=$arResult['GALLERY_PHOTOS'][0]['SRC_BIG'];?>" alt="<?=$arResult['GALLERY_PHOTOS'][0]['ALT'];?>" title="<?=$arResult['GALLERY_PHOTOS'][0]['TITLE'];?>">
</div>


Остальные картинки уже выводите в привычном цикле foreach, только пропуская первый элемент в цикле. Либо в цикле for, устанавливая счётчик изначально в позицию 1:

<div class="news-slider__image-small">
    <?for ($i = 1; $i < count($arResult['GALLERY_PHOTOS']); $i++):?>
        <img src="<?=$arResult['GALLERY_PHOTOS'][$i]['SRC_SMALL'];?>" alt="<?=$arResult['GALLERY_PHOTOS'][$i]['ALT'];?>">
    <?endfor;?>
</div>
Ответ написан
gnvs
@gnvs Автор вопроса
With best regards
Все норм, выводится. Осталось передать изображение с мелких фоток в большой блок.
На данный момент, согласно указанному решению,
в большом блоке 1 фотка и 3 мелких фотки в другом блоке,
но листая, в большом блоке остается 1 фотка, как передать параметр, чтобы 2 фотка переходила в большой блок?

сейчас цикл вывода выглядит так:

<div class="swiper-wrapper">
<?if($arResult['GALLERY_PHOTOS']) { ?>
	<?foreach ($arResult['GALLERY_PHOTOS'] as $key => $photo) { ?>
				
		<div class="swiper-slide">
			<div class="news-slider__item">

				<div class="news-slider__image-large">
					<img src="<?=$arResult['GALLERY_PHOTOS'][0]['SRC_BIG'];?>" alt="<?=$arResult['GALLERY_PHOTOS'][0]['ALT'];?>" title="<?=$arResult['GALLERY_PHOTOS'][0]['TITLE'];?>">
				</div>

				<div class="news-slider__image-small">
				<?for ($i = 1; $i < count($arResult['GALLERY_PHOTOS']); $i++):?>
					<img src="<?=$arResult['GALLERY_PHOTOS'][$i]['SRC'];?>" alt="<?=$arResult['GALLERY_PHOTOS'][$i]['ALT'];?>">
				<?endfor;?>
				</div>
			</div>
		</div>

	<?}?>
<?}?>			

</div>

 <div class="swiper-pagination"></div>

 <div class="news-slider__btn next-slide">Далее&nbsp;<svg class="icon" width="16" height="16"><use xlink:href="/img/icons/icon-sprite.svg#icon-right-arrow"></use></svg></div>
<div class="news-slider__btn prev-slide"><svg class="icon" width="16" height="16"><use xlink:href="/img/icons/icon-sprite.svg#icon-left-arrow"></use></svg>&nbsp;Назад</div>


Т.е. нужно получить в большом блоке после листинга следующую фотку. Ее получать подобным вариантом?

<?for ($i = 1; $i < count($arResult['GALLERY_PHOTOS']); $i++):?>
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы