- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/options/deps.php
- Класс: Bitrix\Crm\WebForm\Options\Deps
- Вызов: Deps::setData
public function setData(array $data)
{
$deps = [];
$groups = [];
foreach ($data as $index => $group)
{
if (empty($group['id']))
{
$group['id'] = "n-$index";
}
if (empty($group['typeId']))
{
$group['typeId'] = WebForm\Internals\FieldDepGroupTable::TYPE_DEF;
}
$list = array_map(
function ($dep) use ($group)
{
return [
'GROUP_ID' => $group['id'],
'IF_FIELD_CODE' => $dep['condition']['target'],
'IF_ACTION' => $dep['condition']['event'],
'IF_VALUE' => $dep['condition']['value'],
'IF_VALUE_OPERATION' => $dep['condition']['operation'],
'DO_FIELD_CODE' => $dep['action']['target'],
'DO_ACTION' => $dep['action']['type'],
'DO_VALUE' => $dep['action']['value'],
];
},
self::filterDependencies($group['list'] ?? [])
);
$deps = array_merge($deps, $list);
if (!$list)
{
continue;
}
$groups[] = [
'ID' => $group['id'],
'TYPE_ID' => $group['typeId'],
];
}
$this->form->merge([
'DEPENDENCIES' => $deps,
'DEP_GROUPS' => $groups,
]);
return $this;
}