|
@@ -0,0 +1,51 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace ExtraDataBundle\EventListener;
|
|
|
+
|
|
|
+use Sonata\AdminBundle\Event\ConfigureEvent;
|
|
|
+use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
|
|
+use Symfony\Component\Translation\TranslatorInterface;
|
|
|
+
|
|
|
+class SonataAdminConfigureListener
|
|
|
+{
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var TranslatorInterface
|
|
|
+ */
|
|
|
+ private $translator;
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param TranslatorInterface $translator
|
|
|
+ */
|
|
|
+ public function __construct(TranslatorInterface $translator)
|
|
|
+ {
|
|
|
+ $this->translator = $translator;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param ConfigureEvent $event
|
|
|
+ */
|
|
|
+ public function addOptions(ConfigureEvent $event)
|
|
|
+ {
|
|
|
+ if ($event->getMapper()->has('extraData')) {
|
|
|
+ $formMapper = $event->getMapper();
|
|
|
+ $formMapper->add('extraData', TextareaType::class, array(
|
|
|
+ 'help' => $this->translator->trans('help.json_format', array(), 'ExtraDataBundle'),
|
|
|
+ ));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param ConfigureEvent $event
|
|
|
+ */
|
|
|
+ public function addTemplate(ConfigureEvent $event)
|
|
|
+ {
|
|
|
+ if ($event->getMapper()->has('extraData')) {
|
|
|
+ $extraData = $event->getMapper()->get('extraData');
|
|
|
+ $extraData->setTemplate('ExtraDataBundle:CRUD:extra_data_field.html.twig');
|
|
|
+ $extraData->setOption('data', $event->getType());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|