lib/boab/cms-bundle/src/Entity/Route.php line 22

Open in your IDE?
  1. <?php
  2. namespace Boab\CmsBundle\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Cmf\Bundle\RoutingBundle\Model\Route as BaseRoute;
  5. /**
  6.  * @ORM\Entity (repositoryClass="Boab\CmsBundle\Repository\RouteRepository")
  7.  * @ORM\Table(name="route")
  8.  * @ORM\InheritanceType("SINGLE_TABLE")
  9.  * @ORM\DiscriminatorColumn(name="route_type", type="string")
  10.  * @ORM\DiscriminatorMap({
  11.     "list"="ListRoute",  
  12.     "post"="PostRoute",    
  13.     "page"="PageRoute",
  14.     "taxon"="TermRoute",     
  15.     "url"="UrlRoute"     
  16.  })
  17.  */
  18. abstract class Route extends BaseRoute implements RouteInterface
  19. {
  20.     const VISIBILITY_OFF 0;
  21.     const VISIBILITY_ON 1;
  22.     const ROUTE_PREFIX 'route_';
  23.     
  24.     /**
  25.      * @var integer
  26.      *
  27.      * @ORM\Column(name="id", type="integer", precision=0, scale=0, nullable=false, unique=false)
  28.      * @ORM\Id
  29.      * @ORM\GeneratedValue(strategy="IDENTITY")
  30.      */
  31.     protected $id;
  32.     /**
  33.      * @var string
  34.      *
  35.      * @ORM\Column(name="title", type="string", length=255, precision=0, scale=0, nullable=false, unique=false)
  36.      */
  37.     protected $title;
  38.     /**
  39.      * @var string
  40.      *
  41.      * @ORM\Column(name="slug", type="string", length=255, precision=0, scale=0, nullable=false, unique=false)
  42.      */
  43.     protected $slug;
  44.     /**
  45.      * @var string
  46.      *
  47.      * @ORM\Column(name="path", type="string", length=255, precision=0, scale=0, nullable=false, unique=false)
  48.      */
  49.    protected $path;
  50.     /**
  51.      * @var integer
  52.      *
  53.      * @ORM\Column(name="position", type="integer", precision=0, scale=0, nullable=true, unique=false)
  54.      */
  55.     protected $position;
  56.     /**
  57.      * @var \DateTime
  58.      *
  59.      * @ORM\Column(name="date_created", type="datetime", precision=0, scale=0, nullable=false, unique=false)
  60.      */
  61.     protected $dateCreated;
  62.     /**
  63.      * @var integer
  64.      *
  65.      * @ORM\Column(name="visibility", type="boolean")
  66.      */
  67.     protected $visibility;
  68.     /**
  69.      * @var integer
  70.      *
  71.      * @ORM\Column(name="parent_id", type="integer", precision=0, scale=0, nullable=true, unique=false)
  72.      */
  73.     protected $parentId;
  74.     /**
  75.      * @var string
  76.      *
  77.      * @ORM\Column(name="route_name", type="string", length=255, precision=0, scale=0, nullable=true, unique=true)
  78.      */
  79.     protected $routeName;
  80.     /**
  81.      * @var string
  82.      *
  83.      * @ORM\Column(name="template", type="string", length=255, precision=0, scale=0, nullable=true, unique=false)
  84.      */
  85.     protected $template
  86.     /**
  87.      * @var integer
  88.      *
  89.      * @ORM\Column(name="layout_type", type="integer", length=2, precision=0, scale=0, nullable=true, unique=false)
  90.      */
  91.     protected $layoutType
  92.     /**
  93.      * use for parent child heirracy
  94.      */
  95.     protected $children = []      ;
  96.     /**
  97.      * Get id
  98.      *
  99.      * @return integer 
  100.      */
  101.     public function getId()
  102.     {
  103.         return $this->id;
  104.     }
  105.     /**
  106.      * Set title
  107.      *
  108.      * @param string $title
  109.      * @return Menu
  110.      */
  111.     public function setTitle($title)
  112.     {
  113.         $this->title $title;
  114.         return $this;
  115.     }
  116.     /**
  117.      * Get title
  118.      *
  119.      * @return string 
  120.      */
  121.     public function getTitle(): ?string
  122.     {
  123.         return $this->title;
  124.     }
  125.     /**
  126.      * Set path
  127.      *
  128.      * @param string $path
  129.      * @return Menu
  130.      */
  131.     public function setPath($path)
  132.     {
  133.         $this->path $path;  
  134.         return $this;
  135.     }
  136.     /**
  137.      * Get path
  138.      *
  139.      * @return string 
  140.      */
  141.     public function getPath()
  142.     {
  143.         return $this->path;
  144.     }
  145.     /**
  146.      * Set slug
  147.      *
  148.      * @param string $slug
  149.      * @return Menu
  150.      */
  151.     public function setSlug($slug)
  152.     {
  153.         $this->slug $slug;
  154.         return $this;
  155.     }
  156.     /**
  157.      * Get slug
  158.      *
  159.      * @return string 
  160.      */
  161.     public function getSlug()
  162.     {
  163.         return $this->slug;
  164.     }
  165.     /**
  166.      * Set position
  167.      *
  168.      * @param integer $position
  169.      * @return Menu
  170.      */
  171.     public function setPosition($position)
  172.     {
  173.         $this->position $position;
  174.         return $this;
  175.     }
  176.     /**
  177.      * Get position
  178.      *
  179.      * @return integer 
  180.      */
  181.     public function getPosition()
  182.     {
  183.         return $this->position;
  184.     }
  185.     /**
  186.      * Set dateCreated
  187.      *
  188.      * @param \DateTime $dateCreated
  189.      * @return Menu
  190.      */
  191.     public function setDateCreated($dateCreated)
  192.     {
  193.         $this->dateCreated $dateCreated;
  194.         return $this;
  195.     }
  196.     /**
  197.      * Get dateCreated
  198.      *
  199.      * @return \DateTime 
  200.      */
  201.     public function getDateCreated()
  202.     {
  203.         return $this->dateCreated;
  204.     }
  205.     /**
  206.      * Set visibility
  207.      *
  208.      * @param integer $visibility
  209.      * @return Menu
  210.      */
  211.     public function setVisibility($visibility)
  212.     {
  213.         $this->visibility $visibility;
  214.         return $this;
  215.     }
  216.     /**
  217.      * Get visibility
  218.      *
  219.      * @return integer 
  220.      */
  221.     public function getVisibility()
  222.     {
  223.         return $this->visibility;
  224.     }
  225.     public function isVisible()
  226.     {
  227.         return (bool)$this->getVisibility();
  228.     }
  229.     /**
  230.      * Set routeName
  231.      *
  232.      * @param string $routeName
  233.      * @return Menu
  234.      */
  235.     public function setRouteName($routeName)
  236.     {
  237.         $this->routeName $routeName;
  238.         return $this;
  239.     }
  240.     /**
  241.      * Get routeName
  242.      *
  243.      * @return string 
  244.      */
  245.     public function getRouteName():string
  246.     {
  247.         return (!$this->routeName) ? sprintf('%s%s',self::ROUTE_PREFIX$this->getId()) : $this->routeName;
  248.     }   
  249.     /**
  250.      * Set template
  251.      *
  252.      * @param string $template
  253.      *
  254.      * @return UrlRoute
  255.      */
  256.     public function setTemplate($template)
  257.     {
  258.         $this->template $template;
  259.         return $this;
  260.     }
  261.     /**
  262.      * Get template
  263.      *
  264.      * @return string
  265.      */
  266.     public function getTemplate()
  267.     {
  268.         return $this->template;
  269.     }  
  270.     /**
  271.      * Set parentId
  272.      *
  273.      * @param integer $parentId
  274.      *
  275.      * @return Route
  276.      */
  277.     public function setParentId($parent)
  278.     {
  279.         $this->parentId is_object($parent) ? $parent->getId() : $parent;
  280.         return $this;
  281.     }
  282.     /**
  283.      * Get parentId
  284.      *
  285.      * @return integer
  286.      */
  287.     public function getParentId()
  288.     {
  289.         return $this->parentId;
  290.     }
  291.     /**
  292.      * Set layoutType
  293.      *
  294.      * @param integer $layoutType
  295.      *
  296.      * @return Route
  297.      */
  298.     public function setLayoutType($layoutType)
  299.     {
  300.         $this->layoutType $layoutType;
  301.         return $this;
  302.     }
  303.     /**
  304.      * Get layoutType
  305.      *
  306.      * @return integer
  307.      */
  308.     public function getLayoutType():string
  309.     {
  310.         return $this->layoutType;
  311.     }
  312.     public function setDefaults( array $defauts=[])
  313.     {
  314.         $defauts = [
  315.             '_title' => $this->getTitle(),
  316.             '_template'=> $this->getTemplate(),
  317.             '_controller'=>$this->getController(),
  318.         ];
  319.         parent::setDefaults($defauts);
  320.     }
  321.     public function getRouteKey():?string
  322.     {
  323.         return $this->getRouteName();
  324.     }
  325.     public function hasParent()
  326.     {
  327.         return $this->parentId == null;
  328.     }
  329.     public function isParent()
  330.     {
  331.         return == $this->getParentId();
  332.     }
  333.     public function hasParentSelected()
  334.     {
  335.         return (bool)$this->getParentId();
  336.     }   
  337.     public function setChildren($children)
  338.     {
  339.         $this->children $children;
  340.     }
  341.     public function getChildren()
  342.     {
  343.         return $this->children;
  344.     }
  345. }