<?php
namespace App\Service;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Request;
/**
* Description of Breadcrumbs
*
* @author FairyWilbury
*/
class Breadcrumbs {
private $Session;
private $Request;
private $defaultHomePage;
private $pageRoute;
private $groupName;
private $pageName;
private $isGeneric = FALSE;
private $paths = [
'courses'=>[
'index'=> [
'index'=>'homepage',
'categories'=>'categories',
'courseList'=>'course list',
'courseDetail'=>'course detail'
],
'dashboard'=> [
'index'=>'dashboard',
'categories'=>'categories',
'courseList'=>'course list',
'courseDetail'=>'course detail'
],
'options'=>[
'options'=>'options',
'categories'=>'categories',
'courseList'=>'course list',
'courseDetail'=>'course detail',
],
'categories'=>[
'categories'=>'categories',
'courseList'=>'course list',
'courseDetail'=>'course detail'
]
]
];
private $defaultPath = [
'index'=>'homepage'
];
protected function getPath(){
if($this->groupName!==NULL){
$path = $this->paths[$this->groupName][$this->defaultHomePage];
$deleteFlag = FALSE;
foreach($path as $route=>$title){
if($deleteFlag){
unset($path[$route]);
}
if($route === $this->pageRoute){
$deleteFlag=TRUE;
}
}
return $path;
}
else{
$path = $this->defaultPath;
if($this->isGeneric){
$path[$this->pageRoute]=$this->pageName;
}
else{
$path[$this->pageRoute]=$this->pageRoute;
}
return $path;
}
}
public function __construct(RequestStack $RequestStack) {
$this->Session = $RequestStack->getSession();
$this->Request = $RequestStack->getCurrentRequest();
$this->pageRoute = $this->Request->attributes->get('_route');
}
public function setDefaultHomePage($defaultHomePage){
$this->defaultHomePage = $defaultHomePage;
}
public function setGroupName($groupName){
$this->groupName = $groupName;
}
public function setPageName($pageName){
$this->pageName = $pageName;
}
public function setIsGeneric($isGeneric){
$this->isGeneric = TRUE;
}
public function get(){
$this->data = $this->getPath();
return $this->data;
}
}