diff --git a/Classes/Domain/Model/MenuItem.php b/Classes/Domain/Model/MenuItem.php index 2f6aed42064df0a983fa7c5291397ed65f7970f2..d8238c2731722ccbd0c221776162121339289811 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 0000000000000000000000000000000000000000..55b1141ba0015c9aec419155f20118af70728341 --- /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 10f7bf41a0e7ed2c34b2e3c21788280b3bd09e51..96b44cb7633ca7637488b1fe423d3e35519a5710 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' => [