/**
* @{inheritdoc}
*/
public function handle(FormInterface $form, $attributes = array())
{
if (!$form->isValid()) {
return false;
}
$mediaIds = [];
if ($form->has('files')) {
$files = $form['files']->getData();
if (count($files)) {
$type = $this->formExtension->getType($form->getName());
$collectionId = $type->getCollectionId();
$ids = [];
/** @var UploadedFile $file */
foreach ($form['files']->getData() as $file) {
if ($file instanceof UploadedFile) {
$media = $this->mediaManager->save($file, ['collection' => $collectionId, 'locale' => $form->get('locale')->getData(), 'title' => $file->getClientOriginalName()], null);
$ids[] = $media->getId();
}
}
$mediaIds['files'] = $ids;
}
}
$attributes['form'] = $form;
$this->saveForm($form, $attributes, $mediaIds);
$type = $this->formExtension->getType($form->getName());
if ($type instanceof TypeInterface) {
$this->sendMails($type, $attributes, $form);
}
return true;
}