src/Controller/NavbarController.php line 68

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\FamilleProduitRepository;
  4. use App\Repository\Site\AmbianceThematiqueRepository;
  5. use App\Repository\Template\PageRepository;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Form\Extension\Core\Type\FileType;
  10. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  11. use Symfony\Component\Validator\Constraints\File;
  12. class NavbarController extends AbstractController
  13. {
  14.     //Permet la gestion du logo dans le back office
  15.     /**
  16.      * @Route("/cmai-groupe-backoffice-admin/logo", name="logo")
  17.      */
  18.     public function addLogo(Request $request)
  19.     {
  20.         $validationMessage null;
  21.         $erreur=null;
  22.         $form $this->createFormBuilder()
  23.             ->add('logo'FileType::class, array(
  24.                 'label' => 'Logo au format .png'
  25.                 'multiple' => false,
  26.                 'required' => true,
  27.                 'attr'   =>  ['class'=> 'form-group  field-text'],
  28.                 'constraints' => [
  29.                     new File([
  30.                         'mimeTypes' => ['image/png']
  31.                     ])
  32.                 ]
  33.             ))
  34.             ->add('save'SubmitType::class, array('label'=>'Sauvegarder le logo',
  35.                 'attr' => array('class' => 'btn btn-primary action-save'),
  36.             ))
  37.             ->getForm();
  38.         $form->handleRequest($request);
  39.         if ($form->isSubmitted() && $form->isValid()) {
  40.             $file $form->getData()['logo'];
  41.             // $ext = $file->guessClientExtension();
  42.             $fileName "logo.png";
  43.             // $fileName = "logo.".$ext;
  44.             $logoDir $this->getParameter('kernel.project_dir') . '/public/uploads/logo';
  45.             $file->move($logoDir$fileName);
  46.             $validationMessage="Enregistrement du logo éffectué";
  47.         }elseif ($form->isSubmitted() && !$form->isValid()) {
  48.             $erreur "Une erreur est survenue lors de l'importation";
  49.         }
  50.         // replace this example code with whatever you need
  51.         return $this->render('admin/logo.html.twig', [
  52.             'form' => $form->createView(),
  53.             'validationMessage'=>$validationMessage,
  54.             'erreur'=>$erreur
  55.         ]
  56.         );
  57.     }
  58.     //navbar
  59.     public function indexAction(PageRepository $pageRepositoryFamilleProduitRepository $familleProduitRepositoryAmbianceThematiqueRepository $ambianceThematiqueRepository)
  60.     {
  61.         $familleProduits $familleProduitRepository->findBy(['actif' => true], ['placement' => 'ASC']);
  62.         $ambianceThematiques $ambianceThematiqueRepository->findBy([], ['placement' => 'ASC']);
  63.         $contact $pageRepository->findOneBy(['isContactForm' => true], ['navbarPosition' => 'ASC']);
  64.         $templateNavbarPages $pageRepository->findBy(['navbarActive' => true], ['navbarPosition' => 'ASC']);
  65.         $templateTopNavbarPages $pageRepository->findBy(['navbarTopActive' => true], ['navbarPosition' => 'ASC']);
  66.         $templateSousMenuNavbarPages $pageRepository->findBy(['navbarSousMenu' => true], ['navbarPosition' => 'ASC']);
  67.         $currentUrl $this->container->get('request_stack')->getMainRequest()->getRequestUri();
  68.         $urlImageFamilleProduit $this->getParameter('app.path.famille_produit_images').'/';
  69.         $urlImageSousFamilleProduit $this->getParameter('app.path.sous_famille_produit_images').'/';
  70.         // $urlImageProduit = $this->getParameter('app.path.product_images').'/';
  71.         // $urlImageAmbiance = $this->getParameter('app.path.ambiance_images').'/';
  72.         $urlImageThematiqueAmbiance $this->getParameter('app.path.ambiance_thematique_images').'/';
  73.         $urlImageSousThematiqueAmbiance $this->getParameter('app.path.ambiance_sous_thematique_images').'/';
  74.         $sousFamilleTypes = [];
  75.         foreach ($familleProduits as $familleProduit) {
  76.             foreach ($familleProduit->getSousFamilles() as $sousFamille) {
  77.                 if($sousFamille->getSousFamilleTypes()){
  78.                     foreach ($sousFamille->getSousFamilleTypes() as $sousFamilleType) {
  79.                         $sousFamilleTypes[$familleProduit->getSeoUrl()][$sousFamilleType->getPlacement()][$sousFamille->getPlacement()] = [
  80.                             'sousFamilleType' => $sousFamilleType,
  81.                             'sousFamille' => $sousFamille
  82.                         ];
  83.                         ksort($sousFamilleTypes[$familleProduit->getSeoUrl()][$sousFamilleType->getPlacement()]);
  84.                         ksort($sousFamilleTypes[$familleProduit->getSeoUrl()]);
  85.                     }
  86.                 }
  87.             }
  88.         }
  89.         return $this->render('navbar/navbar.html.twig', array(
  90.             'contact' => $contact,
  91.             'familleProduits' => $familleProduits,
  92.             'currentUrl' => $currentUrl,
  93.             'urlImageFamilleProduit' => $urlImageFamilleProduit,
  94.             'urlImageSousFamilleProduit' => $urlImageSousFamilleProduit,
  95.             // 'urlImageProduit' => $urlImageProduit,
  96.             // 'urlImageAmbiance' => $urlImageAmbiance,
  97.             'templateNavbarPages' => $templateNavbarPages,
  98.             'templateTopNavbarPages' => $templateTopNavbarPages,
  99.             'templateSousMenuNavbarPages' => $templateSousMenuNavbarPages,
  100.             'ambianceThematiques' => $ambianceThematiques,
  101.             'urlImageThematiqueAmbiance' => $urlImageThematiqueAmbiance,
  102.             'urlImageSousThematiqueAmbiance' => $urlImageSousThematiqueAmbiance,
  103.             'sousFamilleTypes' => $sousFamilleTypes,
  104.         ));
  105.     }
  106. }