eZ\Publish\Core\Repository\Helper\NameSchemaService::getFieldTitles PHP Method

getFieldTitles() protected method

Fetches the list of available Field identifiers in the token and returns an array of their current title value.
See also: eZ\Publish\Core\Repository\FieldType::getName()
protected getFieldTitles ( array $schemaIdentifiers, eZ\Publish\SPI\Persistence\Content\Type | eZ\Publish\API\Repository\Values\ContentType\ContentType $contentType, array $fieldMap, string $languageCode ) : string[]
$schemaIdentifiers array
$contentType eZ\Publish\SPI\Persistence\Content\Type | eZ\Publish\API\Repository\Values\ContentType\ContentType
$fieldMap array
$languageCode string
return string[] Key is the field identifier, value is the title value
    protected function getFieldTitles(array $schemaIdentifiers, $contentType, array $fieldMap, $languageCode)
    {
        $fieldTitles = array();
        foreach ($schemaIdentifiers as $fieldDefinitionIdentifier) {
            if (isset($fieldMap[$fieldDefinitionIdentifier][$languageCode])) {
                if ($contentType instanceof SPIContentType) {
                    $fieldDefinition = null;
                    foreach ($contentType->fieldDefinitions as $spiFieldDefinition) {
                        if ($spiFieldDefinition->identifier === $fieldDefinitionIdentifier) {
                            $fieldDefinition = $this->contentTypeDomainMapper->buildFieldDefinitionDomainObject($spiFieldDefinition);
                            break;
                        }
                    }
                    if ($fieldDefinition === null) {
                        $fieldTitles[$fieldDefinitionIdentifier] = '';
                        continue;
                    }
                } elseif ($contentType instanceof ContentType) {
                    $fieldDefinition = $contentType->getFieldDefinition($fieldDefinitionIdentifier);
                } else {
                    throw new InvalidArgumentType('$contentType', 'API or SPI variant of ContentType');
                }
                $nameableFieldTypeService = $this->nameableFieldTypeRegistry->getFieldType($fieldDefinition->fieldTypeIdentifier);
                $fieldTitles[$fieldDefinitionIdentifier] = $nameableFieldTypeService->getFieldName($fieldMap[$fieldDefinitionIdentifier][$languageCode], $fieldDefinition, $languageCode);
            }
        }
        return $fieldTitles;
    }