Bladeren bron

remove trash

ksieren 2 jaren geleden
bovenliggende
commit
d6dba3a2ad

+ 8 - 5
Classes/Controller/SimpleController.php

@@ -5,6 +5,7 @@ namespace Meramo\Speedbase\Controller;
 use Meramo\Begriffmgt\Controller\DashboardController;
 use Meramo\Begriffmgt\Domain\Repository\CategoryRepository;
 use Meramo\Begriffmgt\Domain\Repository\TypeRepository;
+use Meramo\Begriffmgt\Controller\UrlController;
 use Meramo\Begriffmgt\Domain\Repository\UrlRepository;
 use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
 
@@ -14,22 +15,24 @@ class SimpleController extends ActionController
         DashboardController $dashboardController,
         CategoryRepository $categoryRepository,
         TypeRepository $typeRepository,
-        UrlRepository $urlRepository
+        UrlRepository $urlRepository,
+        UrlController $urlController
     ){
         $this->dashboardController = $dashboardController;
         $this->categoryRepository = $categoryRepository;
         $this->typeRepository = $typeRepository;
         $this->urlRepository = $urlRepository;
+        $this->urlController = $urlController;
     }
     public function persistDataToDBAction($termsList, $category, $type, $url){
-        if(!($category === '')){
+        if(!($category === '') && !($category === null)){
             $category = ($this->categoryRepository->findByUid($category))->getTitle();
         }
-        if(!($type === '')){
+        if(!($type === '') && !($type === null)){
             $type = ($this->typeRepository->findByUid($type))->getTitle();
         }
-        if(!($url === '')){
-            $url = ($this->urlRepository->findByUid($url))->getTitle();
+        if($url === null){
+            $url = '';
         }
         $this->dashboardController->createAction($termsList, $category, $type, $url);
     }

+ 26 - 4
Classes/Hooks/TermsDataHandler.php

@@ -16,23 +16,45 @@ class TermsDataHandler
             $cType = $dataHandler->datamap[$table][$id]['CType'] ?? null;
 
             if ($cType === 'speedbase') {
+                // $fieldArray contains the updated field values of the content element
                 // $fieldArray contains the updated field values of the content element
                 if ($fieldArray['tx_speedbase_chatbotterms']){
                     $termsList = [];
                     // list of terms in input field got changed
                     $termsList['tx_speedbase_chatbotterms'] = $fieldArray['tx_speedbase_chatbotterms'];
-                    $category['tx_speedbase_chatbottermscategory'] = $fieldArray['tx_speedbase_chatbottermscategory'];
-                    $type['tx_speedbase_chatbottermstype'] = $fieldArray['tx_speedbase_chatbottermstype'];
-                    $url['tx_speedbase_chatbottermsurl'] = $fieldArray['tx_speedbase_chatbottermsurl'];
                 } else {
                     // list of terms in input field got not changed just saved
                     $termsList = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbotterms');
+                }
+                if (!$termsList){
+                    die('ohne Hände keine Kekse - das Feld "Begriffe" darf nicht leer sein!');
+                }
+                if ($fieldArray['tx_speedbase_chatbottermscategory']){
+                    $category = [];
+                    // category in content element got changed
+                    $category['tx_speedbase_chatbottermscategory'] = $fieldArray['tx_speedbase_chatbottermscategory'];
+                } else {
+                    // category in content element got not changed just saved
                     $category = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbottermscategory');
+                }
+                if ($fieldArray['tx_speedbase_chatbottermstype']){
+                    $type = [];
+                    // type in content element got changed
+                    $type['tx_speedbase_chatbottermstype'] = $fieldArray['tx_speedbase_chatbottermstype'];
+                } else {
+                    // type in content element got not changed just saved
                     $type = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbottermstype');
+                }
+                if ($fieldArray['tx_speedbase_chatbottermsurl']){
+                    $url = [];
+                    // url in content element got changed
+                    $url['tx_speedbase_chatbottermsurl'] = $fieldArray['tx_speedbase_chatbottermsurl'];
+                } else {
+                    // url in content element got not changed just saved
                     $url = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbottermsurl');
                 }
-
                 $controller = GeneralUtility::makeInstance(SimpleController::class);
+
                 $controller->persistDataToDBAction($termsList['tx_speedbase_chatbotterms'], $category['tx_speedbase_chatbottermscategory'], $type['tx_speedbase_chatbottermstype'], $url['tx_speedbase_chatbottermsurl']);
             }
         }

+ 11 - 6
Configuration/TypoScript/setup.typoscript

@@ -1,9 +1,3 @@
-page = PAGE
-page {
-    10 = TEXT
-    10.value = ''
-}
-
 tt_content {
     speedbase =< lib.contentElement
     speedbase {
@@ -13,3 +7,14 @@ tt_content {
         }
     }
 }
+config.tx_extbase {
+    persistence {
+        storagePid = 0
+        classes {
+            Meramo\Begriffmgt\Domain\Model\Term {
+                newRecordStoragePid = 0
+                storagePid = 0
+            }
+        }
+    }
+}