* @Extbase\ORM\Cascade remove */ protected $images; /** * @var ObjectStorage * @Extbase\ORM\Cascade remove * @Extbase\ORM\Lazy */ protected $dates; /** * @var Location|null */ protected $location = null; /** * @var Organizer|null */ protected $organizer = null; /** * @var Region|null */ protected $region = null; /** * @var string */ protected $pages = ''; /** * @var ObjectStorage */ protected $categories; /** * @var ObjectStorage */ protected $features; /** * @var ObjectStorage */ protected $partner; /** * @var ObjectStorage */ protected $referencesEvents; /** * @var int */ protected $_languageUid; /** * @var DataProcessingForModels */ protected $dataProcessing = null; // Legacy location related info /** * @var string */ protected $name = ''; /** * @var string */ protected $street = ''; /** * @var string */ protected $district = ''; /** * @var string */ protected $city = ''; /** * @var string */ protected $zip = ''; /** * @var string */ protected $country = ''; /** * @var string */ protected $phone = ''; /** * @var string */ protected $latitude = ''; /** * @var string */ protected $longitude = ''; // End of legacy location info public function __construct() { $this->initStorageObjects(); } /** * @param DataProcessingForModels $dataProcessing */ public function injectDataProcessingForModels(DataProcessingForModels $dataProcessing): void { $this->dataProcessing = $dataProcessing; } public function initializeObject(): void { $this->initStorageObjects(); } protected function initStorageObjects(): void { $this->images = new ObjectStorage(); $this->dates = new ObjectStorage(); $this->categories = new ObjectStorage(); $this->features = new ObjectStorage(); $this->partner = new ObjectStorage(); $this->referencesEvents = new ObjectStorage(); } public function getGlobalId(): string { return $this->globalId; } public function setGlobalId(string $globalId): void { $this->globalId = $globalId; } public function getTitle(): string { return $this->title; } public function setTitle(string $title): void { $this->title = $title; } public function getSubtitle(): string { return $this->subtitle; } public function setSubtitle(string $subtitle): void { $this->subtitle = $subtitle; } public function getTeaser(): string { return $this->teaser; } public function setTeaser(string $teaser): void { $this->teaser = $teaser; } public function getDetails(): string { return $this->details; } public function setDetails(string $details): void { $this->details = $details; } public function getPriceInfo(): string { return $this->priceInfo; } public function setPriceInfo(string $priceInfo): void { $this->priceInfo = $priceInfo; } public function getWeb(): string { return $this->web; } public function setWeb(string $web): void { $this->web = $web; } public function getTicket(): string { return $this->ticket; } public function setTicket(string $ticket): void { $this->ticket = $ticket; } public function getFacebook(): string { return $this->facebook; } public function setFacebook(string $facebook): void { $this->facebook = $facebook; } public function getYoutube(): string { return $this->youtube; } public function setYoutube(string $youtube): void { $this->youtube = $youtube; } public function getInstagram(): string { return $this->instagram; } public function setInstagram(string $instagram): void { $this->instagram = $instagram; } /** * @return ObjectStorage $images */ public function getImages(): ObjectStorage { return $this->images; } /** * @param ObjectStorage $images */ public function setImages(ObjectStorage $images): void { $this->images = $images; } public function getSlug(): string { return $this->slug; } public function setSlug(string $slug): void { $this->slug = $slug; } public function addDate(Date $date): void { $this->dates->attach($date); } public function removeDate(Date $date): void { $this->dates->detach($date); } /** * @return ObjectStorage */ public function getDates(): ObjectStorage { return $this->dates; } /** * @param ObjectStorage $dates */ public function setDates(ObjectStorage $dates): void { $this->dates = $dates; } /** * @param ObjectStorage $dates */ public function removeAllDates(ObjectStorage $dates): void { $this->dates->removeAll($dates); } /** * @return ObjectStorage */ public function getPartner(): ObjectStorage { return $this->partner; } /** * @return ObjectStorage */ public function getReferencesEvents(): ObjectStorage { return $this->referencesEvents; } public function setLocation(?Location $location): void { $this->location = $location; // Keep this block as long as event still has the properties for legacy reasons. // This ensures there is only a single point of truth, the new location object. // That way we detect issues earlier and can migrate them until we get rid of the legacy code base. if ($location instanceof Location) { $this->name = ''; $this->street = ''; $this->district = ''; $this->city = ''; $this->zip = ''; $this->country = ''; $this->phone = ''; $this->latitude = ''; $this->longitude = ''; } } public function getLocation(): ?Location { return $this->location; } public function setOrganizer(Organizer $organizer): void { $this->organizer = $organizer; } public function getOrganizer(): ?Organizer { return $this->organizer; } public function getRegion(): ?Region { return $this->region; } public function setRegion(Region $region): void { $this->region = $region; } public function setHighlight(bool $highlight): void { $this->highlight = $highlight; } public function isHighlight(): bool { return $this->highlight; } public function getPages(): array { static $pages = null; if (is_array($pages)) { return $pages; } $pages = $this->dataProcessing->process($this); return $pages; } public function addCategory(Category $category): void { $this->categories->attach($category); } /** * @return array */ public function getCategories(): array { $categories = $this->categories->toArray(); usort($categories, function (Category $catA, Category $catB) { return $catA->getSorting() <=> $catB->getSorting(); }); return $categories; } /** * @param ObjectStorage $categories */ public function setCategories(ObjectStorage $categories): void { $this->categories = $categories; } /** * @return array */ public function getFeatures(): array { $features = $this->features->toArray(); usort($features, function (Category $catA, Category $catB) { return $catA->getSorting() <=> $catB->getSorting(); }); return $features; } /** * @param ObjectStorage $features */ public function setFeatures(ObjectStorage $features): void { $this->features = $features; } public function setLanguageUid(int $languageUid): void { $this->_languageUid = $languageUid; } public function getLanguageUid(): int { return $this->_languageUid; } public function getLocalizedUid(): int { return $this->_localizedUid; } // Legacy location related info public function getName(): string { if ($this->location instanceof Location) { return $this->location->getName(); } return $this->name; } public function getStreet(): string { if ($this->location instanceof Location) { return $this->location->getStreet(); } return $this->street; } public function getDistrict(): string { if ($this->location instanceof Location) { return $this->location->getDistrict(); } return $this->district; } public function getCountry(): string { if ($this->location instanceof Location) { return $this->location->getCountry(); } return $this->country; } public function getCity(): string { if ($this->location instanceof Location) { return $this->location->getCity(); } return $this->city; } public function getZip(): string { if ($this->location instanceof Location) { return $this->location->getZip(); } return $this->zip; } public function getPhone(): string { if ($this->location instanceof Location) { return $this->location->getPhone(); } return $this->phone; } public function getLatitude(): string { if ($this->location instanceof Location) { return $this->location->getLatitude(); } return $this->latitude; } public function getLongitude(): string { if ($this->location instanceof Location) { return $this->location->getLongitude(); } return $this->longitude; } }