src/Controller/AjoutDocumentsController.php line 108

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\Form\Type\RelationsType;
  15. class AjoutDocumentsController extends TheatreController
  16. {
  17.     public function __construct(EntityManagerInterface $emTranslatorInterface $translatorTokenStorageInterface $tokenStorageFunctions $func)
  18.     {
  19.         // surbrillance du menu principal (thnet)
  20.         $GLOBALS['rub_courante'] = 'spectacles';
  21.         parent::__construct($translator$tokenStorage);
  22.         $this->em $em;
  23.         $this->func $func;
  24.         $this->asides = new asides();
  25.     }
  26.     /**
  27.      * @Route("/spectacles/documents/documents-ajout", name="ajout_documents_spectacles")
  28.      */
  29.     public function action_spectacles_documents_ajout(Request $request)
  30.     {
  31.         $formFactory $this->get('form.factory')->createBuilder(FormType::class, null, [
  32.             'attr' => [
  33.                 'id' => 'masterform'
  34.             ]
  35.         ]);
  36.         // ajax relation pour les spectacles
  37.         $formFactory->add('idspectacle'RelationsType::class, [
  38.             'label' => 'Choisissez un spectacle',
  39.             'type_dbdo' => 'spectacles',
  40.             'type_object' => 'form',
  41.             'dbdo' => 'idspectacle',
  42.             'relat' => 'simple',
  43.             'constraints' => [
  44.                 new Relations(['message' => 'Spectacle : veuillez choisir un spectacle'])
  45.             ]
  46.         ]);
  47.         $formFactory->add('validation'SubmitType::class, [
  48.             'label' => 'Continuer',
  49.             'attr' => [
  50.                 'class'=>'boutform boutbig'
  51.             ]
  52.         ]);
  53.         $form $formFactory->getForm();
  54.         $form->handleRequest($request);
  55.         if($form->isSubmitted() && $form->isValid())
  56.         {
  57.             // id de spectacle ?
  58.             $idspectacle $form->get('idspectacle')->getViewData();
  59.             if(!empty($idspectacle)) {
  60.                 $infos_spectacle $form->get('idspectacle')->getData();
  61.                 // direction le spectacle
  62.                 if(!empty($infos_spectacle->getUrlClean())) {
  63.                     return $this->redirectToRoute('spectacle_documents_edit', ['slug' => $infos_spectacle->getUrlClean()]);
  64.                 } else {
  65.                     $this->context['error']['spectacle_inconnu'] = 'Impossible de trouver le spectacle';
  66.                 }
  67.             } else {
  68.                 $this->context['error']['spectacle_inconnu'] = 'Impossible de trouver le spectacle';
  69.             }
  70.         }
  71.         $asides = new asides();
  72.         $asides->load('common_participer_contacts');
  73.         $this->context['view']->aside $asides->view();
  74.         $this->locate = array(=> 'Spectacles');
  75.         $this->title_page 'Ajouter un document numérisé lié à un spectacle';
  76.         $this->view->locate 'spectacles';
  77.         $this->view->js_more[] = 'ajax.relation.js';
  78.         return $this->view('spectacles/documents-ajout.html.twig', [
  79.             'form' => $form->createView()
  80.         ]);
  81.     }
  82.     /**
  83.      * @Route("/contacts/documents/documents-ajout", name="ajout_documents_contacts")
  84.      */
  85.     public function action_contacts_documents_ajout(Request $request)
  86.     {
  87.         $formFactory $this->get('form.factory')->createBuilder(FormType::class, null, [
  88.             'attr' => [
  89.                 'id' => 'masterform'
  90.             ]
  91.         ]);
  92.         // ajax relation pour les contacts
  93.         $formFactory->add('idcontact'RelationsType::class, [
  94.             'label' => 'Choisissez un contact',
  95.             'type_dbdo' => 'contacts',
  96.             'type_object' => 'form',
  97.             'dbdo' => 'idcontact',
  98.             'relat' => 'simple',
  99.             'constraints' => [
  100.                 new Relations(['message' => 'Contact : veuillez choisir un contact'])
  101.             ]
  102.         ]);
  103.         $formFactory->add('validation'SubmitType::class, [
  104.             'label' => 'Continuer',
  105.             'attr' => [
  106.                 'class'=>'boutform boutbig'
  107.             ]
  108.         ]);
  109.         $form $formFactory->getForm();
  110.         $form->handleRequest($request);
  111.         if($form->isSubmitted() && $form->isValid())
  112.         {
  113.             // id de contact ?
  114.             $idcontact $form->get('idcontact')->getViewData();
  115.             if(!empty($idcontact)) {
  116.                 $infos_contact $form->get('idcontact')->getData();
  117.                 // direction le contact
  118.                 if(!empty($infos_contact->getUrlClean())) {
  119.                     return $this->redirectToRoute('contact_documents_edit', ['slug' => $infos_contact->getUrlClean()]);
  120.                 } else {
  121.                     $this->context['error']['contact_inconnu'] = 'Impossible de trouver le contact';
  122.                 }
  123.             } else {
  124.                 $this->context['error']['contact_inconnu'] = 'Impossible de trouver le contact';
  125.             }
  126.         }
  127.         $asides = new asides();
  128.         $asides->load('common_participer_contacts');
  129.         $this->context['view']->aside $asides->view();
  130.         $this->locate = array(=> 'Spectacles');
  131.         $this->title_page 'Ajouter un document numérisé lié à un spectacle';
  132.         $this->view->locate 'spectacles';
  133.         $this->view->js_more[] = 'ajax.relation.js';
  134.         return $this->view('contacts/documents-ajout.html.twig', [
  135.             'form' => $form->createView()
  136.         ]);
  137.     }
  138. }