<?php namespace SGalinski\SgNews\Domain\Model; /*************************************************************** * Copyright notice * * (c) sgalinski Internet Services (https://www.sgalinski.de) * * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is * free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * The GNU General Public License can be found at * http://www.gnu.org/copyleft/gpl.html. * * This script is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ use TYPO3\CMS\Extbase\Domain\Model\FrontendUser; use TYPO3\CMS\Extbase\Persistence\Generic\LazyLoadingProxy; use TYPO3\CMS\Extbase\Persistence\ObjectStorage; /** * News */ class News extends CategoryAndNews { /** * @var string */ protected $description = ''; /** * @var string */ protected $author = ''; /** * @var boolean */ protected $highlighted = FALSE; /** * @var boolean */ protected $neverHighlighted = FALSE; /** * @var \DateTime */ protected $lastUpdated; /** * @var \DateTime */ protected $dateEnd; /** * @var \DateTime */ protected $creationDate; /** * @lazy * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\SGalinski\SgNews\Domain\Model\News> */ protected $relatedNews; /** * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\SGalinski\SgNews\Domain\Model\Tag> */ protected $tags; /** * @lazy * @var \TYPO3\CMS\Extbase\Domain\Model\FrontendUser */ protected $authorFrontendUser; /** * @var int */ protected $likes; /** * @var string */ protected $location; /** * @var int */ protected $contentFromAnotherPage = 0; /** * Constructor */ public function __construct() { parent::__construct(); $this->relatedNews = new ObjectStorage(); $this->tags = new ObjectStorage(); } /** * @param string $author * @return void */ public function setAuthor($author) { $this->author = $author; } /** * @return string */ public function getAuthor() { return $this->author; } /** * @param string $description * @return void */ public function setDescription($description) { $this->description = $description; } /** * @return string */ public function getDescription() { return $this->description; } /** * @param \DateTime $lastUpdated * @return void */ public function setLastUpdated(\DateTime $lastUpdated) { $this->lastUpdated = $lastUpdated; } /** * @return \DateTime */ public function getLastUpdated() { return $this->lastUpdated; } /** * @return \DateTime */ public function getDateEnd() { return $this->dateEnd; } /** * @param \DateTime $dateEnd */ public function setDateEnd(\DateTime $dateEnd) { $this->dateEnd = $dateEnd; } /** * @param \DateTime $creationDate * @return void */ public function setCreationDate(\DateTime $creationDate) { $this->creationDate = $creationDate; } /** * @return \DateTime */ public function getCreationDate() { return $this->creationDate; } /** * @param ObjectStorage $relatedNews * @return void */ public function setRelatedNews(ObjectStorage $relatedNews) { $this->relatedNews = $relatedNews; } /** * @return ObjectStorage */ public function getRelatedNews() { if ($this->relatedNews instanceof LazyLoadingProxy) { $this->relatedNews->_loadRealInstance(); } return $this->relatedNews; } /** * @param News $relatedNews * @return void */ public function addRelatedNews(News $relatedNews) { if ($this->relatedNews instanceof LazyLoadingProxy) { $this->relatedNews->_loadRealInstance(); } $this->relatedNews->attach($relatedNews); } /** * @param News $relatedNews * @return void */ public function removeRelatedNews(News $relatedNews) { if ($this->relatedNews instanceof LazyLoadingProxy) { $this->relatedNews->_loadRealInstance(); } $this->relatedNews->detach($relatedNews); } /** * @param ObjectStorage $tags * @return void */ public function setTags(ObjectStorage $tags) { $this->tags = $tags; } /** * @return ObjectStorage */ public function getTags() { return $this->tags; } /** * @param Tag $tag * @return void */ public function addTag(Tag $tag) { $this->tags->attach($tag); } /** * @param Tag $tag * @return void */ public function removeTags(Tag $tag) { $this->tags->detach($tag); } /** * @param boolean $highlighted */ public function setHighlighted($highlighted) { $this->highlighted = (bool) $highlighted; } /** * @return boolean */ public function getHighlighted() { return $this->highlighted; } /** * @return bool */ public function getNeverHighlighted() { return $this->neverHighlighted; } /** * @param bool $neverHighlighted * @return void */ public function setNeverHighlighted($neverHighlighted) { $this->neverHighlighted = (bool) $neverHighlighted; } /** * @param FrontendUser $authorFrontendUser * @return void */ public function setAuthorFrontendUser(FrontendUser $authorFrontendUser) { $this->authorFrontendUser = $authorFrontendUser; } /** * @return FrontendUser */ public function getAuthorFrontendUser() { if ($this->authorFrontendUser instanceof LazyLoadingProxy) { $this->authorFrontendUser->_loadRealInstance(); } return $this->authorFrontendUser; } /** * @return int */ public function getLikes() { return $this->likes; } /** * @param int $likes */ public function setLikes($likes) { $this->likes = $likes; } /** * @return string */ public function getLocation() { return $this->location; } /** * @param string $location */ public function setLocation($location) { $this->location = $location; } /** * @return int */ public function getContentFromAnotherPage(): int { return $this->contentFromAnotherPage; } /** * @param int $contentFromAnotherPage */ public function setContentFromAnotherPage(int $contentFromAnotherPage): void { $this->contentFromAnotherPage = $contentFromAnotherPage; } }