lib/boab/cms-bundle/src/Entity/Page.php line 15

Open in your IDE?
  1. <?php
  2. namespace Boab\CmsBundle\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Boab\CmsBundle\Entity\ParentableInterface;
  5. use Boab\CmsBundle\Entity\Content;
  6. use Boab\CmsBundle\Entity\StaffProfileTrait;
  7. use Symfony\Cmf\Component\Routing\RouteReferrersInterface;
  8. /**
  9.  * Page
  10.  * @ORM\Table(name="page")
  11.  * @ORM\Entity(repositoryClass="Boab\CmsBundle\Repository\ContentRepository")
  12.  */
  13. class Page extends Content implements PageInterfaceParentableInterfaceRouteReferrersInterface
  14. {
  15.     use StaffProfileTrait;
  16.     
  17.     /**
  18.      * @var integer
  19.      *
  20.      * @ORM\Column(name="parent_id", type="string", length=40, precision=0, scale=0, nullable=true, unique=false)
  21.      */
  22.     protected $parentId;    
  23.     /**
  24.      * @var \Boab\CmsBundle\Entity\PageRoute
  25.      *
  26.      * @ORM\OneToOne(targetEntity="Boab\CmsBundle\Entity\PageRoute", fetch="EAGER", cascade={"persist","remove"}, orphanRemoval=true)
  27.      * @ORM\JoinColumn(name="route_id", referencedColumnName="id", nullable=true)
  28.      * 
  29.      */
  30.     protected $route;
  31.     /**
  32.      * Set parentId
  33.      *
  34.      * @param integer $parentId
  35.      *
  36.      * @return Page
  37.      */
  38.     public function setParentId($parentId)
  39.     {
  40.         $this->parentId $parentId;
  41.         return $this;
  42.     }
  43.     /**
  44.      * Get parentId
  45.      *
  46.      * @return integer
  47.      */
  48.     public function getParentId()
  49.     {
  50.         if($this->parentId instanceof PageInterface){
  51.             return $this->parentId->getId();
  52.         }
  53.         return $this->parentId;
  54.     }     
  55.     /**
  56.      * Set route
  57.      *
  58.      * @param \Boab\CmsBundle\Entity\PageRoute $route
  59.      *
  60.      * @return Page
  61.      */
  62.     public function setRoute(\Boab\CmsBundle\Entity\PageRoute $route null)
  63.     {
  64.         $this->route $route;
  65.         return $this;
  66.     }
  67.     /**
  68.      * Get route
  69.      *
  70.      * @return \Boab\CmsBundle\Entity\PageRoute
  71.      */
  72.     public function getRoute()
  73.     {
  74.         return $this->route;
  75.     }
  76.     public function addRoute($route)
  77.     {
  78.     }
  79.     public function removeRoute($route)
  80.     {
  81.     }
  82.     public function getRoutes():array
  83.     {
  84.         return [$this->getRoute()];
  85.     }
  86.     public function hasParent()   
  87.     {
  88.         return $this->parentId == null;
  89.     }
  90.     public function hasRoute()
  91.     {
  92.         return $this->route == null false true;
  93.     }    
  94.     public function getRouteName()
  95.     {
  96.         if(!$this->hasRoute()){
  97.             return;
  98.         }
  99.         return $this->getRoute()->getRouteName();
  100.     }    
  101. }