src/AppBundle/Entity/JerarquiaNodo.php line 14

  1. <?php
  2. namespace AppBundle\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Validator\Constraints as Assert;
  5. /**
  6.  * Nodo de jerarquia
  7.  *
  8.  * @ORM\Table(name="jerarquia_nodo")
  9.  * @ORM\Entity(repositoryClass="AppBundle\Repository\JerarquiaNodoRepository")
  10.  */
  11. class JerarquiaNodo
  12. {
  13.     const LIMITE_MIGAS_DE_PAN 6;
  14.     /**
  15.      * @var int
  16.      *
  17.      * @ORM\Column(name="id", type="string", length=15, unique=true)
  18.      * @ORM\Id
  19.      * @Assert\NotBlank
  20.      */
  21.     private $id;
  22.     /**
  23.      * @var string
  24.      *
  25.      * @ORM\Column(name="texto", type="string", length=255, unique=true)
  26.      * @Assert\NotBlank
  27.      */
  28.     private $texto;
  29.     /**
  30.      * @var string
  31.      *
  32.      * @ORM\Column(name="orden", type="integer")
  33.      */
  34.     private $orden;
  35.     /**
  36.      * @var string
  37.      *
  38.      * @ORM\Column(name="imagen", type="string")
  39.      * @Assert\NotBlank
  40.      */
  41.     private $imagen;
  42.     /**
  43.      * @var string
  44.      *
  45.      * @ORM\Column(name="tipo", type="string")
  46.      * @Assert\NotBlank
  47.      */
  48.     private $tipo;
  49.     /**
  50.      * @var string
  51.      *
  52.      * @ORM\Column(name="nodo_superior_id", type="string", length=15 )
  53.      */
  54.     private $nodo_superior_id;
  55.     /**
  56.      * @var JerarquiaNodo
  57.      *
  58.      * @ORM\ManyToOne(targetEntity="JerarquiaNodo", inversedBy="subordinados", fetch="EAGER")
  59.      * @ORM\JoinColumn(name="nodo_superior_id", referencedColumnName="id")
  60.      */
  61.     private $superior;
  62.     /**
  63.      * @ORM\OneToMany(targetEntity="JerarquiaNodo", mappedBy="superior", fetch="LAZY")
  64.      * @ORM\OrderBy({"orden" = "ASC"})
  65.      */
  66.     private $subordinados;
  67.     /**
  68.      * @var string
  69.      *
  70.      * @ORM\Column(name="enlace", type="string")
  71.      * @Assert\NotBlank
  72.      */
  73.     private $enlace;
  74.     /**
  75.      * @var string
  76.      *
  77.      * @ORM\Column(name="folleto", type="string", length=255)
  78.      */
  79.     private $folleto;
  80.     /**
  81.      * @var string
  82.      *
  83.      * @ORM\Column(name="color", type="string", length=7)
  84.      */
  85.     private $color;
  86.     /**
  87.      * @var string
  88.      *
  89.      * @ORM\Column(name="color_texto", type="string", length=7)
  90.      */
  91.     private $colorTexto;
  92.     /**
  93.      * Set id
  94.      *
  95.      * @return int
  96.      */
  97.     public function setId($id)
  98.     {
  99.         $this->id $id;
  100.         
  101.         return $this;
  102.     }
  103.     /**
  104.      * Get id
  105.      *
  106.      * @return int
  107.      */
  108.     public function getId()
  109.     {
  110.         return $this->id;
  111.     }
  112.     /**
  113.      * Set texto
  114.      *
  115.      * @param string $texto
  116.      *
  117.      * @return glosario
  118.      */
  119.     public function setTexto($texto)
  120.     {
  121.         $this->texto $texto;
  122.         return $this;
  123.     }
  124.     /**
  125.      * Get texto
  126.      *
  127.      * @return string
  128.      */
  129.     public function getTexto()
  130.     {
  131.         return $this->texto;
  132.     }
  133.     /**
  134.      * Set definicion
  135.      *
  136.      * @param string $definicion
  137.      *
  138.      * @return JerarquiaNodo
  139.      */
  140.     public function setDefinicion($definicion)
  141.     {
  142.         $this->definicion $definicion;
  143.         return $this;
  144.     }
  145.     /**
  146.      * Get orden
  147.      *
  148.      * @return integer
  149.      */
  150.     public function getOrden()
  151.     {
  152.         return $this->orden;
  153.     }
  154.     /**
  155.      * Set the value of orden
  156.      *
  157.      * @param  string  $orden
  158.      *
  159.      * @return  self
  160.      */ 
  161.     public function setOrden(string $orden)
  162.     {
  163.         $this->orden $orden;
  164.         return $this;
  165.     }
  166.     /**
  167.      * Set imagen
  168.      *
  169.      * @return JerarquiaNodo
  170.      */
  171.     public function setImagen($imagen)
  172.     {
  173.         $this->imagen $imagen;
  174.         return $this;
  175.     }
  176.     /**
  177.      * Get imagen
  178.      *
  179.      * @return string
  180.      */
  181.     public function getImagen()
  182.     {
  183.         return $this->imagen;
  184.     }
  185.     /**
  186.      * Set tipo
  187.      *
  188.      * @return JerarquiaNodo
  189.      */
  190.     public function setTipo($tipo)
  191.     {
  192.         $this->tipo $tipo;
  193.         return $this;
  194.     }
  195.     /**
  196.      * Get tipo
  197.      *
  198.      * @return string
  199.      */
  200.     public function getTipo()
  201.     {
  202.         return $this->tipo;
  203.     }
  204.     /**
  205.      * Set superior
  206.      *
  207.      * @return string
  208.      */
  209.     public function setSuperior($nodo null)
  210.     {
  211.         $this->superior $nodo;
  212.         return $this;
  213.     }
  214.     /**
  215.      * Get superior
  216.      *
  217.      * @return string
  218.      */
  219.     public function getSuperior()
  220.     {
  221.         return $this->superior;
  222.     }
  223.     /**
  224.      * Get subordinados
  225.      *
  226.      * @return string
  227.      */
  228.     public function getSubordinados()
  229.     {
  230.         return $this->subordinados;
  231.     }
  232.     public function getMigaDePan()
  233.     {
  234.         return [
  235.             'id' => $this->id,
  236.             'texto' => $this->texto,
  237.             'enlace' => $this->getEnlace(),
  238.         ];
  239.     }
  240.     public function getMigasDePan($limite self::LIMITE_MIGAS_DE_PAN)
  241.     {
  242.         if (--$limite && $this->superior) {
  243.             return array_merge(
  244.                 $this->superior->getMigasDePan($limite),
  245.                 [$this->getMigaDePan()]
  246.             );
  247.         } else {
  248.             return [$this->getMigaDePan()];
  249.         }
  250.     }
  251.     /**
  252.      * Get the value of enlace
  253.      *
  254.      * @return  string
  255.      */ 
  256.     public function getEnlace()
  257.     {
  258.         return trim(str_replace('/'''$this->enlace)) ? trim($this->enlace) . "&nodo=" $this->id "";
  259.     }
  260.     /**
  261.      * Set the value of enlace
  262.      *
  263.      * @param  string  $enlace
  264.      *
  265.      * @return  self
  266.      */ 
  267.     public function setEnlace(string $enlace)
  268.     {
  269.         $this->enlace $enlace;
  270.         return $this;
  271.     }
  272.     /**
  273.      * Get the value of folleto
  274.      *
  275.      * @return  string
  276.      */ 
  277.     public function getFolleto()
  278.     {
  279.         return $this->folleto;
  280.     }
  281.     /**
  282.      * Set the value of folleto
  283.      *
  284.      * @param  string  $folleto
  285.      *
  286.      * @return  self
  287.      */ 
  288.     public function setFolleto(string $folleto)
  289.     {
  290.         $this->folleto $folleto;
  291.         return $this;
  292.     }
  293.     /**
  294.      * Get the value of colorTexto
  295.      *
  296.      * @return  string
  297.      */ 
  298.     public function getColorTexto()
  299.     {
  300.         return $this->colorTexto;
  301.     }
  302.     /**
  303.      * Set the value of colorTexto
  304.      *
  305.      * @param  string  $colorTexto
  306.      *
  307.      * @return  self
  308.      */ 
  309.     public function setColorTexto(string $colorTexto)
  310.     {
  311.         $this->colorTexto $colorTexto;
  312.         return $this;
  313.     }
  314.     /**
  315.      * Get the value of color
  316.      *
  317.      * @return  string
  318.      */ 
  319.     public function getColor()
  320.     {
  321.         return $this->color;
  322.     }
  323.     /**
  324.      * Set the value of color
  325.      *
  326.      * @param  string  $color
  327.      *
  328.      * @return  self
  329.      */ 
  330.     public function setColor(string $color)
  331.     {
  332.         $this->color $color;
  333.         return $this;
  334.     }
  335.     /**
  336.      * Get the value of nodo_superior_id
  337.      *
  338.      * @return  string
  339.      */ 
  340.     public function getNodoSuperiorId()
  341.     {
  342.         return $this->nodo_superior_id;
  343.     }
  344.     /**
  345.      * Set the value of nodo_superior_id
  346.      *
  347.      * @param  string  $nodo_superior_id
  348.      *
  349.      * @return  self
  350.      */ 
  351.     public function setNodoSuperiorId(string $nodo_superior_id null)
  352.     {
  353.         $this->nodo_superior_id $nodo_superior_id;
  354.         return $this;
  355.     }
  356. }