![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/CoreBundle/Form/EventListener/ |
<?php namespace Mautic\CoreBundle\Form\EventListener; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\Form\Extension\Core\Type\HiddenType; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; class FormExitSubscriber implements EventSubscriberInterface { /** * @param string $model * @param array $options */ public function __construct( private $model, private $options = [] ) { } public static function getSubscribedEvents(): array { return [FormEvents::PRE_SET_DATA => 'preSetData']; } public function preSetData(FormEvent $event): void { $id = !empty($this->options['data']) ? $this->options['data']->getId() : 0; if ($id && empty($this->options['ignore_formexit'])) { // add a hidden field that is used exclusively to warn a user to use save/cancel to exit a form $form = $event->getForm(); $form->add( 'unlockModel', HiddenType::class, [ 'data' => $this->model, 'required' => false, 'mapped' => false, 'attr' => ['class' => 'form-exit-unlock-model'], ] ); $form->add( 'unlockId', HiddenType::class, [ 'data' => $id, 'required' => false, 'mapped' => false, 'attr' => ['class' => 'form-exit-unlock-id'], ] ); if (isset($this->options['unlockParameter'])) { $form->add( 'unlockParameter', HiddenType::class, [ 'data' => $this->options['unlockParameter'], 'required' => false, 'mapped' => false, 'attr' => ['class' => 'form-exit-unlock-parameter'], ] ); } } } }