eZ\Publish\Core\Repository\ContentService::mapFieldsForUpdate PHP Метод

mapFieldsForUpdate() защищенный Метод

Returns an array of fields like $fields[$field->fieldDefIdentifier][$field->languageCode].
protected mapFieldsForUpdate ( eZ\Publish\API\Repository\Values\Content\ContentUpdateStruct $contentUpdateStruct, eZ\Publish\API\Repository\Values\ContentType\ContentType $contentType, string $mainLanguageCode ) : array
$contentUpdateStruct eZ\Publish\API\Repository\Values\Content\ContentUpdateStruct
$contentType eZ\Publish\API\Repository\Values\ContentType\ContentType
$mainLanguageCode string
Результат array
    protected function mapFieldsForUpdate(APIContentUpdateStruct $contentUpdateStruct, ContentType $contentType, $mainLanguageCode)
    {
        $fields = array();
        foreach ($contentUpdateStruct->fields as $field) {
            $fieldDefinition = $contentType->getFieldDefinition($field->fieldDefIdentifier);
            if ($fieldDefinition === null) {
                throw new ContentValidationException("Field definition '%identifier%' does not exist in given ContentType", ['%identifier%' => $field->fieldDefIdentifier]);
            }
            if ($field->languageCode === null) {
                if ($fieldDefinition->isTranslatable) {
                    $languageCode = $contentUpdateStruct->initialLanguageCode;
                } else {
                    $languageCode = $mainLanguageCode;
                }
                $field = $this->cloneField($field, array('languageCode' => $languageCode));
            }
            if (!$fieldDefinition->isTranslatable && $field->languageCode != $mainLanguageCode) {
                throw new ContentValidationException("A value is set for non translatable field definition '%identifier%' with language '%languageCode%'", ['%identifier%' => $field->fieldDefIdentifier, '%languageCode%' => $field->languageCode]);
            }
            $fields[$field->fieldDefIdentifier][$field->languageCode] = $field;
        }
        return $fields;
    }