src/Controller/Admin/AboutAppController.php line 42

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\Configurations;
  4. use App\Entity\CrossApp;
  5. use App\Entity\User;
  6. use App\Form\AboutForm;
  7. use App\H3\TTControllerTrait;
  8. use App\Repository\ConfigurationsRepository;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
  11. use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
  12. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
  13. use EasyCorp\Bundle\EasyAdminBundle\Router\CrudUrlGenerator;
  14. use Symfony\Component\HttpFoundation\JsonResponse;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use Symfony\Component\Routing\Annotation\Route;
  18. class AboutAppController extends AbstractDashboardController
  19. {
  20.     use TTControllerTrait;
  21.     /**
  22.      * @var CrudUrlGenerator
  23.      */
  24.     private $crudUrlGenerator;
  25.     public function __construct(CrudUrlGenerator $crudUrlGenerator)
  26.     {
  27.         $this->crudUrlGenerator $crudUrlGenerator;
  28.     }
  29.     /**
  30.      * @return Response
  31.      * @Route("/admin")
  32.      */
  33.     public function index(): Response
  34.     {
  35.         /** @var User $user */
  36.         $user  $this->getUser();
  37.         if ( $user->is_admin() )
  38.             return $this->redirect$this->crudUrlGenerator->build()
  39.                 ->setController(ApplicationCrudController::class)->setAction(Action::INDEX)
  40.                 ->generateUrl() );
  41.         if ( null == $user->getCrossApps() ){
  42.             return new JsonResponse('no app for this user');
  43.         } else{
  44.             /** @var CrossApp $app */
  45.             $app  $user->getCrossApps()[0];
  46.             return $this->redirectToRoute('edit.cross.app', [
  47.                 'id' => $app->getId()
  48.             ]);
  49.         }
  50.     }
  51.     /**
  52.      * @Route("/admin/app/about", name="edit_about")
  53.      */
  54.     public function edit_about(ConfigurationsRepository $configurationsRepositoryEntityManagerInterface $entityManagerRequest $request){
  55.         /** @var Configurations|null $check_title */
  56.         $check_title  $configurationsRepository->findOneBy(['config_key' => 'about_title']);
  57.         /** @var Configurations|null $check_content */
  58.         $check_content  $configurationsRepository->findOneBy(['config_key' => 'about_content']);
  59.         if ( null == $check_title ){
  60.             $check_title = (new Configurations())
  61.                 ->setConfigValue('A propos de Yziapp')
  62.                 ->setConfigKey('about_title');
  63.             $entityManager->persist($check_title);
  64.             $entityManager->flush();
  65.         }
  66.         if ( null == $check_content ){
  67.             $check_content = (new Configurations())
  68.                 ->setConfigValue('.')
  69.                 ->setConfigKey('about_content');
  70.             $entityManager->persist($check_content);
  71.             $entityManager->flush();
  72.         }
  73.         $form $this->createForm(AboutForm::class, null, [
  74.             'd.title' => $check_title->getConfigValue(),
  75.             'd.content' => $check_content->getConfigValue()
  76.         ]);
  77.         $form->handleRequest($request);
  78.         if ( $form->isSubmitted() and $form->isValid() ){
  79.             $check_title->setConfigValue($form->get('title')->getData());
  80.             $check_content->setConfigValue((null != $form->get('content')->getData() ? $form->get('content')->getData() : '-'));
  81.             $entityManager->persist($check_title);
  82.             $entityManager->flush();
  83.             $entityManager->persist($check_content);
  84.             $entityManager->flush();
  85.             $this->addFlash('success''Opération réussie');
  86.             return $this->redirectToRoute('edit_about');
  87.         }
  88.         return $this->render('admin/about.app.html.twig', [
  89.             'form' => $form->createView()
  90.         ]);
  91.     }
  92. }