diff --git a/core/modules/file/src/Entity/File.php b/core/modules/file/src/Entity/File.php index b8c130728c..ab66e2ad09 100644 --- a/core/modules/file/src/Entity/File.php +++ b/core/modules/file/src/Entity/File.php @@ -248,6 +248,11 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { ->setSetting('case_sensitive', TRUE) ->addConstraint('FileUriUnique'); + $fields['url'] = BaseFieldDefinition::create('file_url') + ->setLabel(t('File URL')) + ->setDescription(t('The URL to access the file.')) + ->setComputed(TRUE); + $fields['filemime'] = BaseFieldDefinition::create('string') ->setLabel(t('File MIME type')) ->setSetting('is_ascii', TRUE) diff --git a/core/modules/file/src/FileUrl.php b/core/modules/file/src/FileUrl.php new file mode 100644 index 0000000000..7c79ab4bd5 --- /dev/null +++ b/core/modules/file/src/FileUrl.php @@ -0,0 +1,26 @@ +getParent()->getEntity(); + $uri = $entity->uri->value; + return file_create_url($uri); + } + +} diff --git a/core/modules/file/src/Plugin/Field/FieldType/FileUrlItem.php b/core/modules/file/src/Plugin/Field/FieldType/FileUrlItem.php new file mode 100644 index 0000000000..32f79455dc --- /dev/null +++ b/core/modules/file/src/Plugin/Field/FieldType/FileUrlItem.php @@ -0,0 +1,48 @@ +setLabel(t('File URL value')) + ->setComputed(TRUE) + ->setClass(FileUrl::class); + + return $properties; + } + + /** + * {@inheritdoc} + */ + public static function schema(FieldStorageDefinitionInterface $field_definition) { + return []; + } + +}