<?php
namespace App\Controller;
use App\ClassTheatre\asides;
use App\ClassTheatre\TheatreController;
use App\Service\Functions;
use App\Validator\Relations;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use TheatreCore\Entity\Extranetusers;
use TheatreCore\Form\Type\RelationsType;
class AidesController extends TheatreController
{
public function __construct(EntityManagerInterface $em, TranslatorInterface $translator, TokenStorageInterface $tokenStorage, Functions $func)
{
// surbrillance du menu principal (thnet)
$GLOBALS['rub_courante'] = 'spectacles';
parent::__construct($translator, $tokenStorage);
$this->em = $em;
$this->func = $func;
$this->view->include_header = 'spectacles/spectacle_entete.inc.html.twig';
$this->asides = new asides();
}
/**
* @Route("/aides/ajouter-spectacles/", name="aides_ajouter_spectacles")
*/
public function action_ajouter_spectacles(Request $request)
{
$user = $this->getUser();
if($user instanceof Extranetusers) {
$formFactory = $this->get('form.factory')->createBuilder(FormType::class, null, [
'attr' => [
'id' => 'masterform'
]
]);
// ajax relation pour les spectacles
// $formFactory->add('relationselect',,'Choisissez un spectacle', array('relat'=>'simple','type_dbdo'=>'spectacles'));
$formFactory->add('idspectacle', RelationsType::class, [
'label' => $this->context['tr']->trans('form_multimedia_spectacle'),
'relat'=>'simple',
'type_object' => 'form',
'type_dbdo' => 'spectacles',
'type' => 'idspectacle',
'constraints' => [
new Relations(['message' => 'Spectacle : veuillez choisir un spectacle'])
]
]);
$formFactory->add('validation', SubmitType::class, [
'label' => 'Continuer',
'attr' => [
'class'=>'boutform boutbig'
]
]);
$form = $formFactory->getForm();
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
// filtrer
// $form->applyFilter('__ALL__', 'strip_and_trim');
// id de spectacle ?
$task = $form->getData();
$idspectacle = $form->get('idspectacle')->getViewData();
if(!empty($idspectacle)) {
$infos_spectacle = $form->get('idspectacle')->getData();
// direction le spectacle
if(!empty($infos_spectacle->getUrlClean())) {
return $this->redirect('/spectacles/'.$infos_spectacle->getUrlClean().'/aides-etape/');
} else {
$context['error']['spectacle_inconnu'] = 'Impossible de trouver le spectacle';
}
} else {
$context['error']['spectacle_inconnu'] = 'Impossible de trouver le spectacle';
}
}
} else { // personne non loguée
// rediriger vers montheatre/connexion
return $this->redirectToRoute('app_login', ['urifrom' => '/aides/ajouter-spectacles', 'entete_connexion' => 'spectacles']);
}
// js en plus
$this->view->js_more = array(
'ajax.relation.js',
);
$this->title_page = 'Ajouter un soutien';
$this->view->locate = array('/spectacles/' => 'Spectacles', 0 => 'Ajouter un soutien');
$this->rub_courante = 'spectacles';
return $this->view('aides/ajouter-spectacles.html.twig', [
'form' => $form->createView()
]);
}
}