Архив автора Alex

Автор:Alex

Путь из символьных кодов к разделу в Битрикс

По непонятной причине в документации api битрикса нет функции:

CIBlockSection::getSectionCodePath($ID)

которая генерирует относительный путь из символьных кодов раздела такого вида:

main_section/sub_section_1/sub_section_2/this_section

Обращаю внимание, что в начале и в конце не будет слешов!

Автор:Alex

Получить SEO параметры раздела в Битрикс

Получаем SEO-параметры нужного нам раздела с помощью D7

$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($id_iblock,$id_section);
$arSection_seo["IPROPERTY_VALUES"] = $ipropValues->getValues();
$page_title = $arSection_seo['IPROPERTY_VALUES']['SECTION_PAGE_TITLE'];

где
$id_iblock — ID инфоблока
$id_section — ID раздела

Получим массив всех seo-свойств в $arSection_seo[«IPROPERTY_VALUES»], можете проверить в var_dump($arSection_seo[«IPROPERTY_VALUES»]). Их может быть много.

Получить конкретное свойство, например, title раздела:

$arSection_seo['IPROPERTY_VALUES']['SECTION_PAGE_TITLE'];
Автор:Alex

Получить свойства элемента в Битрикс

Если кто не знает, то все свойства элемента ввиде массива можно получить так:

$res = CIBlockElement::GetList(Array(), Array(«IBLOCK_ID»=>2, «ID»=>10));
if ($ob = $res->GetNextElement()){
$arFields = $ob->GetFields(); // поля элемента
$arProps = $ob->GetProperties(); // свойства элемента
}

Можно упростить жизнь и написать простую функцию, поместим её в init.php

function GetValueProp($id_tov, $iblock_id, $name_prop){
$arFilter = Array("IBLOCK_ID"=> $iblock_id , "ID"=>$id_tov);
$res = CIBlockElement::GetList(Array(), $arFilter2);
if ($ob = $res->GetNextElement()){
$arFields = $ob->GetFields(); // поля элемента
$arProps = $ob->GetProperties(); // свойства элемента
$prop_value = $arProps; // массив всех свойств
if(isset($name_prop)) $prop_value = $arProps[$name_prop]['VALUE'];
}
return $prop_value;}

где
$id_tov — ID элемента,
$iblock_id — ID инфоблока, 
$name_prop — символьный код свойства

Если указать, только  $id_tov и  $iblock_id, то получить массив со всеми свойствами элемента.

Если указать еще в  $name_prop, то получим только значение нужного свойства элемента.

Пример использования:

GetValueProp(2, 10, 'DLINA');