...Человеческий поиск в разработке...
- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/connector/manager.php
- Класс: Bitrix\Sender\Connector\Manager
- Вызов: Manager::getEndpointFromFields
static function getEndpointFromFields(array $postData) { $result = null; $fieldsTmp = array(); foreach($postData as $moduleId => $settings) { if (is_numeric($moduleId)) { $moduleId = ''; } foreach($settings as $code => $items) { foreach($items as $num => $field) { if (isset($fieldsTmp[$moduleId][$code][$num]) && is_array($field)) { foreach($field as $fieldName => $fieldValue) { if(!isset($fieldsTmp[$moduleId][$code][$num][$fieldName])) { $fieldsTmp[$moduleId][$code][$num][$fieldName] = $fieldValue; } else { if(!is_array($fieldsTmp[$moduleId][$code][$num][$fieldName])) { $fieldsTmp[$moduleId][$code][$num][$fieldName] = array( $fieldsTmp[$moduleId][$code][$num][$fieldName] ); } if(is_array($fieldValue)) { $fieldsTmp[$moduleId][$code][$num][$fieldName] = array_merge( $fieldsTmp[$moduleId][$code][$num][$fieldName], $fieldValue ); } else { $fieldsTmp[$moduleId][$code][$num][$fieldName][] = $fieldValue; } } } } else { if ($field && is_string($field)) { try { $field = Json::decode($field); } catch (\Exception $exception) { } } else if ($field && is_array($field)) { $fieldsTmp[$moduleId][$code][$num] = $field; continue; } else { $field = null; } $fieldsTmp[$moduleId][$code][$num] = $field; } } } } foreach($fieldsTmp as $moduleId => $settings) { if(is_numeric($moduleId)) { $moduleId = ''; } foreach($settings as $code => $items) { foreach($items as $filter => $fields) { if (!is_array($result)) { $result = array(); } $result[] = array( 'MODULE_ID' => $moduleId, 'CODE' => $code, 'FIELDS' => $fields, 'FILTER_ID' => $moduleId . "_" . $code . "_" . $filter, ); } } } return $result; }