src/Controller/AidesController.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\ClassTheatre\asides;
  4. use App\ClassTheatre\TheatreController;
  5. use App\Service\Functions;
  6. use App\Validator\Relations;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\Form\Extension\Core\Type\FormType;
  9. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  13. use Symfony\Contracts\Translation\TranslatorInterface;
  14. use TheatreCore\Entity\Extranetusers;
  15. use TheatreCore\Form\Type\RelationsType;
  16. class AidesController extends TheatreController
  17. {
  18.     public function __construct(EntityManagerInterface $emTranslatorInterface $translatorTokenStorageInterface $tokenStorageFunctions $func)
  19.     {
  20.         // surbrillance du menu principal (thnet)
  21.         $GLOBALS['rub_courante'] = 'spectacles';
  22.         parent::__construct($translator$tokenStorage);
  23.         $this->em $em;
  24.         $this->func $func;
  25.         $this->view->include_header 'spectacles/spectacle_entete.inc.html.twig';
  26.         $this->asides = new asides();
  27.     }
  28.     /**
  29.      * @Route("/aides/ajouter-spectacles/", name="aides_ajouter_spectacles")
  30.      */
  31.     public function action_ajouter_spectacles(Request $request)
  32.     {
  33.         $user $this->getUser();
  34.         if($user instanceof Extranetusers) {
  35.             $formFactory $this->get('form.factory')->createBuilder(FormType::class, null, [
  36.                 'attr' => [
  37.                     'id' => 'masterform'
  38.                 ]
  39.             ]);
  40.             // ajax relation pour les spectacles
  41. //        $formFactory->add('relationselect',,'Choisissez un spectacle', array('relat'=>'simple','type_dbdo'=>'spectacles'));
  42.             $formFactory->add('idspectacle'RelationsType::class, [
  43.                 'label' => $this->context['tr']->trans('form_multimedia_spectacle'),
  44.                 'relat'=>'simple',
  45.                 'type_object' => 'form',
  46.                 'type_dbdo' => 'spectacles',
  47.                 'type' => 'idspectacle',
  48.                 'constraints' => [
  49.                     new Relations(['message' => 'Spectacle : veuillez choisir un spectacle'])
  50.                 ]
  51.             ]);
  52.             $formFactory->add('validation'SubmitType::class, [
  53.                 'label' => 'Continuer',
  54.                 'attr' => [
  55.                     'class'=>'boutform boutbig'
  56.                 ]
  57.             ]);
  58.             $form $formFactory->getForm();
  59.             $form->handleRequest($request);
  60.             if($form->isSubmitted() && $form->isValid()) {
  61.                 // filtrer
  62. //                $form->applyFilter('__ALL__', 'strip_and_trim');
  63.                 // id de spectacle ?
  64.                 $task $form->getData();
  65.                 $idspectacle $form->get('idspectacle')->getViewData();
  66.                 if(!empty($idspectacle)) {
  67.                     $infos_spectacle $form->get('idspectacle')->getData();
  68.                     // direction le spectacle
  69.                     if(!empty($infos_spectacle->getUrlClean())) {
  70.                         return $this->redirect('/spectacles/'.$infos_spectacle->getUrlClean().'/aides-etape/');
  71.                     } else {
  72.                         $context['error']['spectacle_inconnu'] = 'Impossible de trouver le spectacle';
  73.                     }
  74.                 } else {
  75.                     $context['error']['spectacle_inconnu'] = 'Impossible de trouver le spectacle';
  76.                 }
  77.             }
  78.         } else { // personne non loguĂ©e
  79.             // rediriger vers montheatre/connexion
  80.             return $this->redirectToRoute('app_login', ['urifrom' => '/aides/ajouter-spectacles''entete_connexion' => 'spectacles']);
  81.         }
  82.         // js en plus
  83.         $this->view->js_more = array(
  84.             'ajax.relation.js',
  85.         );
  86.         $this->title_page 'Ajouter un soutien';
  87.         $this->view->locate = array('/spectacles/' => 'Spectacles'=> 'Ajouter un soutien');
  88.         $this->rub_courante 'spectacles';
  89.         return $this->view('aides/ajouter-spectacles.html.twig', [
  90.             'form' => $form->createView()
  91.         ]);
  92.     }
  93. }