...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/fill.php
- Класс: Bitrix\Crm\WebForm\Fill
- Вызов: Fill::getFilledFields
private function getFilledFields() { $fields = $this->form->getFieldsMap(); $fileFieldsSizeMap = $this->getFilledFileFieldsSize(); foreach ($fields as $fieldKey => $field) { $fieldName = $field['name']; $fieldValues = isset($this->values[$fieldName]) ? $this->values[$fieldName] : []; if (!is_array($fieldValues)) { $fieldValues = [$fieldValues]; } if ($field['type'] == 'file') { $files = []; $fileController = new SiteFormFileUploaderController([ 'formId' => strval($this->form->getId()), 'secCode' => $this->form->get()['SECURITY_CODE'] ?? "", 'fieldId' => $fieldName, 'fieldsSize' => $fileFieldsSizeMap ]); $uploader = new UI\FileUploader\Uploader($fileController); foreach ($fieldValues as $fileData) { if (!empty($fileData['token'])) { $pendingFiles = $uploader->getPendingFiles([$fileData['token']]); $pendingFile = $pendingFiles->getAll()[$fileData['token']] ?? null; if (!$pendingFile) { continue; } $pendingFiles->makePersistent(); $file = \CFile::MakeFileArray($pendingFile->getFileId()); } else { $file = \CRestUtil::saveFile($fileData['content'], $fileData['name']); } $dailyLimiter = Limitations\DailyFileUploadLimit::instance(); if ($dailyLimiter->isUsed()) { $dailyLimiter->incrementByValue((int) $file['size'] ?? 0); } $files[] = $file; } $fieldValues = $files; } elseif ($field['type'] == 'phone') { $fieldValues = array_map( function ($value) { return preg_replace("/[^0-9+]/", '', $value); }, $fieldValues ); } elseif ($field['type'] === 'email') { $fieldValues = array_filter( $fieldValues, function ($value) { return check_email($value); } ); } else if ($field['entity_field_name'] == 'COMMENTS') { $fieldValues = array_map( function ($value) { return nl2br(htmlspecialcharsbx($value)); }, $fieldValues ); } $field['values'] = $fieldValues; $fields[$fieldKey] = $field; } return $fields; }