src\Service\Breadcrumbs.php line 110

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use Symfony\Component\HttpFoundation\RequestStack;
  4. use Symfony\Component\HttpFoundation\Request;
  5. /**
  6.  * Description of Breadcrumbs
  7.  *
  8.  * @author FairyWilbury
  9.  */
  10. class Breadcrumbs {
  11.     
  12.     private $Session;
  13.     private $Request;
  14.     private $defaultHomePage;
  15.     private $pageRoute;
  16.     private $groupName;
  17.     private $pageName;
  18.     private $isGeneric FALSE;
  19.     
  20.     
  21.     private $paths = [
  22.         'courses'=>[
  23.                 'index'=> [
  24.                     'index'=>'homepage',
  25.                     'categories'=>'categories',
  26.                     'courseList'=>'course list',
  27.                     'courseDetail'=>'course detail'
  28.                 ],
  29.                 'dashboard'=> [
  30.                     'index'=>'dashboard',
  31.                     'categories'=>'categories',
  32.                     'courseList'=>'course list',
  33.                     'courseDetail'=>'course detail'
  34.                 ],
  35.                 'options'=>[
  36.                     'options'=>'options',
  37.                     'categories'=>'categories',
  38.                     'courseList'=>'course list',
  39.                     'courseDetail'=>'course detail',
  40.                 ],
  41.                 'categories'=>[
  42.                     'categories'=>'categories',
  43.                     'courseList'=>'course list',
  44.                     'courseDetail'=>'course detail'
  45.                 ]
  46.             ]
  47.     ];
  48.     
  49.     private $defaultPath = [
  50.         'index'=>'homepage'
  51.     ];
  52.     
  53.     protected function getPath(){        
  54.         if($this->groupName!==NULL){
  55.             $path $this->paths[$this->groupName][$this->defaultHomePage];
  56.             $deleteFlag FALSE;
  57.             foreach($path as $route=>$title){
  58.                 if($deleteFlag){
  59.                     unset($path[$route]);
  60.                 }                
  61.                 if($route === $this->pageRoute){
  62.                     $deleteFlag=TRUE;
  63.                 }                
  64.             }
  65.             return $path;
  66.         }
  67.         else{           
  68.             $path $this->defaultPath;
  69.             if($this->isGeneric){
  70.                 $path[$this->pageRoute]=$this->pageName;
  71.             }
  72.             else{
  73.                 $path[$this->pageRoute]=$this->pageRoute;
  74.             }
  75.             
  76.             return $path;
  77.         }
  78.     }
  79.     public function __construct(RequestStack $RequestStack) {        
  80.         $this->Session $RequestStack->getSession();
  81.         $this->Request $RequestStack->getCurrentRequest();
  82.         $this->pageRoute $this->Request->attributes->get('_route');
  83.     }
  84.    
  85.     
  86.     public function setDefaultHomePage($defaultHomePage){
  87.         $this->defaultHomePage $defaultHomePage;                
  88.     }
  89.    
  90.     public function setGroupName($groupName){
  91.         $this->groupName $groupName;        
  92.     }
  93.     
  94.     public function setPageName($pageName){
  95.         $this->pageName $pageName;        
  96.     }
  97.     
  98.     public function setIsGeneric($isGeneric){
  99.         $this->isGeneric TRUE;        
  100.     }
  101.     
  102.     
  103.     public function get(){
  104.         
  105.         $this->data $this->getPath();        
  106.         
  107.         return $this->data;
  108.     }
  109.     
  110. }