В этой статье разберем популярные вопросы с пользовательскими полями у разделов инфоблока:
Для начала необходимо создать пользовательское поле (свойство) у раздела
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 инфоблока
