diff --git a/lib/FieldType/Mapper/MediaFormMapper.php b/lib/FieldType/Mapper/MediaFormMapper.php index 65af274b6..dfb868181 100644 --- a/lib/FieldType/Mapper/MediaFormMapper.php +++ b/lib/FieldType/Mapper/MediaFormMapper.php @@ -30,6 +30,9 @@ class MediaFormMapper implements FieldDefinitionFormMapperInterface, FieldValueF /** @var MaxUploadSize */ private $maxUploadSize; + protected const ACCEPT_VIDEO = 'video/*'; + protected const ACCEPT_AUDIO = 'audio/*'; + public function __construct(FieldTypeService $fieldTypeService, MaxUploadSize $maxUploadSize) { $this->fieldTypeService = $fieldTypeService; @@ -80,6 +83,10 @@ public function mapFieldValueForm(FormInterface $fieldForm, FieldData $data) $formConfig = $fieldForm->getConfig(); $fieldType = $this->fieldTypeService->getFieldType($fieldDefinition->fieldTypeIdentifier); + $acceptedFormat = Type::TYPE_HTML5_AUDIO === $fieldDefinition->fieldSettings['mediaType'] + ? self::ACCEPT_AUDIO + : self::ACCEPT_VIDEO; + $fieldForm ->add( $formConfig->getFormFactory()->createBuilder() @@ -89,6 +96,9 @@ public function mapFieldValueForm(FormInterface $fieldForm, FieldData $data) [ 'required' => $fieldDefinition->isRequired, 'label' => $fieldDefinition->getName(), + 'attr' => [ + 'accept' => $acceptedFormat, + ], ] ) ->addModelTransformer(new MediaValueTransformer($fieldType, $data->value, Value::class))