<?php
namespace App\Controller;
use App\Entity\Centers;
use App\Entity\Horaire;
use App\Entity\Image;
use App\Entity\Videos;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class PagesController extends AbstractController
{
/**
* @Route("/informations-legales", name="mentions_legales")
*/
public function renderMentions(): Response
{
$this->setTemplateParameters(array('title_seo' => 'Mentions légales'));
return $this->renderTemplate('pages/mentionslegales.twig');
}
/**
* @Route("/plan-du-site", name="plan_du_site")
*/
public function renderPlanDuSite(): Response
{
$this->setTemplateParameters(array('title_seo' => 'Plan du site'));
return $this->renderTemplate('pages/plandusite.twig');
}
/**
* @Route("/plan-du-site/page/{page}", name="redirect_page_sitemap")
*/
public function redirectPage($page= null) {
if($page) {
$url = $this->router->generate(
'plan_du_site'
);
}
return $this->redirect($url, 301);
}
/**
* @Route("/clean-images", name="clean_images")
*/
public function cleanImages() {
$images = $this->getDoctrine()->getRepository(Image::class)->findBy(array(
'cover' => 1
));
$em = $this->getDoctrine()->getManager();
foreach ($images as $image) {
$file = $this->dataProvider->getBoUrl()."images/".$image->getId()."-mini.jpg";
if (!@fopen($file, "r")) {
$em->remove($image);
$em->flush();
}
/*if (!@fopen($file, "r")) {
$em->remove($image);
$em->flush();
}*/
}
return new Response("Mission accomplished :)");
}
/**
* @Route("/clean-videos", name="clean_videos")
*/
public function cleanVideos() {
$videos = $this->getDoctrine()->getRepository(Videos::class)->findAllWhereVideoFieldIsNotEmpty();
$em = $this->getDoctrine()->getManager();
foreach ($videos as $video) {
if ($video->getVideo()) {
$file = $this->dataProvider->getBoUrl()."/uploads/video/".$video->getVideo();
$code = get_headers($file);
if (strpos($code[0], '404') != false) {
$video->setVideo("");
$em->persist($video);
$em->flush();
}
/*if (!@fopen($file, "r")) {
$em->remove($image);
$em->flush();
}*/
}
}
return new Response("Mission accomplished :)");
}
/**
* @Route("/robots.txt", name="robots")
*/
public function renderRobotsTxtFileContent(): Response
{
$publicResourcesFolderPath = $this->get('kernel')->getRootDir() . '/../robots.txt';
return new BinaryFileResponse($publicResourcesFolderPath);
}
/**
* @Route("/accept-cookie", name="accept_cookie")
*/
public function acceptCookie(Request $request): Response
{
if ($request->request->get('accept')) {
$this->get('session')->set('accept-cookie', '1');
return new JsonResponse(array("result" => "success"));
}
return new JsonResponse(array("result" => "fail"));
}
/**
* @Route("/verif-cookie", name="verif_cookie")
*/
public function verifCookie(Request $request): Response
{
$response = new Response();
$cookie = $request->cookies->get('aa_cookie');
if ($cookie == "1") {
return new JsonResponse(array("result" => "success"));
} else {
return new JsonResponse(array("result" => "fail"));
}
}
/**
* @Route("/update-horaires", name="update_horaires")
*/
public function updateHoraires(): Response
{
$em = $this->getDoctrine()->getManager();
$row = 0;
if (($handle = fopen("centers.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if ($row > 0) {
$horaire = explode(';', $data[0]);
$id_centre = $horaire[0];
$entite = $horaire[1];
$monday_open = $horaire[2];
$tuesday_open = $horaire[3];
$wednesday_open = $horaire[4];
$thursday_open = $horaire[5];
$friday_open = $horaire[6];
$saturday_open = $horaire[7];
$monday_morning_startTime = ($horaire[8]) ? $horaire[8] : '00:00:00';
$monday_morning_endTime = ($horaire[9]) ? $horaire[9] : '00:00:00';
$monday_afternoon_startTime = ($horaire[10]) ? $horaire[10] : '00:00:00';
$monday_afternoon_endTime = ($horaire[11]) ? $horaire[11] : '00:00:00';
$tuesday_morning_startTime = ($horaire[12]) ? $horaire[12] : '00:00:00';
$tuesday_morning_endTime = ($horaire[13]) ? $horaire[13] : '00:00:00';
$tuesday_afternoon_startTime = ($horaire[14]) ? $horaire[14] : '00:00:00';
$tuesday_afternoon_endTime = ($horaire[15]) ? $horaire[15] : '00:00:00';
$wednesday_morning_startTime = ($horaire[16]) ? $horaire[16] : '00:00:00';
$wednesday_morning_endTime = ($horaire[17]) ? $horaire[17] : '00:00:00';
$wednesday_afternoon_startTime = ($horaire[18]) ? $horaire[18] : '00:00:00';
$wednesday_afternoon_endTime = ($horaire[19]) ? $horaire[19] : '00:00:00';
$thursday_morning_startTime = ($horaire[20]) ? $horaire[20] : '00:00:00';
$thursday_morning_endTime = ($horaire[21]) ? $horaire[21] : '00:00:00';
$thursday_afternoon_startTime = ($horaire[22]) ? $horaire[22] : '00:00:00';
$thursday_afternoon_endTime = ($horaire[23]) ? $horaire[23] : '00:00:00';
$friday_morning_startTime = ($horaire[24]) ? $horaire[24] : '00:00:00';
$friday_morning_endTime = ($horaire[25]) ? $horaire[25] : '00:00:00';
$friday_afternoon_startTime = ($horaire[26]) ? $horaire[26] : '00:00:00';
$friday_afternoon_endTime = ($horaire[27]) ? $horaire[27] : '00:00:00';
$saturday_morning_startTime = ($horaire[28]) ? $horaire[28] : '00:00:00';
$saturday_morning_endTime = ($horaire[29]) ? $horaire[29] : '00:00:00';
$saturday_afternoon_startTime = ($horaire[30]) ? $horaire[30] : '00:00:00';
$saturday_afternoon_endTime = ($horaire[31]) ? $horaire[31] : '00:00:00';
if ($id_centre)
{
$horaire = new Horaire();
$horaire->setEntite('centre_audio');
$horaire->setMondayOpen($monday_open);
$horaire->setTuesdayOpen($tuesday_open);
$horaire->setWednesdayOpen($wednesday_open);
$horaire->setThursdayOpen($thursday_open);
$horaire->setFridayOpen($friday_open);
$horaire->setSaturdayOpen($saturday_open);
$horaire->setMondayMorningStarttime(new \DateTime($monday_morning_startTime));
$horaire->setMondayMorningEndtime(new \DateTime($monday_morning_endTime));
$horaire->setMondayAfternoonStarttime(new \DateTime($monday_afternoon_startTime));
$horaire->setMondayAfternoonEndtime(new \DateTime($monday_afternoon_endTime));
$horaire->setTuesdayMorningStarttime(new \DateTime($tuesday_morning_startTime));
$horaire->setTuesdayMorningEndtime(new \DateTime($tuesday_morning_endTime));
$horaire->setTuesdayAfternoonStarttime(new \DateTime($tuesday_afternoon_startTime));
$horaire->setTuesdayAfternoonEndtime(new \DateTime($tuesday_afternoon_endTime));
$horaire->setWednesdayMorningStarttime(new \DateTime($wednesday_morning_startTime));
$horaire->setWednesdayMorningEndtime(new \DateTime($wednesday_morning_endTime));
$horaire->setWednesdayAfternoonStarttime(new \DateTime($wednesday_afternoon_startTime));
$horaire->setWednesdayAfternoonEndtime(new \DateTime($wednesday_afternoon_endTime));
$horaire->setThursdayMorningStarttime(new \DateTime($thursday_morning_startTime));
$horaire->setThursdayMorningEndtime(new \DateTime($thursday_afternoon_endTime));
$horaire->setThursdayAfternoonStarttime(new \DateTime($thursday_afternoon_startTime));
$horaire->setThursdayAfternoonEndtime(new \DateTime($thursday_afternoon_endTime));
$horaire->setFridayMorningStarttime(new \DateTime($friday_morning_startTime));
$horaire->setFridayMorningEndtime(new \DateTime($friday_morning_endTime));
$horaire->setFridayAfternoonStarttime(new \DateTime($friday_afternoon_startTime));
$horaire->setFridayAfternoonEndtime(new \DateTime($friday_afternoon_endTime));
$horaire->setSaturdayMorningStarttime(new \DateTime($saturday_morning_startTime));
$horaire->setSaturdayMorningEndtime(new \DateTime($saturday_morning_endTime));
$horaire->setSaturdayAfternoonStarttime(new \DateTime($saturday_afternoon_startTime));
$horaire->setSaturdayAfternoonEndtime(new \DateTime($saturday_afternoon_endTime));
$em->persist($horaire);
$em->flush();
$center = $this->getDoctrine()->getRepository(Centers::class)->findOneBy(['id' => $id_centre, 'visible' => 1]);
if ($center) {
$center->setHoraireId($horaire->getId());
$em->flush();
}
}
}
$row++;
}
fclose($handle);
}
return new Response("Mission accomplished :)");
}
}