<?php
namespace App\Controller;
use App\Repository\FamilleProduitRepository;
use App\Repository\Site\AmbianceThematiqueRepository;
use App\Repository\Template\PageRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Validator\Constraints\File;
class NavbarController extends AbstractController
{
//Permet la gestion du logo dans le back office
/**
* @Route("/cmai-groupe-backoffice-admin/logo", name="logo")
*/
public function addLogo(Request $request)
{
$validationMessage = null;
$erreur=null;
$form = $this->createFormBuilder()
->add('logo', FileType::class, array(
'label' => 'Logo au format .png',
'multiple' => false,
'required' => true,
'attr' => ['class'=> 'form-group field-text'],
'constraints' => [
new File([
'mimeTypes' => ['image/png']
])
]
))
->add('save', SubmitType::class, array('label'=>'Sauvegarder le logo',
'attr' => array('class' => 'btn btn-primary action-save'),
))
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$file = $form->getData()['logo'];
// $ext = $file->guessClientExtension();
$fileName = "logo.png";
// $fileName = "logo.".$ext;
$logoDir = $this->getParameter('kernel.project_dir') . '/public/uploads/logo';
$file->move($logoDir, $fileName);
$validationMessage="Enregistrement du logo éffectué";
}elseif ($form->isSubmitted() && !$form->isValid()) {
$erreur = "Une erreur est survenue lors de l'importation";
}
// replace this example code with whatever you need
return $this->render('admin/logo.html.twig', [
'form' => $form->createView(),
'validationMessage'=>$validationMessage,
'erreur'=>$erreur
]
);
}
//navbar
public function indexAction(PageRepository $pageRepository, FamilleProduitRepository $familleProduitRepository, AmbianceThematiqueRepository $ambianceThematiqueRepository)
{
$familleProduits = $familleProduitRepository->findBy(['actif' => true], ['placement' => 'ASC']);
$ambianceThematiques = $ambianceThematiqueRepository->findBy([], ['placement' => 'ASC']);
$contact = $pageRepository->findOneBy(['isContactForm' => true], ['navbarPosition' => 'ASC']);
$templateNavbarPages = $pageRepository->findBy(['navbarActive' => true], ['navbarPosition' => 'ASC']);
$templateTopNavbarPages = $pageRepository->findBy(['navbarTopActive' => true], ['navbarPosition' => 'ASC']);
$templateSousMenuNavbarPages = $pageRepository->findBy(['navbarSousMenu' => true], ['navbarPosition' => 'ASC']);
$currentUrl = $this->container->get('request_stack')->getMainRequest()->getRequestUri();
$urlImageFamilleProduit = $this->getParameter('app.path.famille_produit_images').'/';
$urlImageSousFamilleProduit = $this->getParameter('app.path.sous_famille_produit_images').'/';
// $urlImageProduit = $this->getParameter('app.path.product_images').'/';
// $urlImageAmbiance = $this->getParameter('app.path.ambiance_images').'/';
$urlImageThematiqueAmbiance = $this->getParameter('app.path.ambiance_thematique_images').'/';
$urlImageSousThematiqueAmbiance = $this->getParameter('app.path.ambiance_sous_thematique_images').'/';
$sousFamilleTypes = [];
foreach ($familleProduits as $familleProduit) {
foreach ($familleProduit->getSousFamilles() as $sousFamille) {
if($sousFamille->getSousFamilleTypes()){
foreach ($sousFamille->getSousFamilleTypes() as $sousFamilleType) {
$sousFamilleTypes[$familleProduit->getSeoUrl()][$sousFamilleType->getPlacement()][$sousFamille->getPlacement()] = [
'sousFamilleType' => $sousFamilleType,
'sousFamille' => $sousFamille
];
ksort($sousFamilleTypes[$familleProduit->getSeoUrl()][$sousFamilleType->getPlacement()]);
ksort($sousFamilleTypes[$familleProduit->getSeoUrl()]);
}
}
}
}
return $this->render('navbar/navbar.html.twig', array(
'contact' => $contact,
'familleProduits' => $familleProduits,
'currentUrl' => $currentUrl,
'urlImageFamilleProduit' => $urlImageFamilleProduit,
'urlImageSousFamilleProduit' => $urlImageSousFamilleProduit,
// 'urlImageProduit' => $urlImageProduit,
// 'urlImageAmbiance' => $urlImageAmbiance,
'templateNavbarPages' => $templateNavbarPages,
'templateTopNavbarPages' => $templateTopNavbarPages,
'templateSousMenuNavbarPages' => $templateSousMenuNavbarPages,
'ambianceThematiques' => $ambianceThematiques,
'urlImageThematiqueAmbiance' => $urlImageThematiqueAmbiance,
'urlImageSousThematiqueAmbiance' => $urlImageSousThematiqueAmbiance,
'sousFamilleTypes' => $sousFamilleTypes,
));
}
}