src/Entity/LandingPage.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Traits\UpdatableInterface;
  4. use App\Entity\Traits\UpdatableTrait;
  5. use App\Repository\LandingPageRepository;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\Common\Collections\Collection;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Knp\DoctrineBehaviors\Contract\Entity\TranslatableInterface;
  10. use Knp\DoctrineBehaviors\Model\Translatable\TranslatableTrait;
  11. use Symfony\Component\HttpFoundation\File\File;
  12. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  13. use Symfony\Component\Validator\Constraints as Assert;
  14. /**
  15.  * @Vich\Uploadable
  16.  * @ORM\Entity(repositoryClass=LandingPageRepository::class)
  17.  */
  18. class LandingPage implements UpdatableInterface
  19. {
  20.     use UpdatableTrait;
  21.     public function __toString()
  22.     {
  23.         return "#" $this->id " " $this->getTitle();
  24.     }
  25.     /**
  26.      * @ORM\Id
  27.      * @ORM\GeneratedValue
  28.      * @ORM\Column(type="integer")
  29.      */
  30.     private $id;
  31.     /**
  32.      * @ORM\Column(type="string", length=255, nullable=true)
  33.      */
  34.     private $metaTitle;
  35.     /**
  36.      * @ORM\Column(type="string", length=255, nullable=true)
  37.      */
  38.     private $metaDescription;
  39.     /**
  40.      * @ORM\Column(type="string", length=255, nullable=true)
  41.      */
  42.     private $title;
  43.     /**
  44.      * @Assert\NotBlank()
  45.      * @ORM\Column(type="string", length=255, nullable=true)
  46.      */
  47.     private $slug;
  48.     /**
  49.      * @ORM\Column(type="text", nullable=true)
  50.      */
  51.     private $intro;
  52.     /**
  53.      * @ORM\Column(type="string", length=255, nullable=true)
  54.      */
  55.     private $contentTitle;
  56.     /**
  57.      * @ORM\Column(type="text", nullable=true)
  58.      */
  59.     private $contentIntro;
  60.     /**
  61.      * NOTE: This is not a mapped field of entity metadata, just a simple property.
  62.      * @Vich\UploadableField(mapping="landingPage", fileNameProperty="landingPageFileName", size="landingPageFileSize")
  63.      * @Assert\Expression("this.getLandingPageFile() or this.getLandingPageFileName()", message = "Veuillez sélectionner un fichier")
  64.      * @Assert\File(
  65.      *     maxSize = "1200k"
  66.      * )
  67.      *
  68.      * @var File
  69.      */
  70.     private $landingPageFile;
  71.     /**
  72.      * @ORM\Column(type="string", length=255, nullable=true)
  73.      *
  74.      * @var string
  75.      */
  76.     private $landingPageFileName;
  77.     /**
  78.      * @ORM\Column(type="integer", nullable=true)
  79.      *
  80.      * @var integer
  81.      */
  82.     private $landingPageFileSize;
  83.     /**
  84.      * @ORM\Column(type="datetime", nullable=true)
  85.      *
  86.      * @var \DateTime
  87.      */
  88.     private $landingPageFileUpdatedAt;
  89.     /**
  90.      * @ORM\OneToMany(targetEntity=ProductParagraph::class, mappedBy="landingPage")
  91.      */
  92.     private $productParagraphs;
  93.     /**
  94.      * @ORM\Column(type="string", length=255, nullable=true)
  95.      */
  96.     private $locale;
  97.     /**
  98.      * @ORM\Column(type="string", length=255, nullable=true)
  99.      */
  100.     private $h1;
  101.     public function __construct()
  102.     {
  103.         $this->productParagraphs = new ArrayCollection();
  104.     }
  105.     /**
  106.      * If manually uploading a file (i.e. not using Symfony Form) ensure an instance
  107.      * of 'UploadedFile' is injected into this setter to trigger the  update. If this
  108.      * bundle's configuration parameter 'inject_on_load' is set to 'true' this setter
  109.      * must be able to accept an instance of 'File' as the bundle will inject one here
  110.      * during Doctrine hydration.
  111.      *
  112.      * @param File|\Symfony\Component\HttpFoundation\File\UploadedFile $image
  113.      */
  114.     public function setLandingPageFile(File $image null)
  115.     {
  116.         $this->landingPageFile $image;
  117.         if (null !== $image) {
  118.             // It is required that at least one field changes if you are using doctrine
  119.             // otherwise the event listeners won't be called and the file is lost
  120.             $this->landingPageFileUpdatedAt = new \DateTimeImmutable();
  121.         }
  122.     }
  123.     public function getLandingPageFile()
  124.     {
  125.         return $this->landingPageFile;
  126.     }
  127.     public function getLandingPageFileName(): ?string
  128.     {
  129.         return $this->landingPageFileName;
  130.     }
  131.     public function setLandingPageFileName(?string $landingPageFileName): self
  132.     {
  133.         $this->landingPageFileName $landingPageFileName;
  134.         return $this;
  135.     }
  136.     public function getLandingPageFileSize(): ?int
  137.     {
  138.         return $this->landingPageFileSize;
  139.     }
  140.     public function setLandingPageFileSize(?int $landingPageFileSize): self
  141.     {
  142.         $this->landingPageFileSize $landingPageFileSize;
  143.         return $this;
  144.     }
  145.     public function getLandingPageFileUpdatedAt(): ?\DateTimeInterface
  146.     {
  147.         return $this->landingPageFileUpdatedAt;
  148.     }
  149.     public function setLandingPageFileUpdatedAt(?\DateTimeInterface $landingPageFileUpdatedAt): self
  150.     {
  151.         $this->landingPageFileUpdatedAt $landingPageFileUpdatedAt;
  152.         return $this;
  153.     }
  154.     public function getId(): ?int
  155.     {
  156.         return $this->id;
  157.     }
  158.     /**
  159.      * @return Collection<int, ProductParagraph>
  160.      */
  161.     public function getProductParagraphs(): Collection
  162.     {
  163.         return $this->productParagraphs;
  164.     }
  165.     public function addProductParagraph(ProductParagraph $productParagraph): self
  166.     {
  167.         if (!$this->productParagraphs->contains($productParagraph)) {
  168.             $this->productParagraphs[] = $productParagraph;
  169.             $productParagraph->setLandingPage($this);
  170.         }
  171.         return $this;
  172.     }
  173.     public function removeProductParagraph(ProductParagraph $productParagraph): self
  174.     {
  175.         if ($this->productParagraphs->removeElement($productParagraph)) {
  176.             // set the owning side to null (unless already changed)
  177.             if ($productParagraph->getLandingPage() === $this) {
  178.                 $productParagraph->setLandingPage(null);
  179.             }
  180.         }
  181.         return $this;
  182.     }
  183.     public function getTitle(): ?string
  184.     {
  185.         return $this->title;
  186.     }
  187.     public function setTitle(?string $title): self
  188.     {
  189.         $this->title $title;
  190.         return $this;
  191.     }
  192.     public function getSlug(): ?string
  193.     {
  194.         return $this->slug;
  195.     }
  196.     public function setSlug(?string $slug): self
  197.     {
  198.         $this->slug $slug;
  199.         return $this;
  200.     }
  201.     public function getIntro(): ?string
  202.     {
  203.         return $this->intro;
  204.     }
  205.     public function setIntro(?string $intro): self
  206.     {
  207.         $this->intro $intro;
  208.         return $this;
  209.     }
  210.     public function getContentTitle(): ?string
  211.     {
  212.         return $this->contentTitle;
  213.     }
  214.     public function setContentTitle(?string $contentTitle): self
  215.     {
  216.         $this->contentTitle $contentTitle;
  217.         return $this;
  218.     }
  219.     public function getContentIntro(): ?string
  220.     {
  221.         return $this->contentIntro;
  222.     }
  223.     public function setContentIntro(?string $contentIntro): self
  224.     {
  225.         $this->contentIntro $contentIntro;
  226.         return $this;
  227.     }
  228.     public function getLocale(): ?string
  229.     {
  230.         return $this->locale;
  231.     }
  232.     public function setLocale(?string $locale): self
  233.     {
  234.         $this->locale $locale;
  235.         return $this;
  236.     }
  237.     public function getMetaTitle(): ?string
  238.     {
  239.         return $this->metaTitle;
  240.     }
  241.     public function setMetaTitle(?string $metaTitle): self
  242.     {
  243.         $this->metaTitle $metaTitle;
  244.         return $this;
  245.     }
  246.     public function getMetaDescription(): ?string
  247.     {
  248.         return $this->metaDescription;
  249.     }
  250.     public function setMetaDescription(?string $metaDescription): self
  251.     {
  252.         $this->metaDescription $metaDescription;
  253.         return $this;
  254.     }
  255.     public function getH1(): ?string
  256.     {
  257.         return $this->h1;
  258.     }
  259.     public function setH1(?string $h1): self
  260.     {
  261.         $this->h1 $h1;
  262.         return $this;
  263.     }
  264. }