/** * implements the hook processDatamap_afterDatabaseOperations that gets invoked * when a form in the backend was saved and written to the database. * * Here we will do the caching of recurring events * * @param string $status * @param string $table * @param integer $id * @param array $fieldArray * @param t3lib_TCEmain $tce */ public function processDatamap_afterDatabaseOperations($status, $table, $id, $fieldArray, $tce) { $GLOBALS['LANG']->includeLLFile('EXT:cz_simple_cal/Resources/Private/Language/locallang_mod.xml'); if ($table == 'tx_czsimplecal_domain_model_event') { //if: an event was changed if ($status == 'new') { // if: record is new $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extbase_Object_ObjectManager'); $indexer = $objectManager->get('Tx_CzSimpleCal_Indexer_Event'); // get the uid of the new record if (!is_numeric($id)) { $id = $tce->substNEWwithIDs[$id]; } // create the slug $event = $this->fetchEventObject($id); $event->generateSlug(); $this->getEventRepository()->update($event); // index events $indexer->create($event); $this->addFlashMessage($GLOBALS['LANG']->getLL('flashmessages.tx_czsimplecal_domain_model_event.create'), '', \TYPO3\CMS\Core\Messaging\FlashMessage::OK); } else { if ($this->haveFieldsChanged(Tx_CzSimpleCal_Domain_Model_Event::getFieldsRequiringReindexing(), $fieldArray)) { //if: record was updated and a value that requires re-indexing was changed $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extbase_Object_ObjectManager'); $indexer = $objectManager->get('Tx_CzSimpleCal_Indexer_Event'); $indexer->update($id); $this->addFlashMessage($GLOBALS['LANG']->getLL('flashmessages.tx_czsimplecal_domain_model_event.updateAndIndex'), '', \TYPO3\CMS\Core\Messaging\FlashMessage::OK); } else { $this->addFlashMessage($GLOBALS['LANG']->getLL('flashmessages.tx_czsimplecal_domain_model_event.updateNoIndex'), '', \TYPO3\CMS\Core\Messaging\FlashMessage::INFO); } } } }