Задать вопрос
@Nikolays93
Web-разработчик

Как вывести дополнительные изображения на детальной странице товара из свойства в штатном(.default) компоненте catalog.element?

Добавил
if( $arResult['MORE_PHOTO_COUNT'] = sizeof( $arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] ) ) {
	$showSliderControls = true;
	foreach($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] as $FILE_ID) {
		if( is_array($FILE = CFile::GetFileArray($FILE_ID)) ) {
			array_push($actualItem["MORE_PHOTO"], $FILE);
		}
	}
}


сразу после определения $actualItem, все выводит, но слайдер не листает. Может я пошел не тем путем?
  • Вопрос задан
  • 1454 просмотра
Подписаться 1 Простой 5 комментариев
Решения вопроса 2
@Nikolays93 Автор вопроса
Web-разработчик
Рецепт моего костыля:
После
else
{
	$actualItem = $arResult;
	$showSliderControls = $arResult['MORE_PHOTO_COUNT'] > 1;
}

добавить
if( $arResult['MORE_PHOTO_COUNT'] = sizeof( $arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] ) ) {
	$showSliderControls = true;
	foreach($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] as $FILE_ID) {
		if( is_array($FILE = CFile::GetFileArray($FILE_ID)) ) {
			array_push($actualItem["MORE_PHOTO"], $FILE);
		}
	}

	$arResult['MORE_PHOTO'] = $actualItem["MORE_PHOTO"];
	$arResult['MORE_PHOTO_COUNT'] = sizeof( $arResult['MORE_PHOTO'] );
}


Где
MORE_PHOTO ( $arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] )
Код свойства с картинками.
Ответ написан
Комментировать
@anton99zel Куратор тега 1С-Битрикс
29а класс средней школы №7
Массив $arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] содержит ID картинок
Получить картинку по ID можно так:
$img_resize_path = CFile::ResizeImageGet(
      $arResult[PROPERTIES][MORE_PHOTO][VALUE][0],
      array('width'=>'100', 'height'=>'150'),
      BX_RESIZE_IMAGE_PROPORTIONAL
    );
echo $img_resize_path[src];

Это пример для одной картинки с Ресайзом. Для получения всех картинок нужно использовать foreach.
В слайдере вы можете использовать любое количество массивов. Или загнать все картинки в один общий массив.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fo_otman
@fo_otman
Веб-разработчик
Проблема точно на стороне сервера? Если слайдер не листает, надо смотреть в консоль браузера. Возможно, есть какие-то JS-ошибки.
Ответ написан
Ваш ответ на вопрос

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

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