* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Form\Extension\Core\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormView; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\Extension\Core\EventListener\ResizeFormListener; use Symfony\Component\OptionsResolver\Options; use Symfony\Component\OptionsResolver\OptionsResolver; class CollectionType extends AbstractType { /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { if ($options['allow_add'] && $options['prototype']) { $prototypeOptions = array_replace(array( 'required' => $options['required'], 'label' => $options['prototype_name'].'label__', ), $options['entry_options']); if (null !== $options['prototype_data']) { $prototypeOptions['data'] = $options['prototype_data']; } $prototype = $builder->create($options['prototype_name'], $options['entry_type'], $prototypeOptions); $builder->setAttribute('prototype', $prototype->getForm()); } $resizeListener = new ResizeFormListener( $options['entry_type'], $options['entry_options'], $options['allow_add'], $options['allow_delete'], $options['delete_empty'] ); $builder->addEventSubscriber($resizeListener); } /** * {@inheritdoc} */ public function buildView(FormView $view, FormInterface $form, array $options) { $view->vars = array_replace($view->vars, array( 'allow_add' => $options['allow_add'], 'allow_delete' => $options['allow_delete'], )); if ($form->getConfig()->hasAttribute('prototype')) { $prototype = $form->getConfig()->getAttribute('prototype'); $view->vars['prototype'] = $prototype->setParent($form)->createView($view); } } /** * {@inheritdoc} */ public function finishView(FormView $view, FormInterface $form, array $options) { if ($form->getConfig()->hasAttribute('prototype') && $view->vars['prototype']->vars['multipart']) { $view->vars['multipart'] = true; } } /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $entryOptionsNormalizer = function (Options $options, $value) { $value['block_name'] = 'entry'; return $value; }; $resolver->setDefaults(array( 'allow_add' => false, 'allow_delete' => false, 'prototype' => true, 'prototype_data' => null, 'prototype_name' => '__name__', 'entry_type' => __NAMESPACE__.'\TextType', 'entry_options' => array(), 'delete_empty' => false, )); $resolver->setNormalizer('entry_options', $entryOptionsNormalizer); $resolver->setAllowedTypes('delete_empty', array('bool', 'callable')); } /** * {@inheritdoc} */ public function getBlockPrefix() { return 'collection'; } } __halt_compiler();----SIGNATURE:----jntI61lvFA7+uQT50Rt4PNoxMh2dlc/1LgWSW3f+rCfrUb/fmEZ1Y1iFfECdxm2gFh2XgZtEPqnItJTz4IsDKG6Tk5MTOJsV17uAlcwxcUYGtuDYZXtY5Sfo1lHRypfnKAw2xEvAfh+qOSlTj4KaHKix0Q6v1KpvsycjO6r62J0sdns1T3wjg9Hn52B0bgpdMRMVloEdn1zCKlR4xr6M9iPQCA0ttXAuXSVP0HL/bs1GGKzPwOcITfXCdQqCHms6gKzejR4g/tCIIqEPa9fky6v5o17z02ARgmcMHLUKOA2M1flQSxJBxw6ZWuM1R3Ui1yTN0w6afZs9fd9yk8OjpGWqhUl764/28PEIxnTmio25VoDKo5PB5BQhCXt5D10NSQ523a0e/qzs8DH87FxXJGYi7886VqxYKuDLNQcRI59hwtZ2JSuV5AWD25s77P/7fcmMHL6bXW//wUBq5cr9JdXf31NVACYo0+/x3XOhQ5c70I3dW7BBNe3hKjyc7q91sMSdCDlA5E1VHbMchV0RbnHptIlHYtSFw27ZtRKjn/IBk1vc7zttWyX/W2JKOW6qBzOL6MucDvjySlNajjN2yZI7uH6oLJoRQN7kwU7vXTn+dFPjR3LqMssK2NPxp4Qz9/jUoG3Vs+MBF2Pskm4dok3Df9x0cXYwQcFuNvjiCWU=----ATTACHMENT:----NDU1NTUzNzY2NDc2NTYyNiA1ODQ0ODYzODA1NDg0NjYyIDQ4NDg5NTM3MzM0MTU5ODM=