<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class BreadcrumbController extends AbstractController
{
/**
* This function will take $_SERVER['REQUEST_URI'] and build a breadcrumb based on the user's current path
*
* @param str $separator Breadcumb separator
* @param str $home Home text
*
* @return string Breadcumb HTML
*/
public function Breadcrumbs(): Response
{
$url = $_SERVER["REQUEST_URI"];
$env = '/dev';
preg_match('/^\/dev|^\/prod/', $url, $matches);
if(isset($matches[0]))
$env = $matches[0];
if(strpos($url, '#') > 0)
$url = substr($url, 0, strpos($url, '#'));
if(strpos($url, '?') > 0)
$url = substr($url, 0, strpos($url, '?'));
$scheme = $_SERVER['REQUEST_SCHEME'];
// $crumbs = explode("/",$_SERVER["REQUEST_URI"]);
$crumbs = explode("/", $url);
// $address = 'https://'.$_SERVER['HTTP_HOST'];
$address = $scheme . '://' . $_SERVER['HTTP_HOST'];
$color = (strtolower($env) == '/dev') ? 'text-yellow-600' : 'text-gray-100';
// $breadcrumbs = ["<a href=".$address."/dev/public/home>"."<span class='text-gray-600'>Accueil</span></a>"];
$breadcrumbs = ["<a href=".$address."$env/public/home>"."<span class='$color'>Accueil</span></a>"];
$build = '';
foreach($crumbs as $crumb){
if(in_array($crumb, [$_SERVER['HTTP_HOST'], ''])) {
continue;
}
$build .= '/'.$crumb;
$crumb = ucfirst(str_replace(array(".php","_"),array(""," "),$crumb) . ' ');
$crumb = str_replace('-', ' ', $crumb);
$breadcrumbs[$crumb] = " / <a href=".$address.$build.">"."<span class='$color'>".$crumb."</span></a>";
}
$removes = ["Public ", "Home ", "Portail ", "Dev ", "Prod "];
foreach($removes as $remove) {
unset($breadcrumbs[$remove]);
}
return $this->render('_partials/breadcrumb.html.twig',[
'env' => $env,
'breadcrumbs' => $breadcrumbs,
]);
}
}