/** * @param string $listenerId * @return object */ public function findById($listenerId) { if ($listenerId) { $object = parent::findById($listenerId); if (!$object) { list($table, $uid, $rawListenerId) = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('-', $listenerId, false, 3); // try to generate the listener cache if ($table == 'tt_content' && $uid) { $object = $this->serviceContent->generateListenerCacheForContentElement($table, $uid); } elseif ($table == 'h' || $table == 'hInt') { $settingsHash = $uid; $encodedSettings = $rawListenerId; if (\TYPO3\CMS\Core\Utility\GeneralUtility::hmac($encodedSettings) == $settingsHash) { $loadContentFromTypoScript = str_replace('---', '.', $encodedSettings); $eventsToListen = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('e'); $object = $this->serviceContent->generateListenerCacheForHijaxPi1($loadContentFromTypoScript, $eventsToListen[$listenerId], $table == 'h'); } } if ($table == 'f') { $settingsHash = $uid; $encodedSettings = $rawListenerId; if (\TYPO3\CMS\Core\Utility\GeneralUtility::hmac($encodedSettings) == $settingsHash) { $fallbackTypoScriptConfiguration = str_replace('---', '.', $encodedSettings); $object = $this->serviceContent->generateListenerCacheForTypoScriptFallback($fallbackTypoScriptConfiguration); } } } return $object; } else { return null; } }
/** * Unserialize an object * * @param string $str * @return object */ public function unserialize($str) { $object = parent::unserialize($str); $object->setRequestUri(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL')); return $object; }