|
@@ -0,0 +1,69 @@
|
|
|
+<?php
|
|
|
+/*
|
|
|
+ * This file is part of the Sonata package.
|
|
|
+ *
|
|
|
+ * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
|
|
|
+ *
|
|
|
+ * For the full copyright and license information, please view the LICENSE
|
|
|
+ * file that was distributed with this source code.
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
+namespace Sonata\AdminBundle\Form\Type;
|
|
|
+
|
|
|
+use Symfony\Component\Form\AbstractType;
|
|
|
+use Symfony\Component\OptionsResolver\OptionsResolverInterface;
|
|
|
+use Symfony\Component\Form\FormInterface;
|
|
|
+use Symfony\Component\Form\FormView;
|
|
|
+
|
|
|
+class ChoiceFieldMaskType extends AbstractType
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * {@inheritDoc}
|
|
|
+ */
|
|
|
+ public function buildView(FormView $view, FormInterface $form, array $options)
|
|
|
+ {
|
|
|
+ $allFieldNames = array();
|
|
|
+ foreach ($options['map'] as $value => $fieldNames) {
|
|
|
+ foreach ($fieldNames as $fieldName) {
|
|
|
+ $allFieldNames[$fieldName] = $fieldName;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $allFieldNames = array_values($allFieldNames);
|
|
|
+
|
|
|
+ $view->vars['all_fields'] = $allFieldNames;
|
|
|
+ $view->vars['map'] = $options['map'];
|
|
|
+
|
|
|
+ $options['expanded'] = false;
|
|
|
+
|
|
|
+ parent::buildView($view, $form, $options);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * {@inheritDoc}
|
|
|
+ */
|
|
|
+ public function setDefaultOptions(OptionsResolverInterface $resolver)
|
|
|
+ {
|
|
|
+ parent::setDefaultOptions($resolver);
|
|
|
+
|
|
|
+ $resolver->setDefaults(array(
|
|
|
+ 'map' => array(),
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * {@inheritDoc}
|
|
|
+ */
|
|
|
+ public function getParent()
|
|
|
+ {
|
|
|
+ return 'choice';
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * {@inheritDoc}
|
|
|
+ */
|
|
|
+ public function getName()
|
|
|
+ {
|
|
|
+ return 'sonata_type_choice_field_mask';
|
|
|
+ }
|
|
|
+}
|