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