<?php
namespace App\Controller;
use App\Entity\Cv;
use App\Entity\Post;
use App\Form\CvType;
use App\Entity\Agora;
use App\Entity\Droit;
use App\Entity\Agenda;
use App\Form\PostType;
use App\Entity\Domaine;
use App\Form\AgoraType;
use App\Form\DroitType;
use App\Entity\Rubrique;
use App\Entity\Actualite;
use App\Entity\Categorie;
use App\Entity\Sousrubrique;
use App\Service\AgoraFilter;
use App\Service\CodeManager;
use App\Service\DroitFilter;
use App\Service\SlugManager;
use App\Entity\Configuration;
use App\Form\AgoraFilterType;
use App\Form\DroitFilterType;
use App\Service\EmailManager;
use App\Service\ArchiveFilter;
use App\Form\ArchiveFilterType;
use App\Service\ReferentFilter;
use App\Form\ReferentFilterType;
use App\Repository\CvRepository;
use App\Service\ActualiteFilter;
use App\Service\JuridiqueFilter;
use App\Service\RubriqueManager;
use App\Form\ActualiteFilterType;
use App\Form\JuridiqueFilterType;
use App\Service\ConferenceFilter;
use App\Service\InitiativeFilter;
use App\Form\ConferenceFilterType;
use App\Form\InitiativeFilterType;
use App\Repository\PostRepository;
use App\Repository\AgoraRepository;
use App\Repository\DroitRepository;
use App\Repository\AgendaRepository;
use App\Repository\ArchiveRepository;
use App\Repository\DomaineRepository;
use App\Repository\ReferentRepository;
use App\Repository\RubriqueRepository;
use App\Repository\ActualiteRepository;
use App\Repository\CategorieRepository;
use App\Repository\JuridiqueRepository;
use App\Repository\ConferenceRepository;
use App\Repository\InitiativeRepository;
use Doctrine\ORM\EntityManagerInterface;
use App\Repository\SousrubriqueRepository;
use App\Repository\ConfigurationRepository;
use App\Repository\SouscategorieRepository;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class FrontController extends AbstractController
{
private ConfigurationRepository $configurationRepository;
private RubriqueRepository $rubriqueRepository;
private JuridiqueRepository $juridiqueRepository;
private RubriqueManager $rubriqueManager;
private SousrubriqueRepository $sousrubriqueRepository;
private InitiativeRepository $initiativeRepository;
private ReferentRepository $referentRepository;
private ArchiveRepository $archiveRepository;
private ConferenceRepository $conferenceRepository;
private CategorieRepository $categorieRepository;
private SouscategorieRepository $souscategorieRepository;
private AgoraRepository $agoraRepository;
private PostRepository $postRepository;
private EntityManagerInterface $em;
private CodeManager $codeManager;
private SlugManager $slugManager;
private EmailManager $emailManager;
private CvRepository $cvRepository;
private DroitRepository $droitRepository;
private $fileUploadParameters;
private DomaineRepository $domaineRepository;
public function __construct(
ConfigurationRepository $configurationRepository,
RubriqueRepository $rubriqueRepository,
JuridiqueRepository $juridiqueRepository,
RubriqueManager $rubriqueManager,
SousrubriqueRepository $sousrubriqueRepository,
InitiativeRepository $initiativeRepository,
ReferentRepository $referentRepository,
ArchiveRepository $archiveRepository,
ConferenceRepository $conferenceRepository,
CategorieRepository $categorieRepository,
SouscategorieRepository $souscategorieRepository,
AgoraRepository $agoraRepository,
PostRepository $postRepository,
EntityManagerInterface $em,
CodeManager $codeManager,
SlugManager $slugManager,
EmailManager $emailManager,
CvRepository $cvRepository,
DroitRepository $droitRepository,
array $fileUploadParameters,
DomaineRepository $domaineRepository
)
{
$this->configurationRepository = $configurationRepository;
$this->rubriqueRepository = $rubriqueRepository;
$this->juridiqueRepository = $juridiqueRepository;
$this->rubriqueManager = $rubriqueManager;
$this->sousrubriqueRepository = $sousrubriqueRepository;
$this->initiativeRepository = $initiativeRepository;
$this->referentRepository = $referentRepository;
$this->archiveRepository = $archiveRepository;
$this->conferenceRepository = $conferenceRepository;
$this->categorieRepository = $categorieRepository;
$this->souscategorieRepository = $souscategorieRepository;
$this->agoraRepository = $agoraRepository;
$this->postRepository = $postRepository;
$this->em = $em;
$this->codeManager = $codeManager;
$this->slugManager = $slugManager;
$this->emailManager = $emailManager;
$this->cvRepository = $cvRepository;
$this->droitRepository = $droitRepository;
$this->fileUploadParameters = $fileUploadParameters;
$this->domaineRepository = $domaineRepository;
}
public function getActualite(): Rubrique
{
return $this->rubriqueRepository->findOneBy(['uuid' => Rubrique::ACTUALITE]);
}
/**
* Récupère l'objet Configuration en bdd
*
* @return Configuration
*/
public function getConfiguration(): Configuration
{
return $this->configurationRepository->findOneBy(['uuid' => Configuration::UNIQUE_UUID]);
}
/**
* @return Response
* ---------------------- PAGE PRINCIPALE
* @Route("", name="home", methods={"GET","POST"})
*/
public function index(ActualiteRepository $actualiteRepository,RubriqueRepository $rubriqueRepository): Response
{
$rubriques = $rubriqueRepository->findRubriques($this->getActualite());
$actualite = $actualiteRepository->findOneBy(['avant' => true]);
return $this->render('front/index.html.twig', [
'actualite' => $actualite,
'rubriques' => $rubriques
]);
}
/**
* @return Response
* ---------------------- LES RUBRIQUES
* @Route("/rubrique/{slug}", name="rubriques", methods={"GET","POST"})
*/
public function rubrique(Rubrique $rubrique, SousrubriqueRepository $sousrubriqueRepository): Response
{
if ($rubrique->isStatut()) {
$ssrubriques = $sousrubriqueRepository->findSousrubriques($rubrique);
return $this->render('front/rubriques.html.twig', [
'ssr' => $ssrubriques,
'r' => $rubrique
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- LES SOUS-RUBRIQUES
* @Route("/rubrique/{slug}/{slug2}", name="ssrubriques", methods={"GET","POST"})
*/
public function ssrubrique(Rubrique $rubrique, $slug2, Request $request, PaginatorInterface $paginator): Response
{
$user = $this->getUser();
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
if (($sousrubrique == $this->rubriqueManager->getRubrique35() && $this->rubriqueManager->getRubrique35()->isStatut()) || ($rubrique->isStatut() && $sousrubrique->isStatut()) ) {
// Nous vous accompagnons
if ($sousrubrique == $this->rubriqueManager->getRubrique11()) {
return $this->render('front/sousrubriques.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique
]);
}
// SICARDI recueille vos compétences
elseif ($sousrubrique == $this->rubriqueManager->getRubrique12()) {
return $this->render('front/sousrubriques.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique
]);
}
// 14 - Les recruteurs s’intéressent à vous
elseif ($sousrubrique == $this->rubriqueManager->getRubrique14()) {
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$droits = $this->droitRepository->findByFilterPagination($recherche, $ordre,true, $page);
$count = count($droits['data']);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_ssr14_droits.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page,
])
]);
}
$droit = new Droit();
$form = $this->createForm(DroitType::class, $droit);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// function supprimerPrefixe($lien) {
// $prefixes = array("http://", "https://");
// foreach ($prefixes as $prefixe) {
// if (strpos($lien, $prefixe) === 0) {
// $lien = substr($lien, strlen($prefixe));
// break;
// }
// }
// return $lien;
// }
// $lienSansPrefixe = supprimerPrefixe($droit->getLien());
// $droit->setLien($lienSansPrefixe);
$droit->setToken($this->codeManager->getCode());
$slug = $this->slugManager->getSlug($droit->getTitre());
$droit->setSlug($droit->getToken() . '-' . $slug);
$droit->setCreatedAt(new \DateTimeImmutable('now'));
$droit->setUser($user);
$this->em->persist($droit);
$this->em->flush();
$subject = 'Nouveau post dans ' . $sousrubrique->getNom();
$template = 'new_droit.html.twig';
$data = [
'user' => $user,
];
$this->emailManager->getSendMail($user, $subject, $template, $data);
$this->addFlash('success', sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais', $droit->getTitre()));
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
return $this->render('front/ssr14.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'form2' => $form->createView(),
'page' => $page
]);
}
// 15 - Banque de CV
elseif ($sousrubrique == $this->rubriqueManager->getRubrique15()) {
$user = $this->getUser();
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$cvs = $this->cvRepository->findByFilterPagination($recherche, $ordre,true, $page, $user);
$count = count($cvs['data']);
$cvsUser = $this->cvRepository->findBy(['user' => $user]);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_ssr15_cv.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $cvs,
'count' => $count,
'page' => $page,
])
]);
}
if ($cvsUser) {
$cv = $cvsUser[0];
$exist = true;
} else
{
$cv = new Cv();
$exist = false;
}
if ($exist) {
$form = $this->createForm(CvType::class, $cv, [
'update' => true
]);
} else {
$form = $this->createForm(CvType::class, $cv, [
'add' => true
]);
}
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
//dd($cv);
// $parcoursArray = explode('\r\n', $cv->getParcours());
// dd($parcoursArray);
$imageFile = $form->get('photo')->getData();
if ($imageFile) {
$nomImage = date('YmdHis') . '-' . uniqid() . '.' . $imageFile->getClientOriginalExtension();
$imageFile->move(
$this->getParameter('photo'),
$nomImage
);
if ($cv->getPhoto()) {
unlink($this->getParameter('photo') . '/' . $cv->getPhoto());
}
$cv->setPhoto($nomImage);
}
$cvFile = $form->get('cv')->getData();
if ($cvFile) {
$nomImage = date('YmdHis') . '-' . uniqid() . '.' . $cvFile->getClientOriginalExtension();
$cvFile->move(
$this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['cv'],
$nomImage
);
if ($cv->getCv()) {
unlink($this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['cv'].$cv->getCv());
}
$cv->setCv($nomImage);
}
if ($exist) {
$slug = $this->slugManager->getSlug($cv->getNom());
$cv->setSlug($cv->getToken() . '-' . $slug);
$cv->setUpdatedAt(new \DateTime('now'));
$cv->setStatut(false);
$cv->setModerate(false);
$this->em->flush();
} else {
$cv->setToken($this->codeManager->getCode());
$slug = $this->slugManager->getSlug($cv->getNom());
$cv->setSlug($cv->getToken() . '-' . $slug);
$cv->setCreatedAt(new \DateTimeImmutable('now'));
$cv->setUser($user);
$this->em->persist($cv);
$this->em->flush();
}
$subject = 'Nouveau cv dans ' . $sousrubrique->getNom();
$template = 'new_cv.html.twig';
$data = [
'user' => $user,
];
$this->emailManager->getSendMail($user, $subject, $template, $data);
$this->addFlash('success', 'Votre CV a bien été enregistré et sera traité dans les plus brefs délais');
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
return $this->render('front/ssr15.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $cvs,
'form' => $form->createView(),
'count' => $count,
'cv' => $cv,
'exist' => $exist
]);
}
// Demandez le programme
elseif ($sousrubrique == $this->rubriqueManager->getRubrique21()) {
return $this->render('front/sousrubriques.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique
]);
}
// Des conférences pour vous
elseif ($sousrubrique == $this->rubriqueManager->getRubrique22()) {
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$droits = $this->conferenceRepository->findByFilterPagination($recherche, $ordre,true, $page);
$count = count($droits['data']);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_ssr22_conferences.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page,
])
]);
}
// $initiativeFilter = new InitiativeFilter();
// $form = $this->createForm(InitiativeFilterType::class, $initiativeFilter);
// $form->handleRequest($request);
// $initiatives = $this->initiativeRepository->findByFilter($initiativeFilter, true);
// $count = count($this->initiativeRepository->findByFilter($initiativeFilter, true));
return $this->render('front/ssr22.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page
]);
// $conferenceFilter = new ConferenceFilter();
// $form = $this->createForm(ConferenceFilterType::class, $conferenceFilter);
// $form->handleRequest($request);
// $conferences = $this->conferenceRepository->findByFilter($conferenceFilter, true);
// $count = count($this->conferenceRepository->findByFilter($conferenceFilter, true));
// return $this->render('front/ssr22.html.twig', [
// 'ssr' => $sousrubrique,
// 'r' => $rubrique,
// 'conferences' => $conferences,
// 'count' => $count,
// 'form' => $form->createView()
// ]);
}
// Retrouvez nos sélections de formation
elseif ($sousrubrique == $this->rubriqueManager->getRubrique13()) {
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$droits = $this->archiveRepository->findByFilterPagination($recherche, $ordre,true, $page);
$count = count($droits['data']);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_ssr13_archives.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page,
])
]);
}
return $this->render('front/ssr13.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page
]);
// $archiveFilter = new ArchiveFilter();
// $form = $this->createForm(ArchiveFilterType::class, $archiveFilter);
// $form->handleRequest($request);
// $archives = $this->archiveRepository->findByFilter($archiveFilter, true);
// $count = count($this->archiveRepository->findByFilter($archiveFilter, true));
// return $this->render('front/ssr13.html.twig', [
// 'ssr' => $sousrubrique,
// 'r' => $rubrique,
// 'items' => $archives,
// 'count' => $count,
// 'form' => $form->createView()
// ]);
}
// Le législateur a pensé à vous
elseif ($sousrubrique == $this->rubriqueManager->getRubrique31()) {
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$droits = $this->juridiqueRepository->findByFilterPagination($recherche, $ordre,true, $page);
$count = count($droits['data']);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_ssr31_juridiques.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page,
])
]);
}
// $juridiqueFilter = new JuridiqueFilter();
// $form = $this->createForm(JuridiqueFilterType::class, $juridiqueFilter);
// $form->handleRequest($request);
// $juridiques = $this->juridiqueRepository->findByFilter($juridiqueFilter, true);
// $count = count($this->juridiqueRepository->findByFilter($juridiqueFilter, true));
return $this->render('front/ssr31.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page
//'form' => $form->createView()
]);
}
// Bercy s’occupe de vous
elseif ($sousrubrique == $this->rubriqueManager->getRubrique32()) {
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$droits = $this->initiativeRepository->findByFilterPagination($recherche, $ordre,true, $page);
$count = count($droits['data']);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_ssr32_initiatives.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page,
])
]);
}
// $initiativeFilter = new InitiativeFilter();
// $form = $this->createForm(InitiativeFilterType::class, $initiativeFilter);
// $form->handleRequest($request);
// $initiatives = $this->initiativeRepository->findByFilter($initiativeFilter, true);
// $count = count($this->initiativeRepository->findByFilter($initiativeFilter, true));
return $this->render('front/ssr32.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page
]);
}
// 33 Les référents directionnels
elseif ($sousrubrique == $this->rubriqueManager->getRubrique33()) {
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$droits = $this->referentRepository->findByFilterPagination($recherche, $ordre,true, $page);
$count = count($droits['data']);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_ssr33_referents.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page,
])
]);
}
return $this->render('front/ssr33.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $droits,
'count' => $count,
'page' => $page,
]);
}
// --34-- Votre boîtes à astuces
elseif ($sousrubrique == $this->rubriqueManager->getRubrique34()) {
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$posts = $this->postRepository->findByFilterPagination($recherche, $ordre,true, $page);
$count = count($posts['data']);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_ssr34_post.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $posts,
'count' => $count,
'page' => $page
])
]);
}
$post = new Post();
$form = $this->createForm(PostType::class, $post);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$uploadFile = $form->get('fichier')->getData();
if ($uploadFile) {
$mimeType = explode('/', $uploadFile->getClientMimeType());
$ext = $mimeType[1];
if ($mimeType[1] == 'vnd.openxmlformats-officedocument.wordprocessingml.document') {
$ext = 'docx';
}
if ($mimeType[1] == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
$ext = 'xlsx';
}
$nomImage = date('YmdHis') . '-' . uniqid() . '.' . $ext;
$uploadFile->move(
$this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['post'],
$nomImage
);
$post->setFichier($nomImage);
$post->setMime($mimeType[0]);
$post->setExt($ext);
}
$post->setToken($this->codeManager->getCode());
$slug = $this->slugManager->getSlug($post->getTitre());
$post->setSlug($post->getToken() . '-' . $slug);
$post->setCreatedAt(new \DateTimeImmutable('now'));
$post->setUser($user);
$this->em->persist($post);
$this->em->flush();
$subject = 'Nouveau post dans ' . $sousrubrique->getNom();
$template = 'new_post.html.twig';
$data = [
'user' => $user,
];
$this->emailManager->getSendMail($user, $subject, $template, $data);
$this->addFlash('success', sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais', $post->getTitre()));
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
return $this->render('front/ssr34.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $posts,
'count' => $count,
'form2' => $form->createView(),
'page' => $page
]);
}
// --35-- Le carrefour des compétences
elseif ($sousrubrique == $this->rubriqueManager->getRubrique35()) {
$categories = $this->categorieRepository->findby(['statut' => true],['listorder' => 'ASC']);
return $this->render('front/ssr35.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique,
'categories' => $categories
]);
}
// --36-- Mentorat
elseif ($sousrubrique == $this->rubriqueManager->getRubrique36()) {
return $this->render('front/sousrubriques.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique
]);
}
// --41-- Les RH à votre service
elseif ($sousrubrique == $this->rubriqueManager->getRubrique41()) {
return $this->render('front/sousrubriques.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique
]);
}
// --42-- Bien au travail
elseif ($sousrubrique == $this->rubriqueManager->getRubrique42()) {
return $this->render('front/sousrubriques.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique
]);
}
// --43-- Aidez vos proches
elseif ($sousrubrique == $this->rubriqueManager->getRubrique43()) {
return $this->render('front/sousrubriques.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique
]);
}
// --44-- Préparez-vous à la retraite
elseif ($sousrubrique == $this->rubriqueManager->getRubrique44()) {
return $this->render('front/sousrubriques.html.twig', [
'ssr' => $sousrubrique,
'r' => $rubrique
]);
}
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- CATEGORIE AGORA
* @Route("/CPT/rubrique/{slug}/{slug2}/{slug3}", name="agora_categorie", methods={"GET","POST"})
*/
public function agora_categorie($slug, $slug2, $slug3, Request $request): Response
{
$categorie = $this->categorieRepository->findOneBy(['slug' => $slug3]);
$rubrique = $this->rubriqueRepository->findOneBy(['slug' => $slug]);
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
if (($sousrubrique == $this->rubriqueManager->getRubrique35() && $this->rubriqueManager->getRubrique35()->isStatut()) || ($rubrique->isStatut() && $sousrubrique->isStatut()) && $categorie->isStatut()) {
// $souscategories = $this->souscategorieRepository->findby(['statut' => true],['listorder' => 'ASC']);
// $array = [];
// foreach ($souscategories as $key => $ssc) {
// $array[$key]['ssc'] = $ssc;
// $agoras = $this->agoraRepository->findBy(['categorie' => $categorie, 'souscategorie' => $ssc, 'statut' => true]);
// $array[$key]['agoras'] = $agoras;
// if ($agoras) {
// $array[$key]['statut'] = true;
// } else {
// $array[$key]['statut'] = false;
// }
// }
// $agoraFilter = new AgoraFilter();
// //dd($agoraFilter);
// $recup = [];
// foreach ($array as $key => $value) {
// if ($value['statut']) {
// $recup[] = $value;
// }
// }
// //dd($recup[0]);
// if ($recup) {
// $agoraFilter->setSouscategorie($recup[0]['ssc']);
// }
// $form = $this->createForm(AgoraFilterType::class, $agoraFilter);
// $form->handleRequest($request);
// $agoras = $this->agoraRepository->findByFilter($agoraFilter, true, $categorie);
// $count = count($this->agoraRepository->findByFilter($agoraFilter, true, $categorie));
// $h2 = '';
// if ($agoraFilter->getSouscategorie()) {
// $agoraFilter->getSouscategorie()->getNom();
// }
// //dd($array);
// return $this->render('front/ssr35c.html.twig', [
// 'categorie' => $categorie,
// 'r' => $rubrique,
// 'ssr' => $sousrubrique,
// 'array' => $array,
// 'agoras' => $agoras,
// 'count' => $count,
// 'form' => $form->createView(),
// 'h2' => $h2
// ]);
$user = $this->getUser();
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('agora_categorie', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug(), 'slug3' => $categorie->getSlug()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$agoras = $this->agoraRepository->findByFilterPagination($recherche, $ordre,true, $page, $categorie);
$count = count($agoras['data']);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_ssr35_agora.html.twig', [
'categorie' => $categorie,
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $agoras,
'count' => $count,
'page' => $page
])
]);
}
if ($categorie->isEntite()) {
$entite = true;
} else {
$entite = false;
}
$agora = new Agora();
$form = $this->createForm(AgoraType::class, $agora, [
'entite' => $entite
]);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$uploadFile = $form->get('fichier')->getData();
if ($uploadFile) {
$mimeType = explode('/', $uploadFile->getClientMimeType());
$ext = $mimeType[1];
if ($mimeType[1] == 'vnd.openxmlformats-officedocument.wordprocessingml.document') {
$ext = 'docx';
}
if ($mimeType[1] == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
$ext = 'xlsx';
}
$nomImage = date('YmdHis') . '-' . uniqid() . '.' . $ext;
$uploadFile->move(
$this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['post'],
$nomImage
);
$agora->setFichier($nomImage);
$agora->setMime($mimeType[0]);
$agora->setExt($ext);
}
$agora->setToken($this->codeManager->getCode());
$slug = $this->slugManager->getSlug($agora->getTitre());
$agora->setSlug($agora->getToken() . '-' . $slug);
$agora->setCreatedAt(new \DateTimeImmutable('now'));
$agora->setUser($user);
$this->em->persist($agora);
$this->em->flush();
$subject = 'Nouveau post dans ' . $sousrubrique->getNom();
$template = 'new_post.html.twig';
$data = [
'user' => $user,
];
$this->emailManager->getSendMail($user, $subject, $template, $data);
$this->addFlash('success', sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais', $agora->getTitre()));
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
return $this->render('front/ssr35c.html.twig', [
'categorie' => $categorie,
'ssr' => $sousrubrique,
'r' => $rubrique,
'items' => $agoras,
'count' => $count,
'form2' => $form->createView(),
'page' => $page
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- AJOUTER AGORA
* @Route("/rubrique/{slug}/{slug2}/{slug3}/ajouter", name="agora_new", methods={"GET", "POST"})
*/
public function agora_new(Rubrique $rubrique, $slug2, $slug3, Request $request): Response
{
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
$categorie = $this->categorieRepository->findOneBy(['slug' => $slug3]);
if (($sousrubrique == $this->rubriqueManager->getRubrique35() && $this->rubriqueManager->getRubrique35()->isStatut()) || ($rubrique->isStatut() && $sousrubrique->isStatut()) && $categorie->isStatut() && $this->getUser()) {
$user = $this->getUser();
$agora = new Agora();
$form = $this->createForm(AgoraType::class, $agora);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$agora->setToken($this->codeManager->getCode());
$slug = $this->slugManager->getSlug($agora->getNom());
$agora->setSlug($agora->getToken() . '-' . $slug);
$agora->setCreatedAt(new \DateTimeImmutable('now'));
$agora->setCategorie($categorie);
$agora->setUser($user);
$this->em->persist($agora);
$this->em->flush();
$subject = 'Nouveau post dans ' . $sousrubrique->getNom();
$template = 'new_agora.html.twig';
$data = [
'user' => $user,
];
$this->emailManager->getSendMail($user, $subject, $template, $data);
$this->addFlash('success', sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais', $agora->getNom()));
return $this->redirectToRoute('agora_categorie', ['slug1' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug(), 'slug' => $categorie->getSlug()], Response::HTTP_SEE_OTHER);
}
return $this->render('front/ssr35a.html.twig', [
'form' => $form->createView(),
'r' => $rubrique,
'ssr' => $sousrubrique,
'categorie' => $categorie,
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- DOMAINE POST
* @Route("/DMN/rubrique/{slug1}/{slug2}/{slug}", name="post_domaine", methods={"GET","POST"})
*/
public function post_domaine($slug1, $slug2, Domaine $domaine, Request $request): Response
{
$rubrique = $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
if ($rubrique->isStatut() && $sousrubrique->isStatut() && $domaine->isStatut()) {
$posts = $this->postRepository->findBy(['statut' => true, 'domaine' => $domaine], ['validedAt' => 'DESC']);
//dd($array);
return $this->render('front/ssr34d.html.twig', [
'posts' => $posts,
'r' => $rubrique,
'ssr' => $sousrubrique,
'domaine' => $domaine,
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- AJOUTER POST
* @Route("/PST/rubrique/{slug}/{slug2}/{slug3}/ajouter", name="post_new", methods={"GET", "POST"})
*/
public function post_new(Rubrique $rubrique, $slug2, $slug3, Request $request): Response
{
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
$domaine = $this->domaineRepository->findOneBy(['slug' => $slug3]);
if (($rubrique->isStatut() && $sousrubrique->isStatut() && $domaine->isStatut()) && $this->getUser()) {
$user = $this->getUser();
$post = new Post();
$form = $this->createForm(PostType::class, $post);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$uploadFile = $form->get('fichier')->getData();
if ($uploadFile) {
$mimeType = explode('/', $uploadFile->getClientMimeType());
$ext = $mimeType[1];
if ($mimeType[1] == 'vnd.openxmlformats-officedocument.wordprocessingml.document') {
$ext = 'docx';
}
if ($mimeType[1] == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
$ext = 'xlsx';
}
$nomImage = date('YmdHis') . '-' . uniqid() . '.' . $ext;
$uploadFile->move(
$this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['post'],
$nomImage
);
$post->setFichier($nomImage);
$post->setMime($mimeType[0]);
$post->setExt($ext);
}
$post->setToken($this->codeManager->getCode());
$slug = $this->slugManager->getSlug($post->getTitre());
$post->setSlug($post->getToken() . '-' . $slug);
$post->setCreatedAt(new \DateTimeImmutable('now'));
$post->setUser($user);
//$post->setDomaine($domaine);
$this->em->persist($post);
$this->em->flush();
$subject = 'Nouveau post dans ' . $sousrubrique->getNom();
$template = 'new_post.html.twig';
$data = [
'user' => $user,
];
$this->emailManager->getSendMail($user, $subject, $template, $data);
$this->addFlash('success', sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais', $post->getTitre()));
return $this->redirectToRoute('post_domaine', ['slug1' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug(), 'slug' => $domaine->getSlug()], Response::HTTP_SEE_OTHER);
}
return $this->render('front/ssr34a.html.twig', [
'form' => $form->createView(),
'r' => $rubrique,
'ssr' => $sousrubrique,
'domaine' => $domaine
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- AJOUTER RECRUTEUR
* @Route("/RCT/rubrique/{slug}/{slug2}/ajouter", name="droit_new", methods={"GET", "POST"})
*/
public function droit_new(Rubrique $rubrique, $slug2, Request $request): Response
{
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
if (($rubrique->isStatut() && $sousrubrique->isStatut()) && $this->getUser()) {
$user = $this->getUser();
$droit = new Droit();
$form = $this->createForm(DroitType::class, $droit);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$droit->setToken($this->codeManager->getCode());
$slug = $this->slugManager->getSlug($droit->getTitre());
$droit->setSlug($droit->getToken() . '-' . $slug);
$droit->setCreatedAt(new \DateTimeImmutable('now'));
$droit->setUser($user);
$this->em->persist($droit);
$this->em->flush();
$subject = 'Nouveau post dans ' . $sousrubrique->getNom();
$template = 'new_droit.html.twig';
$data = [
'user' => $user,
];
$this->emailManager->getSendMail($user, $subject, $template, $data);
$this->addFlash('success', sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais', $droit->getTitre()));
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
return $this->render('front/ssr14a.html.twig', [
'form' => $form->createView(),
'r' => $rubrique,
'ssr' => $sousrubrique,
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- AJOUTER CV
* @Route("/CVN/rubrique/{slug}/{slug2}/ajouter", name="cv_new", methods={"GET", "POST"})
*/
public function cv_new(Rubrique $rubrique, $slug2, Request $request): Response
{
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
if (($rubrique->isStatut() && $sousrubrique->isStatut()) && $this->getUser()) {
$user = $this->getUser();
$cv = new Cv();
$form = $this->createForm(CvType::class, $cv, [
'add' => true
]);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
//dd($cv);
// $parcoursArray = explode('\r\n', $cv->getParcours());
// dd($parcoursArray);
$imageFile = $form->get('photo')->getData();
if ($imageFile) {
$nomImage = date('YmdHis') . '-' . uniqid() . '.' . $imageFile->getClientOriginalExtension();
$imageFile->move(
$this->getParameter('photo'),
$nomImage
);
$cv->setPhoto($nomImage);
}
$cvFile = $form->get('cv')->getData();
if ($cvFile) {
$nomImage = date('YmdHis') . '-' . uniqid() . '.' . $cvFile->getClientOriginalExtension();
$cvFile->move(
$this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['cv'],
$nomImage
);
$cv->setCv($nomImage);
}
$cv->setToken($this->codeManager->getCode());
$slug = $this->slugManager->getSlug($cv->getNom());
$cv->setSlug($cv->getToken() . '-' . $slug);
$cv->setCreatedAt(new \DateTimeImmutable('now'));
$cv->setUser($user);
$this->em->persist($cv);
$this->em->flush();
$subject = 'Nouveau cv dans ' . $sousrubrique->getNom();
$template = 'new_cv.html.twig';
$data = [
'user' => $user,
];
$this->emailManager->getSendMail($user, $subject, $template, $data);
$this->addFlash('success', 'Le CV a bien été enregistré et sera traité dans les plus brefs délais');
return $this->redirectToRoute('ssrubriques', ['slug' => $rubrique->getSlug(), 'slug2' => $sousrubrique->getSlug()], Response::HTTP_SEE_OTHER);
}
return $this->render('front/ssr15a.html.twig', [
'form' => $form->createView(),
'r' => $rubrique,
'ssr' => $sousrubrique,
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- FICHE RECRUTEMENT
* @Route("/RCF/rubrique/{slug1}/{slug2}/{slug}", name="droit_fiche", methods={"GET","POST"})
*/
public function droit_fiche($slug1, $slug2, Droit $droit): Response
{
$rubrique = $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
if ($rubrique->isStatut() && $sousrubrique->isStatut() && $droit->isStatut()) {
//dd($array);
return $this->render('front/ssr14f.html.twig', [
'r' => $rubrique,
'ssr' => $sousrubrique,
'droit' => $droit,
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- FICHE CV
* @Route("/CVF/rubrique/{slug1}/{slug2}/{slug}", name="cv_fiche", methods={"GET","POST"})
*/
public function cv_fiche($slug1, $slug2, CV $droit): Response
{
$rubrique = $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
if ($rubrique->isStatut() && $sousrubrique->isStatut() && $droit->isStatut()) {
//dd($array);
return $this->render('front/ssr15f.html.twig', [
'r' => $rubrique,
'ssr' => $sousrubrique,
'cv' => $droit,
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- FICHE ASTUCE
* @Route("/BAA/rubrique/{slug1}/{slug2}/{slug}", name="post_fiche", methods={"GET","POST"})
*/
public function post_fiche($slug1, $slug2, Post $post): Response
{
$rubrique = $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
if ($rubrique->isStatut() && $sousrubrique->isStatut() && $post->isStatut()) {
//dd($array);
return $this->render('front/ssr34f.html.twig', [
'r' => $rubrique,
'ssr' => $sousrubrique,
'post' => $post,
]);
} else {
throw $this->createNotFoundException();
}
}
/**
* @return Response
* ---------------------- FICHE ASTUCE
* @Route("/AGR/rubrique/{slug1}/{slug2}/{slug}", name="agora_fiche", methods={"GET","POST"})
*/
public function agora_fiche($slug1, $slug2, Agora $agora): Response
{
$rubrique = $this->rubriqueRepository->findOneBy(['slug' => $slug1]);
$sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
if ($rubrique->isStatut() && $sousrubrique->isStatut() && $agora->isStatut()) {
//dd($array);
return $this->render('front/ssr35f.html.twig', [
'r' => $rubrique,
'ssr' => $sousrubrique,
'post' => $agora,
]);
} else {
throw $this->createNotFoundException();
}
}
// /**
// * @Route("/TA/rubrique/{slug}/{slug2}/post/ajouter", name="boiteAstuceNew", methods={"GET", "POST"})
// */
// public function boiteAstuceNew(Rubrique $rubrique, $slug2, Request $request): Response
// {
// $sousrubrique = $this->sousrubriqueRepository->findOneBy(['slug' => $slug2]);
// if ($rubrique->isStatut() && $sousrubrique->isStatut() && $this->getUser()) {
// $user = $this->getUser();
// $post = new Post();
// $form = $this->createForm(PostType::class, $post);
// $form->handleRequest($request);
// if ($form->isSubmitted() && $form->isValid()) {
// $uploadFile = $form->get('fichier')->getData();
// if ($uploadFile) {
// $mimeType = explode('/', $uploadFile->getClientMimeType());
// $nomImage = date('YmdHis') . '-' . uniqid() . '.' . $uploadFile->getClientOriginalExtension();
// $uploadFile->move(
// $this->getParameter('post'),
// $nomImage
// );
// $post->setFichier($nomImage);
// $post->setMime($mimeType[0]);
// $post->setExt($mimeType[1]);
// }
// $post->setToken($this->codeManager->getCode());
// $slug = $this->slugManager->getSlug($post->getTitre());
// $post->setSlug($post->getToken() . '-' . $slug);
// $post->setCreatedAt(new \DateTimeImmutable('now'));
// $post->setUser($user);
// $this->em->persist($post);
// $this->em->flush();
// $subject = 'Nouveau post dans ';
// $template = 'new_post.html.twig';
// $data = [
// 'user' => $user,
// ];
// $this->emailManager->getSendMail($user, $subject, $template, $data);
// $this->addFlash('success', sprintf('Le post <strong>%s</strong> a bien été enregistré et sera traité dans les plus brefs délais', $post->getTitre()));
// return $this->redirectToRoute('trucsAstuces', [], Response::HTTP_SEE_OTHER);
// }
// return $this->render('partage/trucsAstucesNew.html.twig', [
// 'form' => $form->createView()
// ]);
// } else {
// throw $this->createNotFoundException();
// }
// }
/**
* @Route("/ACS/{rubrique}", name="editorial", methods={"GET", "POST"})
*/
public function autresActualites(ActualiteRepository $actualiteRepository, Request $request): Response
{
$page = $request->query->get('page',1);
if(!is_numeric($page) OR $page < 1 OR is_float($page)){
return $this->redirectToRoute('editorial', ['rubrique' => $this->getActualite()], Response::HTTP_SEE_OTHER);
}
$recherche = $request->get('recherche');
$ordre = $request->get('ordre');
$droits = $actualiteRepository->findByFilterPagination($recherche, $ordre,true, $page);
$count = count($droits['data']);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_actualite_data.html.twig', [
'droits' => $droits,
'page' => $page,
])
]);
}
// $actualites = $actualiteRepository->findBy(['avant' => false, 'statut' => true] , ['createdAt' => 'DESC']);
//$actualites = $actualiteRepository->findByFilter();
// $actualiteFilter = new ActualiteFilter();
// $form = $this->createForm(ActualiteFilterType::class, $actualiteFilter);
// $form->handleRequest($request);
// $actualites = $actualiteRepository->findByFilterFo($actualiteFilter, true);
// $count = count($actualiteRepository->findByFilterFo($actualiteFilter, true));
return $this->render('front/actualites.html.twig', [
'droits' => $droits,
'page' => $page,
// 'count' => $count,
// 'form' => $form->createView()
]);
}
/**
* @Route("/ACT/{rubrique}/{slug}", name="actualite", methods={"GET", "POST"})
*/
public function actualite(Actualite $actualite): Response
{
if ($actualite->isStatut()) {
return $this->render('front/actualiteFiche.html.twig', [
'actualite' => $actualite
]);
} else {
// return $this->redirectToRoute('editorial');
throw $this->createNotFoundException();
}
}
/**
* @return Response
* @Route("/agenda", name="agenda", methods={"GET","POST"})
*/
public function agenda( AgendaRepository $agendaRepository,Request $request, SessionInterface $session): Response
{
$array = [];
$year = $request->get('annee');
$month = $request->get('mois');
$moisAnneeActuel = date('Y-m');
$dateActuelle = new \DateTime($moisAnneeActuel);
$agendaBefore = $this->getConfiguration()->getAgendaBefore();
$agendaNext = $this->getConfiguration()->getAgendaNext();
$dateActuellePlusUn = new \DateTime($moisAnneeActuel);
$dateActuellePlusUn->add(new \DateInterval("P1M"));
$dateFinale = $dateActuellePlusUn->add(new \DateInterval("P" . $agendaNext ."M"));
$periodeFuture = new \DatePeriod($dateActuelle, new \DateInterval('P1M'), $dateFinale);
foreach ($periodeFuture as $date) {
$array[$date->format('Y-m')] = $date->format('Y-m');
}
$dateActuelleMoins = new \DateTime($moisAnneeActuel);
$dateDebut = $dateActuelleMoins->modify('-' . $agendaBefore .' months');
$periodePassee = new \DatePeriod($dateDebut, new \DateInterval('P1M'), $dateActuelle);
foreach ($periodePassee as $date) {
$array[$date->format('Y-m')] = $date->format('Y-m');
}
ksort($array);
$search = array_search($year . '-' . $month, $array);
if(!$search)
{
return $this->redirectToRoute('agenda', ['year' => date('Y'), 'month' => date('m')]);
}
$yearsArray = [];
$m = [];
foreach($array as $data)
{
$arrayDataDate = explode('-', $data);
$yearsArray[$arrayDataDate[0]] = $arrayDataDate[0];
$m[$arrayDataDate[0]][] = $arrayDataDate[1];
}
$moisValue = [
'01' => 'Janvier',
'02' => 'Février',
'03' => 'Mars',
'04' => 'Avril',
'05' => 'Mai',
'06' => 'Juin',
'07' => 'Juillet',
'08' => 'Août',
'09' => 'Septembre',
'10' => 'Octobre',
'11' => 'Novembre',
'12' => 'Décembre',
];
$moisLettres = [];
foreach ($m[$year] as $key => $y) {
$moisLettres[$y] = [
'nom' => $moisValue[$y]
];
}
$moisActuelLettre = $moisValue[$month];
$annees = [];
foreach($yearsArray as $y)
{
$annees[] = [
'mois' => $m[$y][0],
'annee' => $y
];
}
$agendaBefore = (strlen($this->getConfiguration()->getAgendaBefore()) == 1 ) ? '0' . $this->getConfiguration()->getAgendaBefore() : $this->getConfiguration()->getAgendaBefore() ;
$agendaNext = (strlen($this->getConfiguration()->getAgendaNext()) == 1 ) ? '0' . $this->getConfiguration()->getAgendaNext() : $this->getConfiguration()->getAgendaNext() ;
foreach ($moisLettres as $moisNumero => $value) {
$searchEvents = $agendaRepository->findAgendaYearMonth($year . '-' . $moisNumero);
if($year . '-' . $moisNumero == $year . '-' . $month){
$evenements = $searchEvents;
}
if ($searchEvents) {
$moisLettres[$moisNumero]['evenements'] = true;
} else {
$moisLettres[$moisNumero]['evenements'] = false;
}
}
//dd($moisLettres);
$previousRoute = $month;
$session->set('previous_route', $previousRoute);
if($request->get('ajax')){
return new JsonResponse([
'content' => $this->renderView('front/_agenda_card.html.twig', [
'evenements' => $evenements,
'years' => $annees,
'moisAll' => $moisLettres,
'yearActuel' => $year,
'moisActuel' => $month,
'moisActuelLettre' => $moisActuelLettre
])
]);
}
return $this->render('front/agenda.html.twig', [
'evenements' => $evenements,
'years' => $annees,
'moisAll' => $moisLettres,
'yearActuel' => $year,
'moisActuel' => $month,
'moisActuelLettre' => $moisActuelLettre
]);
}
/**
* @return Response
* @Route("/agenda/evenement/{slug}", name="agendaFiche", methods={"GET","POST"})
*/
public function agendaFiche(Agenda $agenda,SessionInterface $session): Response
{
if ($agenda->isStatut()) {
$previousRoute = $session->get('previous_route');
return $this->render('front/agendaFiche.html.twig', [
'agenda' => $agenda,
'previousRoute' => $previousRoute
]);
} else {
// return $this->redirectToRoute('editorial');
throw $this->createNotFoundException();
}
}
/**
* @Route("/css_route", name="css_route")
*/
public function css_route(): Response
{
$configuration = $this->getConfiguration();
$response = $this->render('front/style.css.twig', [
'configuration' => $configuration,
]);
$response->headers->set('Content-Type', 'text/css');
return $response;
}
/**
* @Route("/document/post/{uuid}", name="post_pdf", methods={"GET"})
*/
public function pdf(Post $post)
{
$file_location = $post->getFichier();
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $file_location . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file_location));
header('Accept-Ranges: bytes');
@readfile($file_location);
}
/**
* @Route("/recherche", name="recherche", methods={"GET","POST"})
*/
public function recherche(Request $request, RubriqueManager $rubriqueManager, CvRepository $cvRepository, DroitRepository $droitRepository, ConferenceRepository $conferenceRepository, ArchiveRepository $archiveRepository, AgoraRepository $agoraRepository, InitiativeRepository $initiativeRepository, PostRepository $postRepository, JuridiqueRepository $juridiqueRepository, ReferentRepository $referentRepository, SousrubriqueRepository $sousrubriqueRepository, ActualiteRepository $actualiteRepository, RubriqueRepository $rubriqueRepository, AgendaRepository $agendaRepository)
{
$user = $this->getUser();
$search = $request->request->get('search');
$ssrs = [
'7c3d0193-e062-4bbd-98ef-93202982cfe0' => 'Droit',
'98f7-9e0b13ac14c6-19c3ff45-b508-4c8b' => 'Cv',
'b70a9193-ef1b-4a28-aaba-c6ed700632f4' => 'Conference',
'81c8caaa-2726-4622-8c1a-e945717587bb' => 'Archive',
'99a2f476-604c-454b-8084-ce0feb3a9082' => 'Agora',
'01c36a9b-7f8e-43a0-8281-3c19ebbfa068' => 'Initiative',
'8203411d-3347-4d98-b5d3-a096d317967d' => 'Post',
'5564cf0a-37c3-41b0-98a8-ccfed0c70406' => 'Juridique',
'1626835c-f328-4aec-b6a3-9f7cb39a4b18' => 'Referent'
];
$array = [];
if ($search) {
// // mobilité professionnelle
// if ($rubriqueManager->getRubrique1()->isStatut()) {
// foreach ($rubriqueManager->getRubrique1()->getSousrubriques() as $ssr) {
// dump($ssr);
// if ($ssr->isStatut()) {
// $value = $ssrs[$ssr->getUuid()];
// switch ($value) {
// case 'Droit':
// $droits = $droitRepository->findSearch($search);
// if ($droits) {
// $array['droit'] = $droits;
// }
// break;
// case 'Cv':
// $cvs = $cvRepository->findSearch($search, $user);
// if ($cvs) {
// $array['cv'] = $cvs;
// }
// break;
// case 'Conference':
// $conferences = $conferenceRepository->findSearch($search);
// if ($conferences) {
// $array['conference'] = $conferences;
// }
// break;
// case 'Archive':
// $archives = $archiveRepository->findSearch($search);
// if ($archives) {
// $array['archive'] = $archives;
// }
// break;
// case 'Agora':
// $agoras = $agoraRepository->findSearch($search);
// if ($agoras) {
// $array['agora'] = $agoras;
// }
// break;
// case 'Initiative':
// $initiatives = $initiativeRepository->findSearch($search);
// if ($initiatives) {
// $array['initiative'] = $initiatives;
// }
// break;
// case 'Post':
// $posts = $postRepository->findSearch($search);
// if ($posts) {
// $array['post'] = $posts;
// }
// break;
// case 'Juridique':
// $juridiques = $juridiqueRepository->findSearch($search);
// if ($juridiques) {
// $array['juridique'] = $juridiques;
// }
// break;
// case 'Referent':
// $referents = $referentRepository->findSearch($search);
// if ($referents) {
// $array['referent'] = $referents;
// }
// break;
// default:
// # code...
// break;
// }
// }
// }
// }
// // mobilité professionnelle
// if ($rubriqueManager->getRubrique2()->isStatut()) {
// foreach ($rubriqueManager->getRubrique1()->getSousrubriques() as $ssr) {
// dump($ssr);
// if ($ssr->isStatut()) {
// $value = $ssrs[$ssr->getUuid()];
// switch ($value) {
// case 'Droit':
// $droits = $droitRepository->findSearch($search);
// if ($droits) {
// $array['droit'] = $droits;
// }
// break;
// case 'Cv':
// $cvs = $cvRepository->findSearch($search, $user);
// if ($cvs) {
// $array['cv'] = $cvs;
// }
// break;
// case 'Conference':
// $conferences = $conferenceRepository->findSearch($search);
// if ($conferences) {
// $array['conference'] = $conferences;
// }
// break;
// case 'Archive':
// $archives = $archiveRepository->findSearch($search);
// if ($archives) {
// $array['archive'] = $archives;
// }
// break;
// case 'Agora':
// $agoras = $agoraRepository->findSearch($search);
// if ($agoras) {
// $array['agora'] = $agoras;
// }
// break;
// case 'Initiative':
// $initiatives = $initiativeRepository->findSearch($search);
// if ($initiatives) {
// $array['initiative'] = $initiatives;
// }
// break;
// case 'Post':
// $posts = $postRepository->findSearch($search);
// if ($posts) {
// $array['post'] = $posts;
// }
// break;
// case 'Juridique':
// $juridiques = $juridiqueRepository->findSearch($search);
// if ($juridiques) {
// $array['juridique'] = $juridiques;
// }
// break;
// case 'Referent':
// $referents = $referentRepository->findSearch($search);
// if ($referents) {
// $array['referent'] = $referents;
// }
// break;
// default:
// # code...
// break;
// }
// }
// }
// }
// // mobilité professionnelle
// if ($rubriqueManager->getRubrique3()->isStatut()) {
// foreach ($rubriqueManager->getRubrique1()->getSousrubriques() as $ssr) {
// dump($ssr);
// if ($ssr->isStatut()) {
// $value = $ssrs[$ssr->getUuid()];
// switch ($value) {
// case 'Droit':
// $droits = $droitRepository->findSearch($search);
// if ($droits) {
// $array['droit'] = $droits;
// }
// break;
// case 'Cv':
// $cvs = $cvRepository->findSearch($search, $user);
// if ($cvs) {
// $array['cv'] = $cvs;
// }
// break;
// case 'Conference':
// $conferences = $conferenceRepository->findSearch($search);
// if ($conferences) {
// $array['conference'] = $conferences;
// }
// break;
// case 'Archive':
// $archives = $archiveRepository->findSearch($search);
// if ($archives) {
// $array['archive'] = $archives;
// }
// break;
// case 'Agora':
// $agoras = $agoraRepository->findSearch($search);
// if ($agoras) {
// $array['agora'] = $agoras;
// }
// break;
// case 'Initiative':
// $initiatives = $initiativeRepository->findSearch($search);
// if ($initiatives) {
// $array['initiative'] = $initiatives;
// }
// break;
// case 'Post':
// $posts = $postRepository->findSearch($search);
// if ($posts) {
// $array['post'] = $posts;
// }
// break;
// case 'Juridique':
// $juridiques = $juridiqueRepository->findSearch($search);
// if ($juridiques) {
// $array['juridique'] = $juridiques;
// }
// break;
// case 'Referent':
// $referents = $referentRepository->findSearch($search);
// if ($referents) {
// $array['referent'] = $referents;
// }
// break;
// default:
// # code...
// break;
// }
// }
// }
// }
// // mobilité professionnelle
// if ($rubriqueManager->getRubrique4()->isStatut()) {
// foreach ($rubriqueManager->getRubrique1()->getSousrubriques() as $ssr) {
// dump($ssr);
// if ($ssr->isStatut()) {
// $value = $ssrs[$ssr->getUuid()];
// switch ($value) {
// case 'Droit':
// $droits = $droitRepository->findSearch($search);
// if ($droits) {
// $array['droit'] = $droits;
// }
// break;
// case 'Cv':
// $cvs = $cvRepository->findSearch($search, $user);
// if ($cvs) {
// $array['cv'] = $cvs;
// }
// break;
// case 'Conference':
// $conferences = $conferenceRepository->findSearch($search);
// if ($conferences) {
// $array['conference'] = $conferences;
// }
// break;
// case 'Archive':
// $archives = $archiveRepository->findSearch($search);
// if ($archives) {
// $array['archive'] = $archives;
// }
// break;
// case 'Agora':
// $agoras = $agoraRepository->findSearch($search);
// if ($agoras) {
// $array['agora'] = $agoras;
// }
// break;
// case 'Initiative':
// $initiatives = $initiativeRepository->findSearch($search);
// if ($initiatives) {
// $array['initiative'] = $initiatives;
// }
// break;
// case 'Post':
// $posts = $postRepository->findSearch($search);
// if ($posts) {
// $array['post'] = $posts;
// }
// break;
// case 'Juridique':
// $juridiques = $juridiqueRepository->findSearch($search);
// if ($juridiques) {
// $array['juridique'] = $juridiques;
// }
// break;
// case 'Referent':
// $referents = $referentRepository->findSearch($search);
// if ($referents) {
// $array['referent'] = $referents;
// }
// break;
// default:
// # code...
// break;
// }
// }
// }
// }
// if ($rubriqueManager->getRubrique4()->isStatut()) {
foreach ($ssrs as $k => $uuid) {
$ssr = $sousrubriqueRepository->findOneBy(['uuid' => $k]);
//dd($ssr);
if ($ssr->isStatut()) {
$value = $ssrs[$ssr->getUuid()];
switch ($value) {
case 'Droit':
$droits = $droitRepository->findSearch($search);
if ($droits) {
$array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
'ssr' => [
'nom' => $ssr->getNom(),
'lien' => $ssr->getLien(),
'twig' => '14_droits',
'r' => $ssr->getRubrique(),
'ssr' => $ssr,
'search' => true
],
'data' => $droits
];
}
break;
case 'Cv':
$cvs = $cvRepository->findSearch($search, $user);
if ($cvs) {
$array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
'ssr' => [
'nom' => $ssr->getNom(),
'lien' => $ssr->getLien(),
'twig' => '15_cv',
'r' => $ssr->getRubrique(),
'ssr' => $ssr,
'search' => true
],
'data' => $cvs
];
}
break;
case 'Conference':
$conferences = $conferenceRepository->findSearch($search);
if ($conferences) {
$array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
'ssr' => [
'nom' => $ssr->getNom(),
'lien' => $ssr->getLien(),
'twig' => '22_conferences',
'search' => true
],
'data' => $conferences
];
}
break;
case 'Archive':
$archives = $archiveRepository->findSearch($search);
if ($archives) {
$array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
'ssr' => [
'nom' => $ssr->getNom(),
'lien' => $ssr->getLien(),
'twig' => '13_archives',
'search' => true
],
'data' => $archives
];
}
break;
case 'Agora':
$agoras = $agoraRepository->findSearch($search);
if ($agoras) {
$array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
'ssr' => [
'nom' => $ssr->getNom(),
'lien' => $ssr->getLien(),
'twig' => '35_agora',
'r' => $ssr->getRubrique(),
'ssr' => $ssr,
'search' => true
],
'data' => $agoras
];
}
break;
case 'Initiative':
$initiatives = $initiativeRepository->findSearch($search);
if ($initiatives) {
$array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
'ssr' => [
'nom' => $ssr->getNom(),
'lien' => $ssr->getLien(),
'twig' => '32_initiatives',
'search' => true
],
'data' => $initiatives
];
}
break;
case 'Post':
$posts = $postRepository->findSearch($search);
if ($posts) {
$array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
'ssr' => [
'nom' => $ssr->getNom(),
'lien' => $ssr->getLien(),
'twig' => '34_post',
'r' => $ssr->getRubrique(),
'ssr' => $ssr,
'search' => true
],
'data' => $posts
];
}
break;
case 'Juridique':
$juridiques = $juridiqueRepository->findSearch($search);
if ($juridiques) {
$array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
'ssr' => [
'nom' => $ssr->getNom(),
'lien' => $ssr->getLien(),
'twig' => '31_juridiques',
'search' => true
],
'data' => $juridiques
];
}
break;
case 'Referent':
$referents = $referentRepository->findSearch($search);
if ($referents) {
$array[$ssr->getRubrique()->getNom()]['ssr'][$ssr->getNom()] = [
'ssr' => [
'nom' => $ssr->getNom(),
'lien' => $ssr->getLien(),
'twig' => '33_referents',
'search' => true
],
'data' => $referents
];
}
break;
default:
# code...
break;
}
}
}
$rubriques = $rubriqueRepository->findSearch($search,$this->getActualite());
//dd($rubriques);
foreach ($rubriques as $key => $rubrique) {
$array[$rubrique->getNom()]['data'] = [
'nom' => $rubrique->getNom(),
'description' => $rubrique->getDescription(),
'phrase' => $rubrique->getPhrase(),
'slug' => $rubrique->getSlug(),
'srcImg' => $rubrique->getSrcImg(),
'altImg' => $rubrique->getAltImg(),
'titleImg' => $rubrique->getTitleImg(),
];
}
$ssrubriques = $sousrubriqueRepository->findSearch($search);
foreach ($ssrubriques as $key => $ssrubrique) {
$array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['nom'] = $ssrubrique->getNom();
$array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['description'] = $ssrubrique->getDescription();
$array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['phrase'] = $ssrubrique->getPhrase();
$array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['slug'] = $ssrubrique->getSlug();
$array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['srcImg'] = $ssrubrique->getSrcImg();
$array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['altImg'] = $ssrubrique->getAltImg();
$array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['titleImg'] = $ssrubrique->getTitleImg();
$array[$ssrubrique->getRubrique()->getNom()]['ssr'][$ssrubrique->getNom()]['ssr']['r'] = $ssrubrique->getRubrique();
$array[$ssrubrique->getRubrique()->getNom()]['data'] = [
'nom' => $ssrubrique->getRubrique()->getNom(),
// 'description' => $ssrubrique->getRubrique()->getDescription(),
// 'phrase' => $ssrubrique->getRubrique()->getPhrase(),
'slug' => $ssrubrique->getRubrique()->getSlug(),
// 'srcImg' => $ssrubrique->getRubrique()->getSrcImg(),
// 'altImg' => $ssrubrique->getRubrique()->getAltImg(),
// 'titleImg' => $ssrubrique->getRubrique()->getTitleImg(),
];
}
// $actualites = $actualiteRepository->findSearch($search);
// if ($actualites) {
// $array[$rubriqueManager->getRubrique5()->getNom()] = [
// // 'ssr' => [
// // 'nom' => $ssr->getNom(),
// // 'lien' => $ssr->getLien(),
// // 'twig' => '14_droits',
// // 'r' => $ssr->getRubrique(),
// // 'ssr' => $ssr,
// // 'search' => true
// // ],
// 'data' => $droits
// ];
// }
// }
// actualité / agenda / Page
// rectif post et referent
//dd($array);
} else {
# code...
}
return $this->render('front/recherche.html.twig', [
'rubriques' => $array,
'search' => $search
]);
}
/**
* @Route("/test/download/{uuid}", name="downloadTest")
*/
public function downloadFileAction(Post $post): Response
{
// Récupérez le chemin absolu vers le fichier à télécharger
$filePath = $this->fileUploadParameters['base_path'].$this->fileUploadParameters['directories']['post']. $post->getFichier();
// Vérifiez si le fichier existe
if (!file_exists($filePath)) {
throw $this->createNotFoundException('Le fichier demandé n\'existe pas.');
}
// Créez une réponse avec le fichier à télécharger
$response = new BinaryFileResponse($filePath);
// Définissez le nom de fichier pour le téléchargement
//$response->setContentDisposition(Response::DISPOSITION_ATTACHMENT, $post->getFichier());
return $response;
}
// /**
// * @return Response
// * @Route("/recruter/add", name="recruter_add", methods={"GET","POST"})
// */
// public function recruter_add()
// {
// for ($i=1; $i < 150; $i++) {
// $caractere = ['Lorem','ipsum','dolor','sit','amet','consectetur','adipiscing','elit','Sed','do','eiusmod','tempor','incididunt','ut','labore','et','dolore','magna','aliqua','Ut','enim','ad','minim','veniam','quis','nostrud','exercitation','ullamco','laboris','nisi','ut','aliquip','ex','ea','commodo','consequat'];
// shuffle($caractere);
// $count = count($caractere);
// $rand = rand(1, $count);
// $chaine = '';
// for ($j = 1; $j <= rand(2, 8); $j++) {
// $rand = rand(0, $count - 1);
// $chaine .= ' ' . $caractere[$rand];
// }
// // Date de départ (1er janvier 2023)
// $dateDepart = new \DateTime('2023-01-01');
// // Date actuelle (aujourd'hui)
// $dateAujourdhui = new \DateTime();
// // Calcul d'un nombre de jours aléatoire entre 0 et la différence de jours entre le 1er janvier 2023 et aujourd'hui
// $nombreJoursAleatoire = rand(0, $dateDepart->diff($dateAujourdhui)->days);
// // Ajout du nombre de jours aléatoire à la date de départ
// $dateAleatoire = $dateDepart->add(new \DateInterval("P{$nombreJoursAleatoire}D"));
// // Formatage de la date au format souhaité
// $dateFormatee = $dateAleatoire->format('Y-m-d');
// $user = $this->getUser();
// $droit = new Droit();
// $droit->setToken($this->codeManager->getCode());
// $droit->setTitre($chaine);
// $slug = $this->slugManager->getSlug($droit->getTitre());
// $droit->setSlug($droit->getToken() . '-' . $slug);
// $droit->setCreatedAt(new \DateTimeImmutable('now'));
// $droit->setValidedAt(new \DateTimeImmutable($dateFormatee));
// $droit->setUser($user);
// $droit->setStatut(true);
// $droit->setModerate(true);
// $droit->setLien('https://www.google.fr/');
// $droit->setDescription('Lorem ipsum dolor sit amet consectetur adipisicing elit. Nemo praesentium facilis ipsam earum dignissimos velit unde numquam vitae aliquam, voluptatem repellat perspiciatis recusandae perferendis? Odio suscipit quod quasi sequi consequatur.');
// $droit->setNom($user->getNom());
// $droit->setPrenom($user->getPrenom());
// $droit->setEmail($user->getEmail());
// $droit->setPhone('0708090405');
// $droit->setDirection('DGFIP');
// $this->em->persist($droit);
// $this->em->flush();
// }
// }
}