src/Entity/Pages/ClubsPage.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Pages;
  3. use App\Entity\ClubsCategory;
  4. use App\Entity\ClubsLogoImage;
  5. use App\Entity\Traits\MenuTrait;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Kunstmaan\ArticleBundle\Entity\AbstractArticlePage;
  9. use Kunstmaan\NodeSearchBundle\Helper\SearchTypeInterface;
  10. use Kunstmaan\PagePartBundle\Helper\HasPageTemplateInterface;
  11. use Kunstmaan\NodeBundle\Entity\HideSidebarInNodeEditInterface;
  12. use App\Form\Pages\ClubsPageAdminType;
  13. use Symfony\Component\Form\AbstractType;
  14. /**
  15.  * @ORM\Entity(repositoryClass="App\Repository\ClubsPageRepository")
  16.  * @ORM\Table(name="gcs_clubs_pages")
  17.  * @ORM\HasLifecycleCallbacks
  18.  * @ORM\AssociationOverrides(
  19.  *      @ORM\AssociationOverride(name="headerImage",
  20.  *          joinTable=@ORM\JoinTable(name="gcs_pages_header_images_clubs_page"),
  21.  *          joinColumns=@ORM\JoinColumn(
  22.  *              name="clubs_page_id", referencedColumnName="id"
  23.  *          )
  24.  *      ),
  25.  *      @ORM\AssociationOverride(name="listImage",
  26.  *          joinTable=@ORM\JoinTable(name="gcs_pages_list_images_clubs_page"),
  27.  *          joinColumns=@ORM\JoinColumn(
  28.  *              name="clubs_page_id", referencedColumnName="id"
  29.  *          )
  30.  *      )
  31.  * )
  32.  */
  33. class ClubsPage extends AbstractArticlePage implements HasPageTemplateInterfaceSearchTypeInterfaceHideSidebarInNodeEditInterface
  34. {
  35.     use MenuTrait;
  36.      /**
  37.      * @var ArrayCollection
  38.      *
  39.      * @ORM\ManyToMany(targetEntity="App\Entity\ClubsCategory", cascade={"persist"}, inversedBy="clubs")
  40.      */
  41.     protected $categories;
  42.     /**
  43.      * @ORM\ManyToMany(targetEntity="App\Entity\ClubsLogoImage", cascade={"persist"})
  44.      * @ORM\JoinTable(name="gcs_clubs_logo_logos_pages_clubs",
  45.      *     joinColumns={@ORM\JoinColumn(name="clubs_page_id", referencedColumnName="id")},
  46.      *     inverseJoinColumns={@ORM\JoinColumn(name="clubs_logo_logo_id", referencedColumnName="id")}
  47.      * )
  48.      */
  49.     private $logo;
  50.     /**
  51.      * @ORM\Column(type="string", length=255, nullable=true)
  52.      */
  53.     private $name;
  54.     public function __construct()
  55.     {
  56.         $this->categories = new ArrayCollection();
  57.         $this->logo = new ArrayCollection();
  58.         $this->headerImage = new ArrayCollection();
  59.         $this->listImage = new ArrayCollection();
  60.     }
  61.     /**
  62.      * @return
  63.      */
  64.     public function getLogo()
  65.     {
  66.         return $this->logo;
  67.     }
  68.     public function addLogo(ClubsLogoImage $logo): self
  69.     {
  70.         if (!$this->logo->contains($logo)) {
  71.             $this->logo[] = $logo;
  72.         }
  73.         return $this;
  74.     }
  75.     public function removeLogo(ClubsLogoImage $logo): self
  76.     {
  77.         if ($this->logo->contains($logo)) {
  78.             $this->logo->removeElement($logo);
  79.         }
  80.         return $this;
  81.     }
  82.         /**
  83.      * @param \App\Entity\ClubsCategory $category
  84.      * @return $this
  85.      */
  86.     public function setCategories($category)
  87.     {
  88.         $this->categories $category;
  89.         return $this;
  90.     }
  91.     /**
  92.      * @return ArrayCollection
  93.      */
  94.     public function getCategories()
  95.     {
  96.         return $this->categories;
  97.     }
  98.     public function removeCategories(ClubsCategory $category): self
  99.     {
  100.         if ($this->categories->contains($category)) {
  101.             $this->categories->removeElement($category);
  102.         }
  103.         return $this;
  104.     }
  105.     /**
  106.      * Returns the default backend form type for this page
  107.      *
  108.      * @return string
  109.      */
  110.     public function getDefaultAdminType()
  111.     {
  112.         return ClubsPageAdminType::class;
  113.     }
  114.     /**
  115.      * {@inheritdoc}
  116.      */
  117.     public function getSearchType()
  118.     {
  119.         return 'Clubs';
  120.     }
  121.     /**
  122.      * @return array
  123.      */
  124.     public function getPagePartAdminConfigurations()
  125.     {
  126.         return array('clubsmain');
  127.     }
  128.     /**
  129.      * {@inheritdoc}
  130.      */
  131.     public function getPageTemplates()
  132.     {
  133.         return array('clubspage');
  134.     }
  135.     public function getDefaultView()
  136.     {
  137.         return 'Pages/ClubsPage/view.html.twig';
  138.     }
  139.     /**
  140.      * Before persisting this entity, check the date.
  141.      * When no date is present, fill in current date and time.
  142.      *
  143.      * @ORM\PrePersist
  144.      */
  145.     public function _prePersist()
  146.     {
  147.         // Set date to now when none is set
  148.         if ($this->date == null) {
  149.             $this->setDate(new \DateTime());
  150.         }
  151.     }
  152.     public function getName(): ?string
  153.     {
  154.         return $this->name;
  155.     }
  156.     public function setName(?string $name): self
  157.     {
  158.         $this->name $name;
  159.         return $this;
  160.     }
  161. }