<?php
namespace App\Controller;
use App\Entity\Economic;
use App\Entity\Equal;
use App\Entity\Event;
use App\Entity\Newsletter;
use App\Entity\Realisation;
use App\Entity\Youth;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use App\Repository\GalerieRepository;
use App\Repository\EquipeRepository;
use Symfony\Component\HttpFoundation\Request;
use App\Repository\RealisationRepository;
use App\Repository\TypeRepository;
use App\Form\ContactType;
use App\Repository\AboutTextRepository;
use App\Repository\ActivityContentRepository;
use App\Repository\DocumentRepository;
use App\Repository\DonorRepository;
use App\Repository\EconomicRepository;
use App\Repository\EqualRepository;
use App\Repository\EventRepository;
use App\Repository\GalleryRepository;
use App\Repository\HeaderImageRepository;
use App\Repository\TemoignageRepository;
use App\Repository\YouthRepository;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class DefaultController extends AbstractController
{
private $session;
public function __construct(SessionInterface $session)
{
$this->session = $session;
}
/**
* @Route("/", name="default")
*/
public function index(AboutTextRepository $aboutTextRepository, DonorRepository $donorRepository, TemoignageRepository $temoignageRepository, GalerieRepository $galerieRepository, EventRepository $eventRepository, TypeRepository $typeRepository, RealisationRepository $realisationRepository,Request $request,MailerInterface $mailer)
{
$type = $typeRepository->findByNom('News');
return $this->render('default/index.html.twig', [
'gal' => $galerieRepository->findBy(array(),array('id'=>'DESC')),
//'gal' => $galleryRepository->findBy(array(),array('id'=>'DESC')),
'events' => $eventRepository->findBy(array(),array('id'=>'DESC')),
'realisations' => $realisationRepository->findBy(array(),array('id'=>'DESC')),
'news' => $realisationRepository->findBy(array('type'=>$type),array('id'=>'DESC')),
'types' => $typeRepository->findBy(array(),array('id'=>'DESC')),
'temoignages' => $temoignageRepository->findAll(),
'donors' => $donorRepository->findAll(),
'about_texts' => $aboutTextRepository->findOneBy(array(),array('id'=>'DESC')),
]);
}
/**
* @Route("/about", name="about")
*/
public function about(AboutTextRepository $aboutTextRepository,EquipeRepository $equipeRepository, HeaderImageRepository $headerImageRepository)
{
return $this->render('default/about.html.twig',[
'equipes' => $equipeRepository->findAll(),
'about_texts' => $aboutTextRepository->findOneBy(array(),array('id'=>'DESC')),
'header_images' => $headerImageRepository->findOneByPage('about')
]);
}
/**
* @Route("/activite", name="activite")
*/
public function activite(RealisationRepository $realisationRepository)
{
return $this->render('default/activite.html.twig',[
'activite' => $realisationRepository->findBy(array(),array('id'=>'DESC'))
]);
}
/**
* @Route("/contact", name="contact")
*/
public function contact(HeaderImageRepository $headerImageRepository, EquipeRepository $equipeRepository, TypeRepository $typeRepository, RealisationRepository $realisationRepository,Request $request,MailerInterface $mailer)
{
$form = $this->createForm(ContactType::class,null);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$email = (new Email())
->from('infos@afphy.org')
->to('afphy4@gmail.com')
//->cc('cc@example.com')
//->bcc('bcc@example.com')
//->replyTo('fabien@example.com')
//->priority(Email::PRIORITY_HIGH)
->subject("Afphy website client ". $data["subject"])
->text($data["message"]."\nContactMail :".$data["email"]);
//dump($email);die();
$mailer->send($email);
return $this->redirectToRoute('default');
}
return $this->render('default/contact.html.twig',[
'form' => $form->createView(),
'header_images' => $headerImageRepository->findOneByPage('contact')
]);
}
/**
* @Route("/economic", name="economic")
*/
public function economic(ActivityContentRepository $activityContentRepository, HeaderImageRepository $headerImageRepository, RealisationRepository $economicRepository, TypeRepository $typeRepository)
{
$type = $typeRepository->findByNom('Economic');
return $this->render('default/economic.html.twig',[
'economics' => $economicRepository->findBy(array('type'=>$type),array('id'=>'DESC')),
'activity_contents' => $activityContentRepository->findOneByType('economic'),
'header_images' => $headerImageRepository->findOneByPage('economic')
]);
}
/**
* @Route("/equal", name="equal")
*/
public function equal(ActivityContentRepository $activityContentRepository, HeaderImageRepository $headerImageRepository, RealisationRepository $equalRepository, TypeRepository $typeRepository)
{
$type = $typeRepository->findByNom('Equal');
return $this->render('default/equal.html.twig',[
'equals' => $equalRepository->findBy(array('type'=>$type),array('id'=>'DESC')),
'header_images' => $headerImageRepository->findOneByPage('equal'),
'activity_contents' => $activityContentRepository->findOneByType('equal')
]);
}
/**
* @Route("/event", name="event")
*/
public function event(HeaderImageRepository $headerImageRepository, EventRepository $eventRepository)
{
return $this->render('default/event.html.twig',[
'events' => $eventRepository->findBy(array(),array('id'=>'DESC')),
'header_images' => $headerImageRepository->findOneByPage('event')
]);
}
/**
* @Route("/gallery", name="gallery")
*/
public function gallery(HeaderImageRepository $headerImageRepository, GalleryRepository $gallery)
{
return $this->render('default/gallery.html.twig',[
'galeries' => $gallery->findBy(array(),array('id'=>'DESC')),
'header_images' => $headerImageRepository->findOneByPage('gallery')
]);
}
/**
* @Route("/donation", name="donation")
*/
public function donation(HeaderImageRepository $headerImageRepository)
{
return $this->render('default/donation.html.twig',[
'header_images' => $headerImageRepository->findOneByPage('donation')
]);
}
/**
* @Route("/documents", name="documents")
*/
public function document(DocumentRepository $documentRepository, HeaderImageRepository $headerImageRepository)
{
return $this->render('default/document.html.twig',[
'header_images' => $headerImageRepository->findOneByPage('document'),
'documents' => $documentRepository->findAll(),
]);
}
/**
* @Route("/youth", name="youth")
*/
public function youthAct(ActivityContentRepository $activityContentRepository,HeaderImageRepository $headerImageRepository, RealisationRepository $youthRepository, TypeRepository $typeRepository)
{
$type = $typeRepository->findByNom('Youth');
return $this->render('default/youth.html.twig',[
'youths' => $youthRepository->findBy(array('type'=>$type),array('id'=>'DESC')),
'header_images' => $headerImageRepository->findOneByPage('youth'),
'activity_contents' => $activityContentRepository->findOneByType('youth')
]);
}
/**
* @Route("/event/{id}", name="show_event", methods={"GET"})
*/
public function showEvent(HeaderImageRepository $headerImageRepository, Event $event): Response
{
return $this->render('default/event-show.html.twig', [
'event' => $event,
'header_images' => $headerImageRepository->findOneByPage('event_detail')
]);
}
/**
* @Route("/youth/{id}", name="show_youth", methods={"GET"})
*/
public function showYouth(HeaderImageRepository $headerImageRepository, Realisation $event): Response
{
return $this->render('default/youth-show.html.twig', [
'event' => $event,
'header_images' => $headerImageRepository->findOneByPage('youth_detail')
]);
}
/**
* @Route("/equal/{id}", name="show_equal", methods={"GET"})
*/
public function showEqual(HeaderImageRepository $headerImageRepository, Realisation $event): Response
{
return $this->render('default/equal-show.html.twig', [
'event' => $event,
'header_images' => $headerImageRepository->findOneByPage('equal_detail')
]);
}
/**
* @Route("/economic/{id}", name="show_economic", methods={"GET"})
*/
public function showEconomic(HeaderImageRepository $headerImageRepository, Realisation $event): Response
{
return $this->render('default/economic-show.html.twig', [
'event' => $event,
'header_images' => $headerImageRepository->findOneByPage('economic_detail')
]);
}
/**
* @Route("/realisation/{id}", name="show_realisation", methods={"GET"})
*/
public function showRealisation(HeaderImageRepository $headerImageRepository, Realisation $event): Response
{
return $this->render('default/realisation-show.html.twig', [
'event' => $event,
'header_images' => $headerImageRepository->findOneByPage('realisation_detail')
]);
}
public function aboutheader()
{
return $this->render('default/header_ab.html.twig');
}
public function newsletterblock()
{
return $this->render('default/block-newsletter.html.twig');
}
public function contactheader()
{
return $this->render('default/header_con.html.twig');
}
public function activiteheader()
{
return $this->render('default/header_act.html.twig');
}
public function eventheader()
{
return $this->render('default/header_event.html.twig');
}
public function youthheader()
{
return $this->render('default/header_youth.html.twig');
}
/**
* @Route("/newletter", name="newslatters_new", methods={"GET","POST"})
*/
public function new(Request $request): Response
{
$newslatter = new Newsletter();
if ($request->query->get('email') != null) {
$newslatter->setEmail($request->query->get('email'));
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($newslatter);
$entityManager->flush();
return $this->redirectToRoute('default');
}
}
/**
* @Route("/rech", name="activity_rech")
*/
public function rech( RealisationRepository $realisationRepository , Request $request): Response
{
//$search = new SearchData();
// $form = $this->createForm(SearchForm::class);
// $form->handleRequest($request);
if ($request->query->get('rech') != null){
$realisations = $realisationRepository->createQueryBuilder('r')
->andwhere('r.titre LIKE :name')
->setParameter('name', '%'.$request->query->get('rech').'%');
// Paginate the results of the query
return $this->render('default/resultat.html.twig', [
'equals' => $realisations->getQuery()->getResult(),
]);
}
}
/**
* @Route("/new", name="langage_change", methods={"GET","POST"})
*/
public function langage(Request $request)
{
// dd($request->query->get('langue'));
if ($request->query->get('langue') != null)
$this->session->set('_locale', $request->query->get('langue') );
$url = $request->headers->get('referer');
if (empty($url)) {
$url = $this->container->get('router')->generate('default');
}
return $this->redirect($url);
}
/**
* @Route("/fr", name="langue_fr", methods={"GET","POST"})
*/
public function langageFr(Request $request)
{
// dd($request->query->get('langue'));
$this->session->set('_locale', 'fr' );
$url = $request->headers->get('referer');
if (empty($url)) {
$url = $this->container->get('router')->generate('default');
}
return $this->redirect($url);
}
/**
* @Route("/en", name="langue_en", methods={"GET","POST"})
*/
public function langageEn(Request $request)
{
// dd($request->query->get('langue'));
$this->session->set('_locale', 'en' );
$url = $request->headers->get('referer');
if (empty($url)) {
$url = $this->container->get('router')->generate('default');
}
return $this->redirect($url);
}
/**
* @Route("/ar", name="langue_ar", methods={"GET","POST"})
*/
public function langageAr(Request $request)
{
// dd($request->query->get('langue'));
$this->session->set('_locale', 'ar' );
$url = $request->headers->get('referer');
if (empty($url)) {
$url = $this->container->get('router')->generate('default');
}
return $this->redirect($url);
}
}