protected function configureFormFields(FormMapper $formMapper)
{
$media = $this->getSubject();
if (!$media) {
$media = $this->getNewInstance();
}
if (!$media || !$media->getProviderName()) {
return;
}
$formMapper->getFormBuilder()->addModelTransformer(new ProviderDataTransformer($this->pool, $this->getClass()), true);
$provider = $this->pool->getProvider($media->getProviderName());
if ($media->getId()) {
$this->buildEditForm($formMapper, $provider);
} else {
$provider->buildCreateForm($formMapper);
}
if (in_array($provider->getName(), $this->localisedMediaProviders)) {
$formMapper->add('locale', 'choice', array('choices' => $this->getLocaleChoices()));
}
$formMapper->add('tags', 'sonata_type_model', array('required' => false, 'expanded' => false, 'multiple' => true, 'help_label' => 'help.media_tag', 'taggable' => true, 'choices_as_values' => true, 'attr' => array('style' => "width:220px")));
//remove and re-add fields to control field order
if ($formMapper->has('enabled')) {
$formMapper->remove('enabled');
$formMapper->add('enabled', null, array('required' => false), array('inline_block' => true));
}
if ($formMapper->has('cdnIsFlushable')) {
$formMapper->remove('cdnIsFlushable');
$formMapper->add('cdnIsFlushable', null, array('required' => false), array('inline_block' => true));
}
}