/** * @param File $element * @param ServiceLocatorInterface $services * @return File */ protected function configureElement(File $element, ServiceLocatorInterface $services) { /* @var $options ModuleOptionsInterface */ $options = $services->get(ModuleOptions::class); $element->setAttributes(['multiple' => $options->getAllowMultipleUpload()]); $element->setOptions(['label' => $options->getUploadFileLabel(), 'target_class' => $options->getClassName()]); $inputSpec = $element->getInputSpecification(); $inputSpec['filters'][] = ['name' => 'FileUpload']; $inputSpec['validators'][] = ['name' => 'FileUploadFile']; if ($options->getUploadFileSizes()) { $inputSpec['validators'][] = ['name' => 'FileSize', 'options' => $options->getUploadFileSizes()]; } if ($options->getUploadFileCounts()) { $inputSpec['validators'][] = ['name' => 'FileCount', 'options' => $options->getUploadFileCounts()]; } if ($options->getUploadFileMimeTypes()) { $inputSpec['validators'][] = ['name' => 'FileMimeType', 'options' => $options->getUploadFileMimeTypes()]; } $element->setInputSpecification($inputSpec); return $element; }