Выводим пользовательское поле(свойство) раздела в Битрикс, записываем новое значение

В этой статье разберем популярные вопросы с пользовательскими полями у разделов инфоблока:

Для начала необходимо создать пользовательское поле (свойство) у раздела
1) В административной панели Битрикс заходим в необходимый инфоблока(запоминаем его ID)
2) ищем раздел(запоминаем его ID),
3) заходим в редактирование данного раздела и во вкладке «Доп. поля» нажимаем «Добавить пользовательское свойство»
4) выбираем тип данных(например строка), прописываем код поля, вводиться можно только большие латинские буквы, например UF_ELEMCOUNT (запоминаем значение)

Выводим пользовательское поле у раздела по ID


$arFilter = Array('IBLOCK_ID'=>2,'ID'=>16, 'GLOBAL_ACTIVE'=>'Y');
$db_list = CIBlockSection::GetList(Array("timestamp_x"=>"DESC"), $arFilter, false, Array("UF_ELEMCOUNT"));
  if($uf_value = $db_list->GetNext()):
     $value=$uf_value["UF_ELEMCOUNT"]; 
     echo $value;
  endif;

Пояснения:
Вместо 2 подставляем ID вашего инфоблока, где находится необходимый раздел
Вместо 16 подставляем ID самого раздела
Вместо UF_ELEMCOUNT подставляем Код поля (которой создали в 4ом пункте)

Записываем новое значение в пользовательское поле раздела

$bs = new CIBlockSection;
$arFields = Array(
  "UF_ELEMCOUNT" => 23
);
$bs->Update(16, $arFields); 

Пояснения:
Вместо UF_ELEMCOUNT подставляем Код поля
Вместо 16 подставляем ID раздела

Перебираем все разделы инфоблока и выводим пользовательское поле

$IBLOCK_ID    = 2;

$arFilter    = Array(
      'IBLOCK_ID'=>$IBLOCK_ID, 
      'GLOBAL_ACTIVE'=>'Y');
$obSection    = CIBlockSection::GetTreeList($arFilter);

while($arResult = $obSection->GetNext()){
   for($i=0;$i<=($arResult['DEPTH_LEVEL']-2);$i++)
    echo "";
    
    
    $arFilter = Array('IBLOCK_ID'=>$IBLOCK_ID,'ID'=>$arResult['ID'], 'GLOBAL_ACTIVE'=>'Y');
	$db_list = CIBlockSection::GetList(Array("timestamp_x"=>"DESC"), $arFilter, false, Array("UF_ELEMCOUNT"));
	if($uf_value = $db_list->GetNext()):
     $value=$uf_value["UF_ELEMCOUNT"]; 
    
	 endif;
    
    
     echo "Значение свойства раздела = ".$value.'<br>';
}

Пояснения:
Вместо UF_ELEMCOUNT подставляем Код поля
Вместо 2 подставляем ID инфоблока

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *