- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/lib/Controller/Property/Action/SaveAction.php
- Класс: BitrixIblockControllerPropertyActionSaveAction
- Вызов: SaveAction::getPropertyFields
private function getPropertyFields(int $propertyId, int $iblockId): ?array
{
$fields = PropertyTable::getRow([
'filter' => [
'=ID' => $propertyId,
'=IBLOCK_ID' => $iblockId,
],
]);
if (!$fields)
{
return null;
}
// arrayable user settings
$fields['USER_TYPE_SETTINGS'] = $fields['USER_TYPE_SETTINGS_LIST'];
unset($fields['USER_TYPE_SETTINGS_LIST']);
// append section link
$sectionProperty = SectionPropertyTable::getRow([
'select' => [
'SMART_FILTER',
'DISPLAY_TYPE',
'DISPLAY_EXPANDED',
'FILTER_HINT',
],
'filter' => [
'=IBLOCK_ID' => $iblockId,
'=PROPERTY_ID' => $propertyId,
],
]);
if (is_array($sectionProperty))
{
$fields += $sectionProperty;
}
// append features
$fields['FEATURES'] = [];
$rows = PropertyFeatureTable::getList([
'select' => [
'ID',
'MODULE_ID',
'FEATURE_ID',
'IS_ENABLED',
],
'filter' => [
'=PROPERTY_ID' => $propertyId,
]
]);
foreach ($rows as $row)
{
$index = PropertyFeature::getIndex($row);
$fields["FEATURES"][$index] = $row['IS_ENABLED'];
}
return $fields;
}