public function testSortFieldDefinitions() { $fieldDef1 = new FieldDefinitionData(['fieldDefinition' => $this->getMockForAbstractClass('\\eZ\\Publish\\API\\Repository\\Values\\ContentType\\FieldDefinition', [['id' => 1, 'identifier' => 'snarf', 'position' => 3]])]); $fieldDef2 = new FieldDefinitionData(['fieldDefinition' => $this->getMockForAbstractClass('\\eZ\\Publish\\API\\Repository\\Values\\ContentType\\FieldDefinition', [['id' => 2, 'identifier' => 'gnubel', 'position' => 2]])]); $fieldDef3 = new FieldDefinitionData(['fieldDefinition' => $this->getMockForAbstractClass('\\eZ\\Publish\\API\\Repository\\Values\\ContentType\\FieldDefinition', [['id' => 3, 'identifier' => 'heffa', 'position' => 2]])]); $fieldDef4 = new FieldDefinitionData(['fieldDefinition' => $this->getMockForAbstractClass('\\eZ\\Publish\\API\\Repository\\Values\\ContentType\\FieldDefinition', [['id' => 4, 'identifier' => 'lump', 'position' => 1]])]); $fieldDefs = [$fieldDef1, $fieldDef2, $fieldDef3, $fieldDef4]; $data = new ContentTypeData(['fieldDefinitionsData' => $fieldDefs]); self::assertSame($fieldDefs, $data->fieldDefinitionsData); $data->sortFieldDefinitions(); self::assertSame([$fieldDef4, $fieldDef2, $fieldDef3, $fieldDef1], $data->fieldDefinitionsData); }
/** * 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])); } $contentTypeData->sortFieldDefinitions(); return $contentTypeData; }