add customfield text + fix options in custom fields

This commit is contained in:
2014-11-08 11:55:59 +01:00
parent 4c9b6a6a15
commit 99a88e8705
5 changed files with 58 additions and 35 deletions

View File

@@ -7,6 +7,8 @@ use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Chill\CustomFieldsBundle\Service\CustomFieldProvider;
use Chill\CustomFieldsBundle\Entity\CustomField;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
class CustomFieldType extends AbstractType
{
@@ -37,22 +39,37 @@ class CustomFieldType extends AbstractType
}
$builder
->add('name', 'text')
->add('name', 'translatable_string')
->add('active')
->add('customFieldsGroup', 'entity', array(
'class' => 'ChillCustomFieldsBundle:CustomFieldsGroup',
'property' => 'name['.$this->culture.']'
))
->add('ordering', 'number')
;
->add('type', 'hidden', array('data' => $options['type']))
->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event)
{
$customField = $event->getData();
$form = $event->getForm();
// check if the customField object is "new"
// If no data is passed to the form, the data is "null".
// This should be considered a new "customField"
if (!$customField || null === $customField->getId()) {
$form->add('slug', 'text');
}
});
$builder->add(
$this->customFieldProvider
->getCustomFieldByType($options['type'])
->buildOptionsForm(
$builder
->create('options', null, array('compound' => true))
)
);
//add options field
$optionsType = $this->customFieldProvider
->getCustomFieldByType($options['type'])
->buildOptionsForm($builder);
if ($optionsType) {
$builder->add('options', $optionsType);
}
}
/**