src/Controller/PortfolioController.php line 64
<?php
namespace App\Controller;
use App\Entity\ProfilUser;
use App\Entity\TemplateTextEntBatimentFR;
use App\Entity\TemplateTextEntBatimentProject1;
use App\Entity\TemplateTextEntBatimentProject10;
use App\Entity\TemplateTextEntBatimentProject11;
use App\Entity\TemplateTextEntBatimentProject12;
use App\Entity\TemplateTextEntBatimentProject2;
use App\Entity\TemplateTextEntBatimentProject3;
use App\Entity\TemplateTextEntBatimentProject4;
use App\Entity\TemplateTextEntBatimentProject5;
use App\Entity\TemplateTextEntBatimentProject6;
use App\Entity\TemplateTextEntBatimentProject7;
use App\Entity\TemplateTextEntBatimentProject8;
use App\Entity\TemplateTextEntBatimentProject9;
use App\Entity\TemplateTextEntBatimentService1;
use App\Entity\TemplateTextEntBatimentService2;
use App\Entity\TemplateTextEntBatimentService3;
use App\Entity\TemplateTextEntBatimentService4;
use App\Entity\TemplateTextEntBatimentService5;
use App\Entity\TemplateTextEntBatimentService6;
use App\Entity\User;
use App\Form\ProfilUserType;
use App\Repository\ProfilUserRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
class PortfolioController extends AbstractController
{
private HttpClientInterface $client;
private $cloudflareApiKey;
private $params;
private EntityManagerInterface $entityManager;
public function __construct(HttpClientInterface $client, EntityManagerInterface $entityManager, ParameterBagInterface $params)
{
$this->client = $client;
$this->entityManager = $entityManager;
$this->params = $params;
$this->cloudflareApiKey = $params->get('cloudflare_api_key');
}
#[Route('/portfolio', name: 'app_portfolio' , host: 'surmurthag.com')]
#[Route('/portfolio', name: 'app_portfolio_www', host: 'www.surmurthag.com')]
public function portfolio(): Response
{
return $this->render('portfolio/index.html.twig', [
'controller_name' => 'portfolioController',
]);
}
#[Route('/portfolio/show/profilUser/', name: 'app_portfolio_show_profil', host: 'surmurthag.com')]
#[Route('/portfolio/show/profilUser/', name: 'app_portfolio_show_profil_www', host: 'www.surmurthag.com')]
public function profilUserShow(Request $request, EntityManagerInterface $entityManager, ProfilUserRepository $profilUserRepository): Response {
// Récupérer l'utilisateur actuel (assurez-vous que la méthode `getUser` renvoie l'entité User)
/** @var \App\Entity\User $user */
$user = $this->getUser();
// Récupérer le dernier profil utilisateur créé par l'utilisateur actuel
$profilUser = $profilUserRepository->findOneBy(
['userUuid' => $user->getUuid()],
['id' => 'DESC'] // Tri par l'identifiant en ordre décroissant
);
// Passer le formulaire à la vue
return $this->render('portfolio/templates/profilUserShow/index.html.twig', [
'profilUser' => $profilUser
]);
}
#[Route('/portfolio/profilUser/', name: 'app_portfolio_profil' , host: 'surmurthag.com')]
#[Route('/portfolio/profilUser/', name: 'app_portfolio_profil_www', host: 'www.surmurthag.com')]
public function profilUser(Request $request, EntityManagerInterface $entityManager, ProfilUserRepository $profilUserRepository): Response
{
// Récupérer l'utilisateur actuel (assurez-vous que la méthode `getUser` renvoie l'entité User)
/** @var \App\Entity\User $user */
$user = $this->getUser();
// Récupérer le dernier profil utilisateur créé par l'utilisateur actuel
$profilUser = $profilUserRepository->findOneBy(
['userUuid' => $user->getUuid()],
['id' => 'DESC'] // Tri par l'identifiant en ordre décroissant
);
// Si aucun profil n'est trouvé (ce qui signifie que l'utilisateur n'a pas encore de profil), créez une nouvelle instance
if (!$profilUser) {
$profilUser = new ProfilUser();
}
$form = $this->createForm(ProfilUserType::class, $profilUser);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// Enregistrer les données en base de données
$entityManager->persist($profilUser);
$entityManager->flush();
// Ajoutez ici toute logique supplémentaire après l'enregistrement, comme une redirection ou un message flash
return $this->redirectToRoute('app_portfolio_profil'); // Rediriger vers une autre page
}
return $this->render('portfolio/templates/profilUser/index.html.twig', [
'controller_name' => 'portfolioController',
'form' => $form->createView(),
'profilUser' => $profilUser
]);
}
#[Route('/post-response-IA', name: 'get_response_IA', host: 'surmurthag.com', methods: ['POST'])]
#[Route('/post-response-IA', name: 'get_response_IA_www', host: 'www.surmurthag.com', methods: ['POST'])]
public function getResponseIAFromWorker(Request $request, HttpClientInterface $client): Response {
// Authentification
/* $headersProfil = $request->headers->get('Authorization');
if (!$this->isAuthorized($headersProfil)) {
error_log("Authentification échouée");
return new Response('Unauthorized', Response::HTTP_UNAUTHORIZED);
}*/
$data = json_decode($request->getContent(), true);
error_log("Données reçues: " . print_r($data, true));
if (isset($data['nextField']) && $data['nextField'] === 'endChat') {
// Affiche les données reçues dans les logs
error_log("Données reçues avant saveResponseToDatabase: " . print_r($data, true));
// Logique d'enregistrement
$this->saveResponseToDatabase($data);
return new JsonResponse(['message' => 'Profil enregistré avec succès.']);
}
// Envoi de la requête au Worker Cloudflare
try {
$responseFromWorker = $client->request('POST', 'https://worker-fragrant-haze-22a6.surmurthag.workers.dev/', [
'headers' => [
'Authorization' => 'Bearer ' . $this->cloudflareApiKey,
],
'body' => $request->getContent()
]);
error_log("Réponse reçue du Worker: " . $responseFromWorker->getContent());
if ($responseFromWorker->getStatusCode() !== 200) {
error_log("Erreur reçue du Worker: " . $responseFromWorker->getStatusCode());
return new Response('Error from Worker', $responseFromWorker->getStatusCode());
}
$responseText = $responseFromWorker->getContent();
return new Response($responseText, Response::HTTP_OK, ['Content-Type' => 'application/json']);
} catch (\Exception $e) {
error_log("Exception capturée: " . $e->getMessage());
return new Response('Erreur inattendue', Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
#[Route('/post-response-profil', name: 'get_response', host: 'surmurthag.com', methods: ['POST'])]
#[Route('/post-response-profil', name: 'get_response_www', host: 'www.surmurthag.com', methods: ['POST'])]
public function getResponseFromWorker(Request $request, HttpClientInterface $client): Response {
// Authentification
/* $headersProfil = $request->headers->get('Authorization');
if (!$this->isAuthorized($headersProfil)) {
return new Response('Unauthorized', Response::HTTP_UNAUTHORIZED);
}*/
$data = json_decode($request->getContent(), true);
error_log("Données reçues: " . print_r($data, true));
if (isset($data['nextField']) && $data['nextField'] === 'endChat') {
// Affiche les données reçues dans les logs
error_log("Données reçues avant saveResponseToDatabase: " . print_r($data, true));
// Logique d'enregistrement
$this->saveResponseToDatabase($data);
return new JsonResponse(['message' => 'Profil enregistré avec succès.']);
}
// Envoi de la requête au Worker Cloudflare
try {
$headers = [
'Authorization' => 'Bearer ' . $this->cloudflareApiKey,
];
// Log des en-têtes pour le débogage
error_log("En-têtes envoyés à Cloudflare: " . json_encode($headers));
$responseFromWorker = $client->request('POST', 'https://worker-generat-profil.surmurthag.workers.dev/', [
'headers' => $headers,
'body' => $request->getContent()
]);
if ($responseFromWorker->getStatusCode() !== 200) {
return new Response('Error from Worker', $responseFromWorker->getStatusCode());
}
// Obtenez la réponse du Worker
$responseText = $responseFromWorker->getContent();
// Retournez la réponse du Worker
return new Response($responseText, Response::HTTP_OK, [
'Content-Type' => 'application/json'
]);
} catch (\Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface $e) {
error_log("Erreur de transport HTTP: " . $e->getMessage());
return new Response('Erreur de transport HTTP', Response::HTTP_INTERNAL_SERVER_ERROR);
} catch (\Exception $e) {
error_log("Erreur inattendue: " . $e->getMessage());
return new Response('Erreur inattendue', Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
#[Route('/path-to-reset-endpoint', name: 'get_reset', host: 'surmurthag.com', methods: ['POST'])]
#[Route('/path-to-reset-endpoint', name: 'get_reset_www', host: 'www.surmurthag.com', methods: ['POST'])]
public function getResetEndpoint(Request $request, HttpClientInterface $client): Response {
// Authentification
/* $headersReset = $request->headers->get('Authorization');
if (!$this->isAuthorized($headersReset)) {
return new Response('Unauthorized', Response::HTTP_UNAUTHORIZED);
}*/
$data = json_decode($request->getContent(), true);
error_log("Données reçues: " . print_r($data, true));
// Envoi de la requête au Worker Cloudflare
try {
$responseFromWorker = $client->request('POST', 'https://worker-generat-profil.surmurthag.workers.dev/', [
'headers' => [
'Authorization' => 'Bearer ' . $this->cloudflareApiKey,
],
'body' => $request->getContent()
]);
if ($responseFromWorker->getStatusCode() !== 200) {
return new Response('Error from Worker', $responseFromWorker->getStatusCode());
}
// Obtenez la réponse du Worker
$responseText = $responseFromWorker->getContent();
// Retournez la réponse du Worker
return new Response($responseText, Response::HTTP_OK, [
'Content-Type' => 'application/json'
]);
} catch (\Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface $e) {
return new Response('Erreur de transport HTTP', Response::HTTP_INTERNAL_SERVER_ERROR);
} catch (\Exception $e) {
return new Response('Erreur inattendue', Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
#[Route('/path-to-save-data', name: 'save_data', host: 'surmurthag.com', methods: ['POST'])]
#[Route('/path-to-save-data', name: 'save_data_www', host: 'www.surmurthag.com', methods: ['POST'])]
public function handleSaveData(Request $request): JsonResponse {
$data = json_decode($request->getContent(), true);
$this->saveResponseToDatabase($data);
return new JsonResponse(['message' => 'Profil enregistré avec succès.']);
}
private function saveResponseToDatabase(array $data): void {
error_log("Début de la fonction saveResponseToDatabase");
// Obtenez l'utilisateur actuel
/** @var User $user */
$user = $this->getUser();
// Assurez-vous que l'utilisateur est chargé, valide, et est une instance de la classe User
if (!$user || !$user instanceof User) {
throw new \LogicException('Utilisateur non trouvé ou non connecté.');
}
$entityManager = $this->entityManager;
$profilUser = new ProfilUser(); // Créez une nouvelle instance de ProfilUser
// Associez l'utilisateur au profil
$user = $this->getUser(); // Assurez-vous que cette méthode renvoie une entité User valide
$profilUser->setUserUuid($user->getUuid());
// Définir d'autres propriétés...
$entityManager->persist($profilUser);
$entityManager->flush();
error_log("Traitement des champs de réponse");
// Assigne chaque champ de la réponse à l'entité
foreach ($data as $key => $value) {
error_log("Traitement du champ: " . $key . " avec la valeur: " . $value);
switch ($key) {
case 'firstname':
$profilUser->setName($value);
break;
case 'lastname':
$profilUser->setSurname($value);
break;
case 'email':
$profilUser->setMail($value);
break;
case 'phoneNumber':
$profilUser->setPhoneNumber($value);
break;
case 'country':
$profilUser->setCountry($value);
break;
case 'city':
$profilUser->setCity($value);
break;
case 'street':
$profilUser->setStreet($value);
break;
case 'zipCode':
$profilUser->setZipCode($value);
break;
case 'age':
$profilUser->setAge($value);
break;
case 'profession':
$profilUser->setProfession($value);
break;
case 'sex':
$profilUser->setSex($value);
break;
// Ajoutez d'autres champs si nécessaire
}
}
error_log("Persistance de l'entité ProfilUser");
$entityManager->persist($profilUser);
$entityManager->flush();
error_log("Entité ProfilUser enregistrée avec succès");
}
#[Route('/portfolio/solarSystem/', name: 'app_portfolio_solarSystem' , host: 'surmurthag.com')]
#[Route('/portfolio/SolarSystem/', name: 'app_portfolio_solarSystem_www', host: 'www.surmurthag.com')]
public function solarSystem(): Response
{
return $this->render('portfolio/templates/solarSystem/index.html.twig', [
'controller_name' => 'portfolioController',
]);
}
#[Route('/portfolio/download/', name: 'app_download', host: 'surmurthag.com')]
#[Route('/portfolio/download/', name: 'app_download_www', host: 'www.surmurthag.com')]
public function download(): Response
{
$file = $this->getParameter('kernel.project_dir') . '/' . $_SERVER('DOWNLOAD_DIRECTORY') . '/stable.pdf';
// Assurez-vous que le fichier existe et que le chemin est correct
if (!file_exists($file)) {
return $this->redirectToRoute('app_portfolio');
}
return $this->file($file);
}
/*#[Route('/portfolio/verify-download-code', name: 'verify_download_code', methods: ['POST'])]*/
#[Route('/portfolio/verify-download-code', name: 'verify_download_code_domain', host: 'surmurthag.com', methods: ['POST'])]
#[Route('/portfolio/verify-download-code', name: 'verify_download_code_www', host: 'www.surmurthag.com', methods: ['POST'])]
public function verifyDownloadCode(Request $request): Response
{
$userCode = $request->request->get('download-verification_code');
if ($userCode === '1984') {
// Code correct, rediriger vers la route de téléchargement
return $this->redirectToRoute('app_download');
} else {
// Code incorrect, afficher le message flash sur la même page
$this->addFlash('error', 'Le code de vérification est incorrect !.');
// Retourner la même vue avec les données nécessaires
return $this->render('portfolio/index.html.twig', [
'controller_name' => 'portfolioController',
]);
}
}
#[Route('/portfolio/verify-register-code', name: 'verify_register_code', host: 'surmurthag.com', methods: ['POST'])]
#[Route('/portfolio/verify-register-code', name: 'verify_register_code_www', host: 'www.surmurthag.com', methods: ['POST'])]
public function verifyRegisterCode(Request $request): Response
{
$registerCode = $request->request->get('register-verification_code');
if ($registerCode === '1984') {
// Code correct, rediriger vers la route de téléchargement
return $this->redirectToRoute('app_register');
} else {
// Code incorrect, afficher le message flash sur la même page
$this->addFlash('error', 'Le code de vérification est incorrect.');
// Retourner la même vue avec les données nécessaires
return $this->render('security/login.html.twig', [
'controller_name' => 'portfolioController',
]);
}
}
#[Route('/portfolio/EntBatiment/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_www', host: 'www.surmurthag.com')]
public function indexEntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 387,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 387; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentFR::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatiment.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/1/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_1', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/1/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_1_www', host: 'www.surmurthag.com')]
public function Project_1_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 22,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 22; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject1::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-1.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/templates/EntBatiment/project/1/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/2/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_2', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/2/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_2_www', host: 'www.surmurthag.com')]
public function Project_2_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject2::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-2.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/project/2/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/3/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_3', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/3/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_3_www', host: 'www.surmurthag.com')]
public function Project_3_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject3::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-3.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/project/3/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/4/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_4', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/4/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_4_www', host: 'www.surmurthag.com')]
public function Project_4_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject4::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-4.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/project/4/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/5/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_5', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/5/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_5_www', host: 'www.surmurthag.com')]
public function Project_5_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject5::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-5.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfoli/templates/EntBatiment/project/5/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/6/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_6', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/6/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_6_www', host: 'www.surmurthag.com')]
public function Project_6_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject6::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-6.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfoli/templates/EntBatiment/project/6/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/7/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_7', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/7/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_7_www', host: 'www.surmurthag.com')]
public function Project_7_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject7::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-7.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/project/7/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/8/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_8', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/8/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_8_www', host: 'www.surmurthag.com')]
public function Project_8_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject8::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-8.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/project/8/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/9/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_9', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/9/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_9_www', host: 'www.surmurthag.com')]
public function Project_9_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject9::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-9.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfoli/templates/EntBatiment/project/9/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/10/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_10', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/10/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_10_www', host: 'www.surmurthag.com')]
public function Project_10_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject10::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-10.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/project/10/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/11/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_11', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/11/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_11_www', host: 'www.surmurthag.com')]
public function Project_11_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject11::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-11.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/project/11/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/project/12/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_12', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/project/12/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_project_12_www', host: 'www.surmurthag.com')]
public function Project_12_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentProject12::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ProjectDetails-12.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/project/12/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/service/1/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_1', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/service/1/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_1_www', host: 'www.surmurthag.com')]
public function Service_1_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentService1::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ServiceDetails-1.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/service/1/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/service/2/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_2', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/service/2/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_2_www', host: 'www.surmurthag.com')]
public function Service_2_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentService2::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ServiceDetails-2.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/service/2/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/service/3/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_3', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/service/3/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_3_www', host: 'www.surmurthag.com')]
public function Service_3_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentService3::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ServiceDetails-3.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/service/3/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/service/4/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_4', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/service/4/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_4_www', host: 'www.surmurthag.com')]
public function Service_4_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentService4::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ServiceDetails-4.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/service/4/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/service/5/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_5', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/service/5/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_5_www', host: 'www.surmurthag.com')]
public function Service_5_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentService5::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ServiceDetails-5.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/service/5/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/EntBatiment/service/6/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_6', host: 'surmurthag.com')]
#[Route('/portfolio/EntBatiment/service/6/{lang}', name: 'app_portfolio_templates_entreprise_du_batiment_service_6_www', host: 'www.surmurthag.com')]
public function Service_6_EntBatiment(EntityManagerInterface $entityManager, Request $request, $lang = null): Response
{
$languageToIdMap = [
'fr' => 1,
'en' => 2,
'es' => 3, // Espagnol
'de' => 4, // Allemand
// autres langues...
];
// Langues disponibles
$availableLanguages = array_keys($languageToIdMap);
// Déterminer la langue
if ($lang === null) {
$preferredLang = $request->getPreferredLanguage($availableLanguages);
$lang = in_array($preferredLang, $availableLanguages) ? $preferredLang : 'en';
}
$id = $languageToIdMap[$lang] ?? 2; // Par défaut à anglais si la langue n'est pas trouvée
// Récupérer l'entité avec id = 1
$entity = $entityManager->getRepository(TemplateTextEntBatimentService6::class)->find($id);
return $this->render('portfolio/templates/entBatiment/EntBatimentPages/ServiceDetails-6.html.twig', [
'controller_name' => 'portfolioTemplatesController',
'availableLanguages' => ['fr' => 'Français', 'en' => 'Anglais', 'es' => 'Espagnol', 'de' => 'Allemand'],
'baseUrl' => '/portfolio/EntBatiment/service/6/',
'entity' => $entity,
'currentLang' => $lang,
]);
}
#[Route('/portfolio/episol/', name: 'Episol_portfolio', host: 'surmurthag.com')]
#[Route('/portfolio/episol/', name: 'Episol_portfolio_www', host: 'www.surmurthag.com')]
public function home(): Response
{
return $this->render('/portfolio/templates/episol/episol.html.twig', [
/*'content' => $content,*/
]);
}
#[Route('/portfolio/uneTerreEnSoi', name: 'uneTerreEnSoi_portfolio', host: 'surmurthag.com')]
#[Route('/portfolio/uneTerreEnSoi', name: 'uneTerreEnSoi_portfolio_www', host: 'www.surmurthag.com')]
public function hello(): Response
{
return $this->render('portfolio/templates/uneTerreEnSoi/une-terre-en-soi.html.twig', [
/*'content' => $content,*/
]);
}
#[Route('/portfolio/ecotherapie', name: 'Ecotherapie_portfolio', host: 'surmurthag.com')]
#[Route('/portfolio/ecotherapie', name: 'Ecotherapie_portfolio_www', host: 'www.surmurthag.com')]
public function ecotherapieportfolio(): Response
{
return $this->render('portfolio/templates/uneTerreEnSoi/ecotherapie.html.twig', [
/*'content' => $content,*/
]);
}
#[Route('/portfolio/contact', name: 'Contact_portfolio', host: 'surmurthag.com')]
#[Route('/portfolio/contact', name: 'Contact_portfolio_www', host: 'www.surmurthag.com')]
public function contactportfolio(): Response
{
return $this->render('/portfolio/templates/uneTerreEnSoi/contact.html.twig', [
/*'content' => $content,*/
]);
}
#[Route('/portfolio/ArtTherapie', name: 'ArtTherapie_portfolio', host: 'surmurthag.com')]
#[Route('/portfolio/ArtTherapie', name: 'ArtTherapie_portfolio_www', host: 'www.surmurthag.com')]
public function artTherapieportfolio(): Response
{
return $this->render('portfolio/templates/uneTerreEnSoi/artTherapie.html.twig', [
/*'content' => $content,*/
]);
}
#[Route('/portfolio/quiSuisJe', name: 'QuiSuisJe_portfolio', host: 'surmurthag.com')]
#[Route('/portfolio/quiSuisJe', name: 'QuiSuisJe_portfolio_www', host: 'www.surmurthag.com')]
public function quiSuisJeportfolio(): Response
{
return $this->render('portfolio/templates/uneTerreEnSoi/quiSuisJe.html.twig', [
/*'content' => $content,*/
]);
}
#[Route('/portfolio/AtelierEnLigne', name: 'AtelierEnLigne_portfolio', host: 'surmurthag.com')]
#[Route('/portfolio/AtelierEnLigne', name: 'AtelierEnLigne_portfolio_www', host: 'www.surmurthag.com')]
public function AtelierEnLingeportfolio(): Response
{
return $this->render('portfolio/templates/uneTerreEnSoi/AtelierEnLigne.html.twig', [
/*'content' => $content,*/
]);
}
#[Route('/portfolio/agenda', name: 'Agenda_portfolio', host: 'surmurthag.com')]
#[Route('/portfolio/agenda', name: 'Agenda_portfolio_www', host: 'www.surmurthag.com')]
public function agendaportfolio(): Response
{
$events = [
[
'titlecard' => 'Atelier d\'art-thérapie',
'photo' => 'https://th.bing.com/th/id/R.bb002981d0c40c2399baa5b659bd38de?rik=uqdAuaDlg%2b7t8g&pid=ImgRaw&r=0',
'title' => 'Saepissime igitur mihi de amicitia cogitanti maxime illud
considerandum videri solet, utrum propter imbecillitatem
atque inopiam desiderata sit amicitia, ut dandis
recipiendisque meritis quod quisque minus per se ipse posset,
id acciperet ab alio vicissimque redderet, an esset hoc quidem
proprium amicitiae, sed antiquior et pulchrior et magis a
natura ipsa profecta alia causa.',
'description' => 'Découvrez les bienfaits de l\'art-thérapie dans cet atelier convivial.',
'date' => 'du 2023-10-10 au 2323-10-20'
],
[
'titlecard' => 'Session d\'éco-thérapie en forêt',
'photo' => 'https://th.bing.com/th/id/R.21e1adde7219a4850b77800e0d42c834?rik=CKpeLnLTPvTb0w&pid=ImgRaw&r=0',
'title' => 'Saepissime igitur mihi de amicitia cogitanti maxime illud
considerandum videri solet, utrum propter imbecillitatem
atque inopiam desiderata sit amicitia, ut dandis
recipiendisque meritis quod quisque minus per se ipse posset,
id acciperet ab alio vicissimque redderet, an esset hoc quidem
proprium amicitiae, sed antiquior et pulchrior et magis a
natura ipsa profecta alia causa.',
'description' => 'Reconnectez-vous à la nature lors de cette session d\'éco-thérapie en plein air.',
'date' => 'du 2023-11-10 au 2023-11-11'
],
[
'titlecard' => 'Méditation guidée en milieu naturel',
'photo' => 'https://th.bing.com/th/id/R.633586d26d1d8dbf2d758d1ef03a85ae?rik=T3P%2bP07lbfGiFg&pid=ImgRaw&r=0',
'title' => 'Saepissime igitur mihi de amicitia cogitanti maxime illud
considerandum videri solet, utrum propter imbecillitatem
atque inopiam desiderata sit amicitia, ut dandis
recipiendisque meritis quod quisque minus per se ipse posset,
id acciperet ab alio vicissimque redderet, an esset hoc quidem
proprium amicitiae, sed antiquior et pulchrior et magis a
natura ipsa profecta alia causa.',
'description' => 'Vivez une expérience de méditation en plein cœur de la nature .',
'date' => 'du 2023-11-15 au 2023-11-19'
],
[
'titlecard' => 'Initiation à la peinture thérapeutique',
'photo' => 'https://th.bing.com/th/id/R.44b6cc5078763700af8fb6876c937d94?rik=%2bQwWfmXCzESZwg&pid=ImgRaw&r=0',
'title' => 'Saepissime igitur mihi de amicitia cogitanti maxime illud
considerandum videri solet, utrum propter imbecillitatem
atque inopiam desiderata sit amicitia, ut dandis
recipiendisque meritis quod quisque minus per se ipse posset,
id acciperet ab alio vicissimque redderet, an esset hoc quidem
proprium amicitiae, sed antiquior et pulchrior et magis a
natura ipsa profecta alia causa.',
'description' => 'Apprenez les bases de la peinture thérapeutique et libérez votre créativité.',
'date' => 'du 2023-10-15 au 2023-10-25'
],
];
return $this->render('portfolio/templates/uneTerreEnSoi/agenda.html.twig', [
'events' => $events
]);
}
}