...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/entitypreset.php
- Класс: Bitrix\Crm\EntityPreset
- Вызов: EntityPreset::settingsAddField
public function settingsAddField(&$settings, $field) { if (!is_array($settings) || !is_array($field) || empty($field) || !isset($field['FIELD_NAME']) || empty($field['FIELD_NAME'])) { return false; } $maxId = 0; if (isset($settings['LAST_FIELD_ID'])) { $maxId = (int)$settings['LAST_FIELD_ID']; } else { if (is_array($settings['FIELDS'])) { foreach ($settings['FIELDS'] as $field) { $curId = (int)$field['ID']; if ($curId > $maxId) $maxId = $curId; } } } $id = $maxId + 1; $newField = array(); $newField['ID'] = $id; $newField['FIELD_NAME'] = ''; if (isset($field['FIELD_NAME'])) { $newField['FIELD_NAME'] = mb_substr(strval($field['FIELD_NAME']), 0, 255); if ($newField['FIELD_NAME'] === false) $newField['FIELD_NAME'] = ''; } $newField['FIELD_TITLE'] = ''; if (isset($field['FIELD_TITLE'])) { $newField['FIELD_TITLE'] = mb_substr(strval($field['FIELD_TITLE']), 0, 255); if ($newField['FIELD_TITLE'] === false) $newField['FIELD_TITLE'] = ''; } $newField['IN_SHORT_LIST'] = 'N'; if (isset($field['IN_SHORT_LIST']) && $field['IN_SHORT_LIST'] === 'Y') { $newField['IN_SHORT_LIST'] = 'Y'; } $newField['SORT'] = 500; if (isset($field['SORT'])) $newField['SORT'] = (int)$field['SORT']; if (!is_array($settings['FIELDS'])) $settings['FIELDS'] = array(); $duplicate = false; foreach ($settings['FIELDS'] as $fieldInfo) { if ($fieldInfo['FIELD_NAME'] === $newField['FIELD_NAME']) { $duplicate = true; break; } } unset($fieldInfo); if ($duplicate) return false; $settings['LAST_FIELD_ID'] = $id; $settings['FIELDS'][] = $newField; return $id; }