/** * Adds data to the path cache. Cache ntry should have page path, language id and page id set. * * @param PathCacheEntry $newCacheEntry * @return void */ protected function putToPathCache(PathCacheEntry $newCacheEntry) { $pagePath = $newCacheEntry->getPagePath(); $cacheEntry = $this->cache->getPathFromCacheByPagePath($this->rootPageId, $this->detectedLanguageId, $newCacheEntry->getMountPoint(), $pagePath); if (!$cacheEntry) { $cacheEntry = $newCacheEntry; $cacheEntry->setRootPageId($this->rootPageId); $cacheEntry->setLanguageId($this->detectedLanguageId); } if ($cacheEntry->getExpiration() !== 0) { $cacheEntry->setExpiration(0); } $cacheEntry->setPagePath($pagePath); $this->cache->putPathToCache($cacheEntry); }
/** * Puts path to the cache. * * @param PathCacheEntry $cacheEntry * @return void */ public function putPathToCache(PathCacheEntry $cacheEntry) { $data = array('expire' => $cacheEntry->getExpiration(), 'language_id' => $cacheEntry->getLanguageId(), 'mpvar' => $cacheEntry->getMountPoint(), 'page_id' => $cacheEntry->getPageId(), 'pagepath' => $cacheEntry->getPagePath(), 'rootpage_id' => $cacheEntry->getRootPageId()); if ($cacheEntry->getCacheId()) { // TODO Expire all other entries $this->databaseConnection->exec_UPDATEquery('tx_realurl_pathcache', 'cache_id=' . $this->databaseConnection->fullQuoteStr($cacheEntry->getCacheId(), 'tx_realurl_pathcache'), $data); } else { $this->databaseConnection->exec_INSERTquery('tx_realurl_pathcache', $data); $cacheEntry->setCacheId($this->databaseConnection->sql_insert_id()); } }