TermsDataHandler.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace Meramo\Speedbase\Hooks;
  3. use Meramo\Speedbase\Controller\SimpleController;
  4. use TYPO3\CMS\Core\DataHandling\DataHandler;
  5. use TYPO3\CMS\Core\Utility\GeneralUtility;
  6. class TermsDataHandler
  7. {
  8. public function processDatamap_afterDatabaseOperations($status, $table, $id, $fieldArray, DataHandler $dataHandler)
  9. {
  10. if ($table === 'tt_content') {
  11. // Get the CType for the content element
  12. $cType = $dataHandler->datamap[$table][$id]['CType'] ?? null;
  13. if ($cType === 'speedbase') {
  14. // $fieldArray contains the updated field values of the content element
  15. if ($fieldArray['tx_speedbase_chatbotterms']){
  16. $termsList = [];
  17. // list of terms in input field got changed
  18. $termsList['tx_speedbase_chatbotterms'] = $fieldArray['tx_speedbase_chatbotterms'];
  19. $category['tx_speedbase_chatbottermscategory'] = $fieldArray['tx_speedbase_chatbottermscategory'];
  20. $type['tx_speedbase_chatbottermstype'] = $fieldArray['tx_speedbase_chatbottermstype'];
  21. $url['tx_speedbase_chatbottermsurl'] = $fieldArray['tx_speedbase_chatbottermsurl'];
  22. } else {
  23. // list of terms in input field got not changed just saved
  24. $termsList = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbotterms');
  25. $category = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbottermscategory');
  26. $type = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbottermstype');
  27. $url = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbottermsurl');
  28. }
  29. $controller = GeneralUtility::makeInstance(SimpleController::class);
  30. $controller->persistDataToDBAction($termsList['tx_speedbase_chatbotterms'], $category['tx_speedbase_chatbottermscategory'], $type['tx_speedbase_chatbottermstype'], $url['tx_speedbase_chatbottermsurl']);
  31. }
  32. }
  33. }
  34. }