From ceed6947ed25415594bcc47cf87783183e41389e Mon Sep 17 00:00:00 2001 From: Maksym Chubin <maksim.chubin@netzlabor.co> Date: Wed, 3 Nov 2021 18:45:47 +0200 Subject: [PATCH] [FEATURE] Add TtContent model --- Classes/Domain/Model/MenuItem.php | 21 +++++++++++-------- Classes/Domain/Model/TtContent.php | 8 +++++++ Configuration/Extbase/Persistence/Classes.php | 3 +++ 3 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 Classes/Domain/Model/TtContent.php diff --git a/Classes/Domain/Model/MenuItem.php b/Classes/Domain/Model/MenuItem.php index 2f6aed4..d8238c2 100644 --- a/Classes/Domain/Model/MenuItem.php +++ b/Classes/Domain/Model/MenuItem.php @@ -69,9 +69,10 @@ class MenuItem extends AbstractEntity /** * content * - * @var string + * @var ObjectStorage<TtContent> + * @TYPO3\CMS\Extbase\Annotation\ORM\Cascade("remove") */ - protected $content = ''; + protected $content = null; /** * items @@ -107,6 +108,7 @@ class MenuItem extends AbstractEntity */ protected function initStorageObjects() { + $this->content = $this->content ?: new ObjectStorage(); $this->items = $this->items ?: new ObjectStorage(); } @@ -243,18 +245,19 @@ class MenuItem extends AbstractEntity */ public function getContent(): string { - return $this->content; + $uids = array_map(function (TtContent $ce) { + return $ce->getUid(); + }, $this->getContentRecords()->toArray()); + + return implode(',', $uids); } /** - * Sets the content - * - * @param string $content - * @return void + * @return ObjectStorage */ - public function setContent(string $content): void + public function getContentRecords(): ObjectStorage { - $this->content = $content; + return $this->content; } /** diff --git a/Classes/Domain/Model/TtContent.php b/Classes/Domain/Model/TtContent.php new file mode 100644 index 0000000..55b1141 --- /dev/null +++ b/Classes/Domain/Model/TtContent.php @@ -0,0 +1,8 @@ +<?php + +namespace NL\NlMenubuilder\Domain\Model; + +class TtContent extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity +{ + +} diff --git a/Configuration/Extbase/Persistence/Classes.php b/Configuration/Extbase/Persistence/Classes.php index 10f7bf4..96b44cb 100644 --- a/Configuration/Extbase/Persistence/Classes.php +++ b/Configuration/Extbase/Persistence/Classes.php @@ -6,6 +6,9 @@ return [ \NL\NlMenubuilder\Domain\Model\Page::class => [ 'tableName' => 'pages', ], + \NL\NlMenubuilder\Domain\Model\TtContent::class => [ + 'tableName' => 'tt_content', + ], \NL\NlMenubuilder\Domain\Model\MenuItem::class => [ 'tableName' => 'tx_nlmenubuilder_domain_model_menuitem', 'subclasses' => [ -- GitLab