TermsDataHandler.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. // $fieldArray contains the updated field values of the content element
  16. if ($fieldArray['tx_speedbase_chatbotterms']){
  17. $termsList = [];
  18. // list of terms in input field got changed
  19. $termsList['tx_speedbase_chatbotterms'] = $fieldArray['tx_speedbase_chatbotterms'];
  20. } else {
  21. // list of terms in input field got not changed just saved
  22. $termsList = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbotterms');
  23. }
  24. if (!$termsList){
  25. die('ohne Hände keine Kekse - das Feld "Begriffe" darf nicht leer sein!');
  26. }
  27. if ($fieldArray['tx_speedbase_chatbottermscategory']){
  28. $category = [];
  29. // category in content element got changed
  30. $category['tx_speedbase_chatbottermscategory'] = $fieldArray['tx_speedbase_chatbottermscategory'];
  31. } else {
  32. // category in content element got not changed just saved
  33. $category = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbottermscategory');
  34. }
  35. if ($fieldArray['tx_speedbase_chatbottermstype']){
  36. $type = [];
  37. // type in content element got changed
  38. $type['tx_speedbase_chatbottermstype'] = $fieldArray['tx_speedbase_chatbottermstype'];
  39. } else {
  40. // type in content element got not changed just saved
  41. $type = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbottermstype');
  42. }
  43. if ($fieldArray['tx_speedbase_chatbottermsurl']){
  44. $url = [];
  45. // url in content element got changed
  46. $url['tx_speedbase_chatbottermsurl'] = $fieldArray['tx_speedbase_chatbottermsurl'];
  47. } else {
  48. // url in content element got not changed just saved
  49. $url = $dataHandler->recordInfo($table, $id, 'tx_speedbase_chatbottermsurl');
  50. }
  51. $controller = GeneralUtility::makeInstance(SimpleController::class);
  52. $controller->persistDataToDBAction($termsList['tx_speedbase_chatbotterms'], $category['tx_speedbase_chatbottermscategory'], $type['tx_speedbase_chatbottermstype'], $url['tx_speedbase_chatbottermsurl']);
  53. }
  54. }
  55. }
  56. }