Задать вопрос
Golovina90
@Golovina90
Начинающий Web-Master

Как вывести через UF-поле свойства другого элемента в разделе?

Здравствуйте.
Есть блок "Хиты продаж". Уже выведены IMG, NAME и DETAIL_PAGE_URL, и кнопки.
Как можно вывести из элементов инфоблока свойства "Число" и "Строка" - Цена и Размеры? В категорию.
<?
$rsResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => "27", 'ID' => $arResult["SECTION"]["ID"]), true, Array("UF_HITS"));
  while ($arResult = $rsResult -> GetNext())
  {
  if (!empty($arResult["UF_HITS"])) 
	{
  $iter = $arResult["UF_HITS"];
	}
  }
$arFilter = array('IBLOCK_ID' => 27,'ID' => $iter);
  $rsItems = CIBlockElement::GetList(array(),$arFilter);
  while ($arItem = $rsItems->GetNext())
  {
  if (!empty($iter))
	{
  $resizer = $arItem['PREVIEW_PICTURE'];
  $file = CFile::ResizeImageGet($resizer, array('width'=>180, 'height'=>290), BX_RESIZE_IMAGE_PROPORTIONAL , true);
  $img = $file['src'];
  echo 
			'<div class="hits-smallcard">
				<img src="'.$img.'" />
				<p><a href="'.$arItem["DETAIL_PAGE_URL"].'">'.$arItem["NAME"].'</a></p>
				<p><a href="#modal1" class="popup-content">Заказать</a></p>
				<p><a href="'.$arItem["DETAIL_PAGE_URL"].'">Подробнее</a></p>
				<p>'.$arItem["CASH"].'</p> //не выводит, число
				<p>'.$arItem["ATT_PRICE"].'</p> //не выводит, строка
			</div>'; 
	}
  }
  ?>

Понимаю, что через GetList надо делать. Но не знаю, как правильно это записать.
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Для того чтобы в $arItem у элемента ИБ появились значения свойств, их надо добавить в параметр arSelectFields в CIblockElement::GetList

$rsItems = CIBlockElement::GetList(array(),$arFilter, false, false, ["*", "PROPERTY_CASH", "PROPERTY_ATT_PRICE"]);


Так же стоит обратить внимание на недоработку в коде. У вас не выполняется проверка на наличие элементов в массиве $iter. Если по тем или иным причинам $iter будет пустой, то GetList выберет все элементы из инфоблока.
<?
<?
$rsResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => "27", 'ID' => $arResult["SECTION"]["ID"]), true, Array("UF_HITS"));
while ($arResult = $rsResult -> GetNext())
{
	if (!empty($arResult["UF_HITS"])) 
	{
		$iter = $arResult["UF_HITS"];
	}
}

if (!empty($iter))
{
	$arFilter = array('IBLOCK_ID' => 27,'ID' => $iter);
	$rsItems = CIBlockElement::GetList(array(),$arFilter);
	while ($arItem = $rsItems->GetNext())
	{

		$resizer = $arItem['PREVIEW_PICTURE'];
		$file = CFile::ResizeImageGet($resizer, array('width'=>180, 'height'=>290), BX_RESIZE_IMAGE_PROPORTIONAL , true);
		$img = $file['src'];
		echo 
		'<div class="hits-smallcard">
			<img src="'.$img.'" />
			<p><a href="'.$arItem["DETAIL_PAGE_URL"].'">'.$arItem["NAME"].'</a></p>
			<p><a href="#modal1" class="popup-content">Заказать</a></p>
			<p><a href="'.$arItem["DETAIL_PAGE_URL"].'">Подробнее</a></p>
			<p>'.$arItem["CASH"].'</p> //не выводит, число
			<p>'.$arItem["ATT_PRICE"].'</p> //не выводит, строка
		</div>'; 
	}
}
?>
Ответ написан
Ваш ответ на вопрос

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

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