Задать вопрос

Bitrix API — как получить значения множественного свойства типа файл для вывода картинок для галереи?

Задача средствами API BITRIX создать галереи на сайте. Создан инфоблок, с множественным свойством типа - файл "MORE_PHOTO". Так же каждому изображению заданы описания.
Используя метод CIBlockElement::GetList - получаю список элементов инфоблока, но получить пути к файлам из множественного свойства MORE_PHOTO, и описания к ним не получается, точнее не знаю как.
Пытаюсь использовать:
<?php if(CModule::IncludeModule('iblock'))
	{
		$res = CIBlockElement::GetList(
			array("SORT"=>"ASC"), 
			array("IBLOCK_ID"=>4,"ACTIVE"=>"Y"), 
			false, 
			false, 
			array("NAME","PREVIEW_TEXT", "PROPERTY_MORE_PHOTO")
		);
		while($arr = $res->GetNext())
		{		
			$arrGalleries[] = $arr;
		}
	}	
?>

Однако в результирующий массив $arrGalleries[] приходят данные к каждой картинке, к примеру фрагмент:
[PROPERTY_MORE_PHOTO_VALUE] => 574
[~PROPERTY_MORE_PHOTO_VALUE] => 574
[PROPERTY_MORE_PHOTO_VALUE_ID] => 298
[~PROPERTY_MORE_PHOTO_VALUE_ID] => 298


Что с этим можно сделать?

Как вытащить элементы из инфоблока со значениями из множественного свойства, путями и описаниями к файлам - изображениям?
  • Вопрос задан
  • 3679 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
if(CModule::IncludeModule('iblock'))
  {
    $res = CIBlockElement::GetList(
      array("SORT"=>"ASC"), 
      array("IBLOCK_ID"=>4,"ACTIVE"=>"Y"), 
      false, 
      false, 
      array("NAME","PREVIEW_TEXT", "PROPERTY_MORE_PHOTO")
    );
    while($arr = $res->GetNext())
    {
      $arr['PROPERTY_MORE_PHOTO_VALUE'] = \CFile::GetFileArray($arr['PROPERTY_MORE_PHOTO_VALUE']);
      $arrGalleries[] = $arr;
    }
  }

А еще, по видимому, у вас ИБ 1.0. Перейдите в настройки инфоблока и посмотрите значение "Значения свойств хранятся". Скорее всего там "в общей таблице (по умолчанию)" и ниже есть ссылка "изменить место хранения свойств" - нажмите ее. После этого вы избавитесь от дублей элементов, а PROPERTY_MORE_PHOTO_VALUE станет массивом, сотвественно измените эту часть:
$arr['PROPERTY_MORE_PHOTO_VALUE'] = \CFile::GetFileArray($arr['PROPERTY_MORE_PHOTO_VALUE']);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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