<?php
namespace App\Controller\Front;
use App\Entity\FaqRequest;
use App\Form\FaqRequestType;
use App\Repository\FaqRepository;
use App\EmailNotification\ToAdmin;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
#[Route(path: '/{_locale}')]
class FaqController extends AbstractController
{
#[Route(path: '/faq', name: 'faq_show')]
public function index(FaqRepository $faqRepository, Request $request, ToAdmin $toAdmin, TranslatorInterface $translator, EntityManagerInterface $em)
{
$locale = ($request->getLocale() ? $request->getLocale() : 'en');
$faqs = $faqRepository->findByLocale($locale);
$faqRequest = new FaqRequest();
$form = $this->createForm(FaqRequestType::class, $faqRequest);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$homepageUrl = $this->generateUrl('homepage', [], UrlGeneratorInterface::ABSOLUTE_URL);
if (substr($homepageUrl, -1) == '/') {
$homepageUrl = substr($homepageUrl, 0, -1);
}
if ($request->server->get('HTTP_ORIGIN') != null && $request->server->get('HTTP_ORIGIN'). '/'. $locale == $homepageUrl) {
$faqRequest->setStatus('new')
->setCreatedAt(new \DateTime('now'));
$em->persist($faqRequest);
$em->flush();
$toAdmin->newQuestionFaq($faqRequest);
$this->addFlash('success', $translator->trans('flashes.faq_controller.ask_question'));
return $this->redirectToRoute('faq_show');
}
else {
return $this->redirectToRoute('faq_show');
}
}
return $this->render('front/faq/index.html.twig', [
'faqs' => $faqs,
'form' => $form->createView(),
]);
}
}