sterntours/trunk/src/AppBundle/Entity/Page.php
uli 077163634e * Import von Jugendreisen (www.jugendreisen-spezialist.de)
* CMS-template "sunstar" als Destinationsübersicht für importierte Jugendreisen
* Weitere "rel=nofollow target=_blank
* target="_blank" beachten, wenn Boxen per JS click-Event verlinkt werden
* https://schema.org statt http
* meta itemprop=url auf https://www.sterntours.de geändert
* Startseiten-Content geändert
* "Rote" (nicht verfügbare) Termine auf Suchergebnisseite und Reiseprogrammseiten ausblenden
* Behoben: Fehlermeldung, wenn Start- und Enddatum im Suchfilter nicht eingetragen werden

git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3320 f459cee4-fb09-11de-96c3-f9c5f16c3c76
2017-03-24 15:37:36 +00:00

1246 lines
21 KiB
PHP

<?php
namespace AppBundle\Entity;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
/**
* Page
*
* @ORM\Table(name="page", uniqueConstraints={@ORM\UniqueConstraint(name="keyword", columns={"keyword"})}, indexes={@ORM\Index(name="FK_page_travel_country", columns={"country_id"})})
* @ORM\Entity(repositoryClass="AppBundle\Entity\PageRepository")
* @Gedmo\Tree(type="nested")
*/
class Page
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @Gedmo\TreeLeft
* @ORM\Column(type="integer", nullable=true)
*/
protected $lft;
/**
* @Gedmo\TreeLevel()
* @ORM\Column(type="integer", nullable=true)
*/
protected $lvl;
/**
* @Gedmo\TreeRight
* @ORM\Column(type="integer", nullable=true)
*/
protected $rgt;
/**
* @Gedmo\TreeRoot
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Page")
* @ORM\JoinColumn(name="tree_root", referencedColumnName="id", onDelete="CASCADE")
*/
private $root;
/**
* @Gedmo\TreeParent
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Page", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $parent;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Page", mappedBy="parent")
* @ORM\OrderBy({"lft" = "ASC"})
*/
private $children;
/**
* @var integer
*
* @ORM\Column(name="owner", type="integer", nullable=true)
*/
private $owner = '0';
/**
* @var integer
*
* @ORM\Column(name="owner_second", type="integer", nullable=false)
*/
private $ownerSecond;
/**
* @var integer
*
* @ORM\Column(name="catalog_id", type="integer", nullable=true)
*/
private $catalogId;
/**
* @var integer
*
* @ORM\Column(name="catalog_index", type="integer", nullable=true)
*/
private $catalogIndex = '0';
/**
* @var string
*
* @ORM\Column(name="slug", type="string", length=255, nullable=true)
*/
private $slug;
/**
* @var TravelProgram
*
* @ORM\OneToOne(targetEntity="AppBundle\Entity\TravelProgram", inversedBy="page")
* @ORM\JoinColumn(name="travel_program", referencedColumnName="id")
*/
private $travelProgram;
/**
* @var integer
*
* @ORM\Column(name="status", type="integer", nullable=true)
*/
private $status = '1';
/**
* @var integer
*
* @ORM\Column(name="show_in_navi", type="integer", nullable=true)
*/
private $showInNavi = '1';
/**
* @var integer
*
* @ORM\Column(name="order", type="integer", nullable=true)
*/
private $order = '0';
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255, nullable=true)
*/
private $title;
/**
* @var string
*
* @ORM\Column(name="pagetitle", type="string", length=255, nullable=true)
*/
private $pagetitle;
/**
* @var string
*
* @ORM\Column(name="description", type="text", length=65535, nullable=true)
*/
private $description;
/**
* @var string
*
* @ORM\Column(name="keywords", type="text", length=65535, nullable=true)
*/
private $keywords;
/**
* @var string
*
* @ORM\Column(name="content", type="text", length=65535, nullable=true)
*/
private $content;
/**
* @ORM\Column(type="text", length=65535, nullable=true)
*
* @todo Remove this field as soon as the new page is launched and instead use "content" again
*/
protected $contentNew;
/**
* @var string
*
* @ORM\Column(name="buma_destination", type="string", length=255, nullable=true)
*/
private $bumaDestination;
/**
* @var integer
*
* @ORM\Column(name="OLD_CatalogID", type="integer", nullable=true)
*/
private $oldCatalogid;
/**
* @var integer
*
* @ORM\Column(name="OLD_OwnerID", type="integer", nullable=true)
*/
private $oldOwnerid;
/**
* @var integer
*
* @ORM\Column(name="buma_gjr", type="integer", nullable=true)
*/
private $bumaGjr;
/**
* @var \DateTime
*
* @ORM\Column(name="date", type="datetime", nullable=false)
*/
private $date;
/**
* @var boolean
*
* @ORM\Column(name="`price-tags`", type="boolean", nullable=false)
*/
private $priceTags = '0';
/**
* @var string
*
* @ORM\Column(name="text_right", type="text", length=65535, nullable=true)
*/
private $textRight;
/**
* @var string
*
* @ORM\Column(name="keyword", type="string", length=255, nullable=true)
*/
private $keyword;
/**
* @var string
*
* @ORM\Column(name="canonical_url", type="string", length=511, nullable=true)
*/
private $canonicalUrl;
/**
* @var \AppBundle\Entity\TravelCountry
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\TravelCountry")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="country_id", referencedColumnName="id")
* })
*/
private $country;
/**
* @ORM\Column(type="string", length=80, nullable=true)
*/
protected $template;
/**
* @ORM\Column(type="string", length=200, nullable=true, unique=true)
*/
protected $realUrlPath;
/**
* @ORM\Column(type="string", length=65535, nullable=true)
*/
protected $boxBody;
/**
* @ORM\Column(type="string", length=200, nullable=true)
*/
protected $boxImageUrl;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $boxStar;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $boxDiscount;
/**
* @ORM\Column(type="string", nullable=true)
*/
protected $cmsSettings;
/**
* Set owner
*
* @param integer $owner
*
* @return Page
*/
public function setOwner($owner)
{
$this->owner = $owner;
return $this;
}
/**
* Get owner
*
* @return integer
*/
public function getOwner()
{
return $this->owner;
}
/**
* Set ownerSecond
*
* @param integer $ownerSecond
*
* @return Page
*/
public function setOwnerSecond($ownerSecond)
{
$this->ownerSecond = $ownerSecond;
return $this;
}
/**
* Get ownerSecond
*
* @return integer
*/
public function getOwnerSecond()
{
return $this->ownerSecond;
}
/**
* Set catalogId
*
* @param integer $catalogId
*
* @return Page
*/
public function setCatalogId($catalogId)
{
$this->catalogId = $catalogId;
return $this;
}
/**
* Get catalogId
*
* @return integer
*/
public function getCatalogId()
{
return $this->catalogId;
}
/**
* Set catalogIndex
*
* @param integer $catalogIndex
*
* @return Page
*/
public function setCatalogIndex($catalogIndex)
{
$this->catalogIndex = $catalogIndex;
return $this;
}
/**
* Get catalogIndex
*
* @return integer
*/
public function getCatalogIndex()
{
return $this->catalogIndex;
}
/**
* Set slug
*
* @param string $slug
*
* @return Page
*/
public function setSlug($slug)
{
$this->slug = $slug;
return $this;
}
/**
* Get slug
*
* @return string
*/
public function getSlug()
{
return $this->slug;
}
/**
* Set status
*
* @param integer $status
*
* @return Page
*/
public function setStatus($status)
{
$this->status = $status;
return $this;
}
/**
* Get status
*
* @return integer
*/
public function getStatus()
{
return $this->status;
}
/**
* Set showInNavi
*
* @param integer $showInNavi
*
* @return Page
*/
public function setShowInNavi($showInNavi)
{
$this->showInNavi = $showInNavi;
return $this;
}
/**
* Get showInNavi
*
* @return integer
*/
public function getShowInNavi()
{
return $this->showInNavi;
}
/**
* Set order
*
* @param integer $order
*
* @return Page
*/
public function setOrder($order)
{
$this->order = $order;
return $this;
}
/**
* Get order
*
* @return integer
*/
public function getOrder()
{
return $this->order;
}
/**
* Set title
*
* @param string $title
*
* @return Page
*/
public function setTitle($title)
{
$this->title = $title;
return $this;
}
/**
* Get title
*
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* Set pagetitle
*
* @param string $pagetitle
*
* @return Page
*/
public function setPagetitle($pagetitle)
{
$this->pagetitle = $pagetitle;
return $this;
}
/**
* Get pagetitle
*
* @return string
*/
public function getPagetitle()
{
return $this->pagetitle;
}
/**
* Set description
*
* @param string $description
*
* @return Page
*/
public function setDescription($description)
{
$this->description = $description;
return $this;
}
/**
* Get description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}
/**
* Set keywords
*
* @param string $keywords
*
* @return Page
*/
public function setKeywords($keywords)
{
$this->keywords = $keywords;
return $this;
}
/**
* Get keywords
*
* @return string
*/
public function getKeywords()
{
return $this->keywords;
}
/**
* Set content
*
* @param string $content
*
* @return Page
*/
public function setContent($content)
{
$this->content = $content;
return $this;
}
/**
* Get content
*
* @return string
*/
public function getContent()
{
return $this->contentNew ?? $this->content;
}
/**
* Set contentNew
*
* @param string $contentNew
*
* @return Page
*/
public function setContentNew($contentNew)
{
$this->contentNew = $contentNew;
return $this;
}
/**
* Get contentNew
*
* @return string
*/
public function getContentNew()
{
return $this->contentNew;
}
/**
* Set bumaDestination
*
* @param string $bumaDestination
*
* @return Page
*/
public function setBumaDestination($bumaDestination)
{
$this->bumaDestination = $bumaDestination;
return $this;
}
/**
* Get bumaDestination
*
* @return string
*/
public function getBumaDestination()
{
return $this->bumaDestination;
}
/**
* Set oldCatalogid
*
* @param integer $oldCatalogid
*
* @return Page
*/
public function setOldCatalogid($oldCatalogid)
{
$this->oldCatalogid = $oldCatalogid;
return $this;
}
/**
* Get oldCatalogid
*
* @return integer
*/
public function getOldCatalogid()
{
return $this->oldCatalogid;
}
/**
* Set oldOwnerid
*
* @param integer $oldOwnerid
*
* @return Page
*/
public function setOldOwnerid($oldOwnerid)
{
$this->oldOwnerid = $oldOwnerid;
return $this;
}
/**
* Get oldOwnerid
*
* @return integer
*/
public function getOldOwnerid()
{
return $this->oldOwnerid;
}
/**
* Set bumaGjr
*
* @param integer $bumaGjr
*
* @return Page
*/
public function setBumaGjr($bumaGjr)
{
$this->bumaGjr = $bumaGjr;
return $this;
}
/**
* Get bumaGjr
*
* @return integer
*/
public function getBumaGjr()
{
return $this->bumaGjr;
}
/**
* Set date
*
* @param \DateTime $date
*
* @return Page
*/
public function setDate($date)
{
$this->date = $date;
return $this;
}
/**
* Get date
*
* @return \DateTime
*/
public function getDate()
{
return $this->date;
}
/**
* Set priceTags
*
* @param boolean $priceTags
*
* @return Page
*/
public function setPriceTags($priceTags)
{
$this->priceTags = $priceTags;
return $this;
}
/**
* Get priceTags
*
* @return boolean
*/
public function getPriceTags()
{
return $this->priceTags;
}
/**
* Set textRight
*
* @param string $textRight
*
* @return Page
*/
public function setTextRight($textRight)
{
$this->textRight = $textRight;
return $this;
}
/**
* Get textRight
*
* @return string
*/
public function getTextRight()
{
return $this->textRight;
}
/**
* Set keyword
*
* @param string $keyword
*
* @return Page
*/
public function setKeyword($keyword)
{
$this->keyword = $keyword;
return $this;
}
/**
* Get keyword
*
* @return string
*/
public function getKeyword()
{
return $this->keyword;
}
/**
* Set canonicalUrl
*
* @param string $canonicalUrl
*
* @return Page
*/
public function setCanonicalUrl($canonicalUrl)
{
$this->canonicalUrl = $canonicalUrl;
return $this;
}
/**
* Get canonicalUrl
*
* @return string
*/
public function getCanonicalUrl()
{
return $this->canonicalUrl;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set country
*
* @param \AppBundle\Entity\TravelCountry $country
*
* @return Page
*/
public function setCountry(\AppBundle\Entity\TravelCountry $country = null)
{
$this->country = $country;
return $this;
}
/**
* Get country
*
* @return \AppBundle\Entity\TravelCountry
*/
public function getCountry()
{
return $this->country;
}
/**
* Constructor
*/
public function __construct()
{
$this->children = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Set lft
*
* @param integer $lft
*
* @return Page
*/
public function setLft($lft)
{
$this->lft = $lft;
return $this;
}
/**
* Get lft
*
* @return integer
*/
public function getLft()
{
return $this->lft;
}
/**
* Set lvl
*
* @param integer $lvl
*
* @return Page
*/
public function setLvl($lvl)
{
$this->lvl = $lvl;
return $this;
}
/**
* Get lvl
*
* @return integer
*/
public function getLvl()
{
return $this->lvl;
}
/**
* Set rgt
*
* @param integer $rgt
*
* @return Page
*/
public function setRgt($rgt)
{
$this->rgt = $rgt;
return $this;
}
/**
* Get rgt
*
* @return integer
*/
public function getRgt()
{
return $this->rgt;
}
/**
* Set root
*
* @param \AppBundle\Entity\Page $root
*
* @return Page
*/
public function setRoot(\AppBundle\Entity\Page $root = null)
{
$this->root = $root;
return $this;
}
/**
* Get root
*
* @return \AppBundle\Entity\Page
*/
public function getRoot()
{
return $this->root;
}
/**
* Set parent
*
* @param \AppBundle\Entity\Page $parent
*
* @return Page
*/
public function setParent(\AppBundle\Entity\Page $parent = null)
{
$this->parent = $parent;
return $this;
}
/**
* Get parent
*
* @return \AppBundle\Entity\Page
*/
public function getParent()
{
return $this->parent;
}
/**
* Add child
*
* @param \AppBundle\Entity\Page $child
*
* @return Page
*/
public function addChild(\AppBundle\Entity\Page $child)
{
$this->children[] = $child;
return $this;
}
/**
* Remove child
*
* @param \AppBundle\Entity\Page $child
*/
public function removeChild(\AppBundle\Entity\Page $child)
{
$this->children->removeElement($child);
}
/**
* Get children
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getChildren()
{
return $this->children;
}
/**
* Set template
*
* @param string $template
*
* @return Page
*/
public function setTemplate($template)
{
$this->template = $template;
return $this;
}
/**
* Get template
*
* @return string
*/
public function getTemplate()
{
return $this->template;
}
/**
* Set travelProgram
*
* @param \AppBundle\Entity\TravelProgram $travelProgram
*
* @return Page
*/
public function setTravelProgram(\AppBundle\Entity\TravelProgram $travelProgram = null)
{
$this->travelProgram = $travelProgram;
return $this;
}
/**
* Get travelProgram
*
* @return \AppBundle\Entity\TravelProgram
*/
public function getTravelProgram()
{
return $this->travelProgram;
}
/**
* @param string|null $realUrlPath
*
* @return Page
*/
public function setRealUrlPath($realUrlPath)
{
$this->realUrlPath = $realUrlPath;
return $this;
}
public function getRealUrlPath()
{
return $this->realUrlPath;
}
public function getUrlPath()
{
if ($this->realUrlPath !== null)
{
return $this->realUrlPath;
}
$urlParts = [];
$page = $this;
do
{
$urlParts[] = $page->getSlug();
$page = $page->getParent();
} while ($page !== null);
return '/'. implode('/', array_reverse($urlParts));
}
/**
* Set boxBody
*
* @param string $boxBody
*
* @return Page
*/
public function setBoxBody($boxBody)
{
$this->boxBody = $boxBody;
return $this;
}
/**
* Get boxBody
*
* @return string
*/
public function getBoxBody()
{
return $this->boxBody;
}
/**
* Set boxImageUrl
*
* @param string $boxImageUrl
*
* @return Page
*/
public function setBoxImageUrl($boxImageUrl)
{
$this->boxImageUrl = $boxImageUrl;
return $this;
}
/**
* Get boxImageUrl
*
* @return string
*/
public function getBoxImageUrl()
{
return $this->boxImageUrl;
}
/**
* Set boxStar
*
* @param string $boxStar
*
* @return Page
*/
public function setBoxStar($boxStar)
{
$this->boxStar = $boxStar;
return $this;
}
/**
* Get boxStar
*
* @return string
*/
public function getBoxStar()
{
return $this->boxStar;
}
/**
* Set boxDiscount
*
* @param string $boxDiscount
*
* @return Page
*/
public function setBoxDiscount($boxDiscount)
{
$this->boxDiscount = $boxDiscount;
return $this;
}
/**
* Get boxDiscount
*
* @return string
*/
public function getBoxDiscount()
{
return $this->boxDiscount;
}
public function getHasChildren()
{
return $this->lft != null && $this->rgt != null && $this->rgt - $this->lft > 1;
}
/**
* @return TravelCountry|null The country. If no country is set, trace the ancestor page nodes for a country.
*/
public function getEffectiveCountry()
{
$node = $this;
do
{
if ($node->getCountry())
{
return $node->getCountry();
}
} while ($node = $node->getParent());
return null;
}
/**
* Set cmsSettings
*
* @param string $cmsSettings
*
* @return Page
*/
public function setCmsSettings($cmsSettings)
{
$this->cmsSettings = $cmsSettings;
return $this;
}
/**
* Get cmsSettings
*
* @return string
*/
public function getCmsSettings()
{
return $this->cmsSettings;
}
}