Новое обновление в ORM - получение списка свойств элемента инфоблока.До недавного времени для получения списка свойств элемента инфоблока в D7, приходилось использовать конструкцию вида
$res = \Bitrix\Iblock\ElementTable::getList(array(
"select" => array("ID", "NAME"),
"filter" => array("IBLOCK_ID" => 25, "ID" => 4584),
"order" => array("ID" => "ASC")
));
while ($arItem = $res->fetch()) {
$dbProperty = \CIBlockElement::getProperty(
$arItem['IBLOCK_ID'],
$arItem['ID'], array("sort", "asc"),
array()
);
while ($arProperty = $dbProperty->GetNext()) {
$arItem["PROPERTIES"][$arProperty['CODE']] = $arProperty;
}
echo "<pre>".print_r($arItem, true)."</pre>";
} |
Появилось обновление модули iblock версии: 19.0.0, где добавили elementpropertytable.php, что дает возможность получить список свойств инфоблока
$res = \Bitrix\Iblock\ElementTable::getList(array(
"select" => array("ID", "*"),
"filter" => array("IBLOCK_ID" => 25, "ID" => 4584),
"order" => array("ID" => "ASC")
));
while ($arItem = $res->fetch()) {
$propRes = \Bitrix\Iblock\ElementPropertyTable::getList(array(
"select" => array("ID", "*"),
"filter" => array("IBLOCK_ELEMENT_ID" => $arItem["ID"],),
"order" => array("ID" => "ASC")
));
while($prop = $propRes->Fetch())
{
$arItem["PROPERTIES"][$prop["IBLOCK_PROPERTY_ID"]] = $prop;
}
echo "<pre>".print_r($arItem, true)."</pre>";
} |
Правда вывод производится в некотором ограниченном виде
[888] => Array
(
[ID] => 28357
[IBLOCK_PROPERTY_ID] => 482
[IBLOCK_ELEMENT_ID] => 4584
[VALUE] => 5485
[VALUE_TYPE] => text
[VALUE_ENUM] =>
[VALUE_NUM] => 5485.0000
[DESCRIPTION] =>
)
|
Как видите не хватает NAME, CODE и т.д. но эти имена можно без труда получить через \Bitrix\Iblock\PropertyTable