diff --git a/typo3/sysext/frontend/Classes/Hooks/TreelistCacheUpdateHooks.php b/typo3/sysext/frontend/Classes/Hooks/TreelistCacheUpdateHooks.php index 4c2ada6a837ec2d5e624fc8bf83fb6abb6f94586..4f5763ac52ecc1d75c69f29aaac5150351a854e4 100644 --- a/typo3/sysext/frontend/Classes/Hooks/TreelistCacheUpdateHooks.php +++ b/typo3/sysext/frontend/Classes/Hooks/TreelistCacheUpdateHooks.php @@ -15,6 +15,7 @@ namespace TYPO3\CMS\Frontend\Hooks; */ use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\DataHandling\DataHandler; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -250,8 +251,14 @@ class TreelistCacheUpdateHooks } } if (!empty($rootLineIds)) { - $rootLineIdsImploded = implode(',', $rootLineIds); - $this->getDatabaseConnection()->exec_DELETEquery('cache_treelist', 'pid IN(' . $rootLineIdsImploded . ')'); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) + ->getQueryBuilderForTable('cache_treelist'); + $queryBuilder + ->delete('cache_treelist') + ->where( + $queryBuilder->expr()->in('pid', $rootLineIds) + ) + ->execute(); } } @@ -264,7 +271,14 @@ class TreelistCacheUpdateHooks */ protected function clearCacheWhereUidInTreelist($affectedPage) { - $this->getDatabaseConnection()->exec_DELETEquery('cache_treelist', $this->getDatabaseConnection()->listQuery('treelist', $affectedPage, 'cache_treelist')); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) + ->getQueryBuilderForTable('cache_treelist'); + $queryBuilder + ->delete('cache_treelist') + ->where( + $queryBuilder->expr()->inSet('treelist', (int)$affectedPage) + ) + ->execute(); } /** @@ -277,9 +291,15 @@ class TreelistCacheUpdateHooks */ protected function setCacheExpiration($affectedPage, $expirationTime) { - $this->getDatabaseConnection()->exec_UPDATEquery('cache_treelist', $this->getDatabaseConnection()->listQuery('treelist', $affectedPage, 'cache_treelist'), array( - 'expires' => $expirationTime - )); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) + ->getQueryBuilderForTable('cache_treelist'); + $queryBuilder + ->update('cache_treelist') + ->where( + $queryBuilder->expr()->inSet('treelist', (int)$affectedPage) + ) + ->set('expires', $expirationTime) + ->execute(); } /** @@ -289,7 +309,14 @@ class TreelistCacheUpdateHooks */ protected function removeExpiredCacheEntries() { - $this->getDatabaseConnection()->exec_DELETEquery('cache_treelist', 'expires <= ' . $GLOBALS['EXEC_TIME']); + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) + ->getQueryBuilderForTable('cache_treelist'); + $queryBuilder + ->delete('cache_treelist') + ->where( + $queryBuilder->expr()->lte('expires', (int)$GLOBALS['EXEC_TIME']) + ) + ->execute(); } /** @@ -349,14 +376,4 @@ class TreelistCacheUpdateHooks } return $actions; } - - /** - * Returns the database connection - * - * @return \TYPO3\CMS\Core\Database\DatabaseConnection - */ - protected function getDatabaseConnection() - { - return $GLOBALS['TYPO3_DB']; - } }