<?php
namespace App\Entity\Content;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Knp\DoctrineBehaviors\Model\Translatable\TranslationTrait;
use Knp\DoctrineBehaviors\Contract\Entity\TranslationInterface;
use Knp\DoctrineBehaviors\Model as ORMBehaviors;
use App\Interfaces\Content\SluggableInterface;
use App\Entity\Media\MediaInterface;
use App\Entity\Media\MediaTrait;
use App\Entity\SEO\SeoInterface;
use App\Entity\SEO\SeoTrait;
/**
* Page
*
* @ORM\Table(name="page_translation")
* @ORM\Entity(repositoryClass="App\Repository\Content\PageTranslationRepository")
* @ORM\Cache(usage="READ_ONLY", region="public")
*/
class PageTranslation implements MediaInterface, SluggableInterface, SeoInterface, TranslationInterface
{
use TranslationTrait;
use ORMBehaviors\Sluggable\SluggableTrait;
use SeoTrait {
SeoTrait::__construct as __SEO_construct;
}
use MediaTrait {
MediaTrait::__construct as __M_construct;
}
/**
* @var int
*
* @ORM\Id
* @ORM\Column(name="id", type="integer", nullable=false, options={"unsigned"=true})
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
private $title;
/**
* @var string
*
* @ORM\Column(name="slug", type="string", length=255, nullable=true)
*/
protected $slug;
/**
* @var string
*
* @ORM\Column(name="content", type="text", nullable=true)
*/
private $content;
/**
* @var string
*
* @ORM\Column(name="page_top", type="text", nullable=true)
*/
private $pageTop;
/**
* @var string
*
* @ORM\Column(name="page_bottom", type="text", nullable=true)
*/
private $pageBottom;
/**
* @var string
*
* @ORM\Column(name="locale", type="string", nullable=false)
*/
protected $locale;
/**
* @var Collection
*
* @ORM\ManyToMany(targetEntity="App\Entity\SEO\Seo", cascade={"all"})
* @ORM\JoinTable(
* name="page_translation_seo",
* joinColumns={@ORM\JoinColumn(name="page_translation_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="seo", referencedColumnName="id")}
* )
*/
protected $seo;
// /**
// * @var Collection
// *
// * @ORM\ManyToMany(targetEntity="App\Entity\Media\Media")
// * @ORM\JoinTable(name="page_translation_media",
// * joinColumns={@ORM\JoinColumn(name="page_translation_id", referencedColumnName="id")},
// * inverseJoinColumns={@ORM\JoinColumn(name="media_id", referencedColumnName="id")}
// * )
// */
// protected $media;
/**
* Constructor
*/
public function __construct()
{
$this->__M_construct();
$this->__SEO_construct();
$this->seo = new ArrayCollection();
}
public function getId(): int
{
return $this->id;
}
/**
* @return array
*/
public function getSluggableFields()
{
return [ 'title' ];
}
/**
* Set title
*
* @param string $title
*
* @return PageTranslation
*/
public function setTitle($title)
{
$this->title = $title;
return $this;
}
/**
* Get title
*
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* Set content
*
* @param string $content
*
* @return PageTranslation
*/
public function setContent($content)
{
$this->content = $content;
return $this;
}
/**
* Get content
*
* @return string
*/
public function getContent()
{
return $this->content;
}
/**
* Set pageTop
*
* @param string $pageTop
*
* @return PageTranslation
*/
public function setPageTop($pageTop)
{
$this->pageTop = $pageTop;
return $this;
}
/**
* Get pageTop
*
* @return string
*/
public function getPageTop()
{
return $this->pageTop;
}
/**
* Set pageBottom
*
* @param string $pageBottom
*
* @return PageTranslation
*/
public function setPageBottom($pageBottom)
{
$this->pageBottom = $pageBottom;
return $this;
}
/**
* Get pageBottom
*
* @return string
*/
public function getPageBottom()
{
return $this->pageBottom;
}
}