Получение элементов ИБ
wakeUp
💡 Перед использованием необходимо в инфоблоке задать параметр "Символьный код API".
$class = \Bitrix\Iblock\Iblock::wakeUp($IBLOCK_ID)->getEntityDataClass();
$ob = $class::getList([
'select' => [
'ID','IBLOCK_ID','NAME','CODE','IBLOCK_SECTION_ID','ACTIVE',
'DETAIL_PAGE_URL_RAW' => 'IBLOCK.DETAIL_PAGE_URL',
' ', //PROPERTY
],
'filter' => [
'USER_ID_VALUE' => "33"
],
]);
$result = [];
while ($arItem = $ob->fetch()) {
$arItem['DETAIL_PAGE_URL'] = \CIBlock::ReplaceDetailUrl($arItem['DETAIL_PAGE_URL_RAW'], $arItem, false, 'E');
$result[] = $arItem;
}
ElementTable
💡 Нельзя получить свойства элементов. Только если использовать left_join.
$result = Bitrix\Iblock\ElementTable::getList([
'select' => [
'ID','IBLOCK_ID','NAME','CODE','IBLOCK_SECTION_ID','ACTIVE',
],
'filter' => [
],
])->fetchAll();
Получение разделов ИБ
compileEntityByIblock
💡 Перед использованием необходимо в инфоблоке задать параметр "Символьный код API".
$class = \Bitrix\Iblock\Model\Section::compileEntityByIblock($IBLOCK_ID);
$result = $class::getList([
'select' => [
'ID',
'UF_AUCTION_ID', //PROPERTY
],
'filter' => [
'UF_AUCTION_ID' => "55"
],
])->fetchAll();
SectionTable
💡 Нельзя получить свойства разделов.
$result = Bitrix\Iblock\SectionTable::getList([
'select' => [
'ID','IBLOCK_ID','NAME','CODE','IBLOCK_SECTION_ID','ACTIVE',
],
'filter' => [
],
])->fetchAll();
Получение свойств ИБ
В примере ниже представлено не просто получение стандартных свойств ИБ , но и например получение текста подсказки ключ HINT и такой параметр свойства как “Показывать на детальной странице элемента” ключ DETAIL_PAGE_SHOW
$properties = \Bitrix\Iblock\PropertyTable::getList([
'order' => ["SORT"=>"ASC"],
'select' => ["ID", "SORT","NAME", "CODE", "PROPERTY_TYPE","HINT",
"DETAIL_PAGE_SHOW" => "FEATURE.IS_ENABLED"],
'filter' => $filter,
'runtime' => [
new \Bitrix\Main\Entity\ReferenceField(
'FEATURE',
'Bitrix\Iblock\PropertyFeatureTable',
[
'=this.ID' => 'ref.PROPERTY_ID',
'=ref.FEATURE_ID'=> new \Bitrix\Main\DB\SqlExpression('?s', 'DETAIL_PAGE_SHOW')
],
['join_type' => 'LEFT']
)
],
]);
$arProps = [];
while ($fields = $properties->fetch()) {
}
Пример выше не отдает всех параметров свойств ИБ , это связано с тем что часть параметров свойств находится совсем в другой таблице . Код получения представлен ниже:
\CIBlockSectionPropertyLink::GetArray($IBLOCK_ID, 0);