<?php
namespace App\Controller\Web;
use App\Entity\Organization;
use App\WebContent\MetaData;
use App\WebContent\SEO;
use App\WebContent\WebPage;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class DefaultController extends AbstractController
{
/**
* @Route("/", name="web_root")
*/
public function index(SEO $seoService, WebPage $webPageService, MetaData $metaDataService ): Response
{
$slug = 'accueil';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/home.html.twig', $data);
}
/**
* @Route("/a-propos", name="web_about")
*/
public function about(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'a-propos';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/about.html.twig', $data);
}
/**
* @Route("/mentions-legales", name="web_mentions_legales")
*/
public function mentionsLegales(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'mentions-legales';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData, $entities);
$components = $webPageService->getComponents($webPage->getComponents());
// $cares = $webPageService->getCares();
// $menuCategories = $webPageService->getMenuCategories();
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components,
// 'cares' => $cares,
// 'menuCategories' => $menuCategories
];
// dump($data);die;
return $this->render('web/pages/default.html.twig', $data);
}
/**
* @Route("/contact", name="web_contact")
*/
public function contact(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'contact';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/contact.html.twig', $data);
}
/**
* @Route("/tarification", name="web_tarification")
*/
public function tarification(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'tarification';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/tarification.html.twig', $data);
}
/**
* @Route("/actualites", name="web_news_list")
*/
public function articles(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'actualites';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/news_list.html.twig', $data);
}
/**
* @Route("/actualites/{slug}", name="web_article_show")
*/
public function article($slug, SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$article = $webPageService->getDataArticle($slug);
if(null === $article) {
die('error 404');
}
$webPage = $webPageService->getData('actualites');
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage,'article' => $article];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
"article" => $article,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/news_show.html.twig', $data);
}
/**
* @Route("/references", name="web_projects_list")
*/
public function projects(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'references';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
// dump($data);die;
return $this->render('web/pages/projects_list.html.twig', $data);
}
/**
* @Route("/references/{slug}", name="web_project_show")
*/
public function project($slug, SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$article = $webPageService->getDataArticle($slug, 'project');
if(null === $article) {
die('error 404');
}
$webPage = $webPageService->getData('references');
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
"article" => $article,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/project_show.html.twig', $data);
}
/**
* @Route("/prestations", name="web_prestations_list")
*/
public function prestations(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'prestations';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/prestations_list.html.twig', $data);
}
/**
* @Route("/prestations/{slug}", name="web_prestation_show")
*/
public function prestation($slug, SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$article = $webPageService->getDataArticle($slug, 'prestation');
if(null === $article) {
die('error 404');
}
$webPage = $webPageService->getData('prestations');
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
"article" => $article,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/prestation_show.html.twig', $data);
}
/**
* @Route("/ajax/form/contact", name="ajax_form_contact")
*/
public function ajaxFomContact(Request $request, MailerInterface $mailer, EntityManagerInterface $manager)
{
// dump($request);
// dump($request->isXmlHttpRequest());
// die;
if ($request->isXmlHttpRequest()){
$slug = $this->getParameter('organization.slug');
$organization = $manager->getRepository(Organization::class)
->findOneBy(['slug' => $slug]);
$data = $request->request->all();
// dump($organization);
// dump($data);
// dump($data['email']);
// die;
$email = (new Email())
->from($data['email'])
// ->from('johan@delit.fr')
->to($organization->getEmail())
//->to('olivier@delit.fr')
// ->cc($this->getParameter('dev1.mail'))
->cc($this->getParameter('dev2.mail'))
//->cc('cc@example.com')
//->bcc('bcc@example.com')
//->replyTo('fabien@example.com')
//->priority(Email::PRIORITY_HIGH)
->subject('Nouveau message de contact')
// ->text('Sending emails is fun again!')
->html($this->renderView(
'@web/emails/email_default.html.twig',
[ 'data' => $data ]
)
);
$mailer->send($email);
return new JsonResponse([
'data' => [
]
], JsonResponse::HTTP_OK);
}
return new JsonResponse([
'data' => ["test"]
], JsonResponse::HTTP_BAD_GATEWAY);
}
/**
* @Route("/template/email", name="web_template_email")
*/
public function email(): Response
{
$data = [
"first_name" => "fgdg",
"company" => "",
"last_name" => "xcvxcv",
"collab" => "",
"email" => "johan.remy@graines-digitales.online",
"website" => "",
"phone" => "+212700377087",
"message" => "ghfdghdf"
];
return $this->render('@web/emails/email_default.html.twig', [ 'data' => $data ]);
}
/**
* @Route("/georgesdasilva", name="georges_da_silva")
*/
public function georgesdasilva(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'georges-da-silva';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/default.html.twig', $data);
}
/**
* @Route("/mathieuchaput", name="mathieu_chaput")
*/
public function mathieuchaput(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'mathieu-chaput';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/default.html.twig', $data);
}
/**
* @Route("/ceciledasilvahisquin", name="cecile_da_silva_hisquin")
*/
public function ceciledasilvahisquin(SEO $seoService, WebPage $webPageService, MetaData $metaDataService): Response
{
$slug = 'cecile-da-silva-hisquin';
$webPage = $webPageService->getData($slug);
$metaData = $metaDataService->getData($webPage);
$entities = ['webPage' => $webPage];
$structuredData = $seoService->getStructuredData($metaData,$entities);
$components = $webPageService->getComponents($webPage->getComponents());
$data = [
'controller_name' => 'DefaultController',
'page' => $webPage,
'meta_data' => $metaData,
'structured_data' => $structuredData,
'components' => $components
];
return $this->render('web/pages/default.html.twig', $data);
}
}