Пример #1
0
 /**
  * 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);
             }
         }
     }
 }