<?php
namespace App\Controller;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class ErrorController extends AbstractController
{
private $doctrine;
public function __construct(
ManagerRegistry $doctrine
)
{
$this->doctrine = $doctrine;
}
public function pageNotFound(Request $request)
{
//dd($request);
$uri = $_SERVER['REQUEST_URI'];
if (isset ($_GET['fbclid'])) {
$fb=$_GET['fbclid'];
$uri = str_replace("?", "", $uri);
$fb = "fbclid=".$fb;
$uri = str_replace($fb, "", $uri);
}
$uri = str_replace("/stage/public", "", $uri);
$uri = substr($uri,1);
$data = explode("/", $uri);
$media = null;
$program = null;
$post = null;
$home = 0;
$media = $this->doctrine->getRepository('App\Entity\Media\Media')
->findOneBy([
"url" => $data[0],
"isDeleted" => false
]);
if (count($data)>1 and $media) {
if (in_array("p", $data)) {
if ($data[1] != 'p') {
$program = $this->doctrine->getRepository('App\Entity\Program\Program')
->findOneBy([
"url" => $data[1],
"media"=>$media->getId(),
"isDeleted" => false
]);
if ($data[2] == 'p' and $program) {
$post = $this->doctrine->getRepository('App\Entity\Post\Post')
->findOneBy([
"id" => $data[3],
"media"=>$media->getId(),
"isDeleted" => false
]);
}
} else {
$post = $this->doctrine->getRepository('App\Entity\Post\Post')
->findOneBy([
"id" => $data[2], "media"=>$media->getId(),
"isDeleted" => false
]);
}
} else {
if ($data[1]) {
$program = $this->doctrine->getRepository('App\Entity\Program\Program')
->findOneBy([
"url" => $data[1],
"media"=>$media->getId(),
"isDeleted" => false
]);
}
}
}else{
if ($data[0]==null) {
$home = 1;
}
}
if ($home == 1) {
return $this->redirectToRoute('app_login');
} else {
return $this->render('error/page-not-found.html.twig', [
"media" => $media,
"program" => $program,
"post" => $post,
"home" => $home,
]);
}
}
}