/** * Maps a ValueObject from eZ content repository to a data usable as underlying form data (e.g. create/update struct). * * @param ValueObject|\eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft $contentTypeDraft * @param array $params * * @return ContentTypeData */ public function mapToFormData(ValueObject $contentTypeDraft, array $params = []) { $contentTypeData = new ContentTypeData(['contentTypeDraft' => $contentTypeDraft]); if (!$contentTypeData->isNew()) { $contentTypeData->identifier = $contentTypeDraft->identifier; } $contentTypeData->remoteId = $contentTypeDraft->remoteId; $contentTypeData->urlAliasSchema = $contentTypeDraft->urlAliasSchema; $contentTypeData->nameSchema = $contentTypeDraft->nameSchema; $contentTypeData->isContainer = $contentTypeDraft->isContainer; $contentTypeData->mainLanguageCode = $contentTypeDraft->mainLanguageCode; $contentTypeData->defaultSortField = $contentTypeDraft->defaultSortField; $contentTypeData->defaultSortOrder = $contentTypeDraft->defaultSortOrder; $contentTypeData->defaultAlwaysAvailable = $contentTypeDraft->defaultAlwaysAvailable; $contentTypeData->names = $contentTypeDraft->getNames(); $contentTypeData->descriptions = $contentTypeDraft->getDescriptions(); foreach ($contentTypeDraft->fieldDefinitions as $fieldDef) { $contentTypeData->addFieldDefinitionData(new FieldDefinitionData(['fieldDefinition' => $fieldDef, 'contentTypeData' => $contentTypeData, 'identifier' => $fieldDef->identifier, 'names' => $fieldDef->getNames(), 'descriptions' => $fieldDef->getDescriptions(), 'fieldGroup' => $fieldDef->fieldGroup, 'position' => $fieldDef->position, 'isTranslatable' => $fieldDef->isTranslatable, 'isRequired' => $fieldDef->isRequired, 'isInfoCollector' => $fieldDef->isInfoCollector, 'validatorConfiguration' => $fieldDef->getValidatorConfiguration(), 'fieldSettings' => $fieldDef->getFieldSettings(), 'defaultValue' => $fieldDef->defaultValue, 'isSearchable' => $fieldDef->isSearchable])); } return $contentTypeData; }