public buildContentTypeDomainObject ( eZ\Publish\SPI\Persistence\Content\Type $spiContentType, array $spiContentTypeGroups ) : eZ\Publish\API\Repository\Values\ContentType\ContentType | ||
$spiContentType | eZ\Publish\SPI\Persistence\Content\Type | |
$spiContentTypeGroups | array | |
Результат | eZ\Publish\API\Repository\Values\ContentType\ContentType |
public function buildContentTypeDomainObject(SPIContentType $spiContentType, array $spiContentTypeGroups)
{
$mainLanguageCode = $this->contentLanguageHandler->load($spiContentType->initialLanguageId)->languageCode;
$contentTypeGroups = array();
foreach ($spiContentTypeGroups as $spiContentTypeGroup) {
$contentTypeGroups[] = $this->buildContentTypeGroupDomainObject($spiContentTypeGroup);
}
$fieldDefinitions = array();
foreach ($spiContentType->fieldDefinitions as $spiFieldDefinition) {
$fieldDefinitions[] = $this->buildFieldDefinitionDomainObject($spiFieldDefinition);
}
return new ContentType(array('names' => $spiContentType->name, 'descriptions' => $spiContentType->description, 'contentTypeGroups' => $contentTypeGroups, 'fieldDefinitions' => $fieldDefinitions, 'id' => $spiContentType->id, 'status' => $spiContentType->status, 'identifier' => $spiContentType->identifier, 'creationDate' => $this->getDateTime($spiContentType->created), 'modificationDate' => $this->getDateTime($spiContentType->modified), 'creatorId' => $spiContentType->creatorId, 'modifierId' => $spiContentType->modifierId, 'remoteId' => $spiContentType->remoteId, 'urlAliasSchema' => $spiContentType->urlAliasSchema, 'nameSchema' => $spiContentType->nameSchema, 'isContainer' => $spiContentType->isContainer, 'mainLanguageCode' => $mainLanguageCode, 'defaultAlwaysAvailable' => $spiContentType->defaultAlwaysAvailable, 'defaultSortField' => $spiContentType->sortField, 'defaultSortOrder' => $spiContentType->sortOrder));
}
/** * Get Content Type objects which belong to the given content type group. * * @param \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup $contentTypeGroup * * @return \eZ\Publish\API\Repository\Values\ContentType\ContentType[] Which have status DEFINED */ public function loadContentTypes(APIContentTypeGroup $contentTypeGroup) { $spiContentTypes = $this->contentTypeHandler->loadContentTypes($contentTypeGroup->id, SPIContentType::STATUS_DEFINED); $contentTypes = array(); foreach ($spiContentTypes as $spiContentType) { $contentTypes[] = $this->contentTypeDomainMapper->buildContentTypeDomainObject($spiContentType, array_map(function ($id) { return $this->contentTypeHandler->loadGroup($id); }, $spiContentType->groupIds)); } return $contentTypes; }