...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/options/deps.php
- Класс: Bitrix\Crm\WebForm\Options\Deps
- Вызов: Deps::filterDependencies
static function filterDependencies(array $deps) { $dict = Dictionary::instance()->getDeps(); $actionTypes = array_column($dict['action']['types'], 'id'); $conditionEvents = array_column($dict['condition']['events'], 'id'); $conditionOperations = array_column($dict['condition']['operations'], 'id'); $conditionOperations[] = '<>'; $result = []; foreach ($deps as $dep) { if (!is_array($dep)) { continue; } $condition = $dep['condition'] ?? null; $action = $dep['action'] ?? null; if (!$condition || !$action) { continue; } // TODO: $condition['target'] check existed in fields $condition['event'] = $condition['event'] ?? null; if (!$condition['event'] || !in_array($condition['event'], $conditionEvents)) { $condition['event'] = $conditionEvents[0]; } $condition['operation'] = $condition['operation'] ?? null; if (!$condition['operation'] || !in_array($condition['operation'], $conditionOperations)) { $condition['operation'] = $conditionOperations[0]; } $condition['value'] = $condition['value'] ?? null; // TODO: $action['target'] check existed in fields $action['type'] = $action['type'] ?? null; if (!$action['type'] || !in_array($action['type'], $actionTypes)) { $action['type'] = $actionTypes[0]; } $action['value'] = $action['value'] ?? null; $result[] = [ 'condition' => $condition, 'action' => $action, ]; } return $result; }