Вывод свойств разных типов на страницах каталога bitrix

Сделав вынужденный перерыв в деятельности, связанной с разработкой под битрикс, автор настоящей заметки осознал на собственном опыте, что знания имеют свойство «вымываться». В том числе, казалось бы, сравнительно простые. Исходя из данного тезиса и родилась идея настоящей статьи. Как следствие, данная статья носит справочный характер и должна, по задумке автора, охватить максимально возможное число вариантов вывода свойств в шаблоне интернет-магазина на битриксе.

Логически, данную статью можно разделить на 2 части:

  1. Вывод свойств в catalog.section.list
  2. Вывод свойств в catalog.detail

Несмотря на то, что в примере рассматривается вывод свойств в компонентах каталога, данные примеры также справедливы и для других компонентов битрикса. Например, компонента новостей.

 

 

Обратите внимание, что перед выводом свойств нужно добавить свойство в настройках компонента каталога (в публичной части):

Вывод свойств в catalog.section.list

Вывод значения свойства:

<? echo $arItem['PROPERTIES']['TestProp']['VALUE'];?>

Вывод значения свойства с названием:

<? echo $arItem['PROPERTIES']['UF_KOD_BX24_ZAKAZ']['NAME'];?>
<? echo $arItem['PROPERTIES']['UF_KOD_BX24_ZAKAZ']['VALUE'];?>

Вывод значения свойства типа html/text:

<? echo $arItem['PROPERTIES']['TestProp']['VALUE']['TEXT'];?>

Вывод свойства типа файл (как ссылка на скачивание):

<?		
$res = CIBlockElement::GetProperty($arItem['IBLOCK_ID'], $arItem['ID'], "sort", "asc", array("CODE" => "TestProp"));
if ($ob = $res->GetNext())
    {			
$testValue = $ob['VALUE'];
$file = CFile::GetFileArray($testValue);
$testValue = $file['SRC'];
    }
echo '<a href="'.$testValue.'">TestProp</a>';
?>

Вывод свойства типа файл (как изображение):

<?		
$res = CIBlockElement::GetProperty($arItem['IBLOCK_ID'], $arItem['ID'], "sort", "asc", array("CODE" => "TestProp"));
if ($ob = $res->GetNext())
    {			
$testValue = $ob['VALUE'];
$file = CFile::GetFileArray($testValue);
$testValue = $file['SRC'];
    }
echo '<img src="'.$testValue.'">';
?>

Вывод множественного свойства:

<?foreach($arItem["PROPERTIES"]["TestProp"]["VALUE"] as $TestProp):?>
   <?echo $TestProp;?><br>
<?endforeach;?>

Вывод пользовательского свойства:

<?
$select = [
  "UF_BANNER_CATEG"
  
];

$sort = [
  "SORT" => "ASC"
];

$filter = [

  'IBLOCK_ID' => 27,
  'ID' => $arResult['SECTION']['ID'],
];

$rsResult = CIBlockSection::GetList(
  $sort,
  $filter,
  false,
  $select
);
while($bResult = $rsResult->GetNext())
{
	
 $testValue = $bResult['UF_BANNER_CATEG'];
 $file = CFile::GetFileArray($testValue);
  echo '<img src="'.$file['SRC'].'">';;
}
?>

Вывод свойства типа «привязка к элементам»:

<?foreach($arItem["PROPERTIES"]["TestProp"]["VALUE"] as $TestProp):?>
<?$res = CIBlockElement::GetByID($TestProp);?> 
<?if($ar_res = $res->GetNext())?> 
<li><?=$ar_res["NAME"];?></li>
<?endforeach;?>

 

Вывод свойств в catalog.detail

Вывод значения свойства:

<? echo $arResult['PROPERTIES']['UF_KOD_BX24_ZAKAZ']['VALUE'];?>

Вывод значения свойства с названием:

<? echo $arResult['PROPERTIES']['UF_KOD_BX24_ZAKAZ']['NAME'];?>
<? echo $arResult['PROPERTIES']['UF_KOD_BX24_ZAKAZ']['VALUE'];?>

Вывод значения свойства типа html/text:

<? echo $arResult['PROPERTIES']['TestProp']['VALUE']['TEXT'];?>

Вывод свойства типа файл (как ссылка на скачивание):

<?		
$res = CIBlockElement::GetProperty($arResult['IBLOCK_ID'], $arResult['ID'], "sort", "asc", array("CODE" => "TestProp"));
if ($ob = $res->GetNext())
    {			
$testValue = $ob['VALUE'];
$file = CFile::GetFileArray($testValue);
$testValue = $file['SRC'];
    }
echo '<a href="'.$testValue.'">TestProp</a>';
?>

Вывод свойства типа файл (как изображение):

<?		
$res = CIBlockElement::GetProperty($arResult['IBLOCK_ID'], $arResult['ID'], "sort", "asc", array("CODE" => "TestProp"));
if ($ob = $res->GetNext())
    {			
$testValue = $ob['VALUE'];
$file = CFile::GetFileArray($testValue);
$testValue = $file['SRC'];
    }
echo '<img src="'.$testValue.'">';
?>

Вывод множественного свойства:

<?foreach($arResult["PROPERTIES"]["TestProp"]["VALUE"] as $TestProp):?>
   <?echo $TestProp;?><br>
<?endforeach;?>

Вывод свойства типа «привязка к элементам»:

<?foreach($arResult["PROPERTIES"]["TestProp"]["VALUE"] as $TestProp):?>
<?$res = CIBlockElement::GetByID($TestProp);?> 
<?if($ar_res = $res->GetNext())?> 
<li><?=$ar_res["NAME"];?></li>
<?endforeach;?>

 

Как можно заметить, процесс вывода переменных на детальной странице и на странице списка отличается только названием переменной: $arResult и $arItem соответственно. Кажется, что данная заметка охватывает большую часть наиболее частотных примеров выводов тех, или иных свойств в компонентах битрикса (простые, файлы, множественные, пользовательские, привязка к эл-там). Более редкие примеры вывода описаны в справке битрикса.