-
Fabian Galinski authoredFabian Galinski authored
To find the state of this project's repository at the time of any of these versions, check out the tags.
News.php 5.52 KiB
<?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 $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;
/**
* 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;
}
/**
* @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 = ($highlighted == TRUE);
}
/**
* @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 = ($neverHighlighted === TRUE);
}
/**
* @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;
}
}