From 40833d4aa125d7b39446dc60c2f80da4ab1ed730 Mon Sep 17 00:00:00 2001 From: Stefan Galinski <stefan@sgalinski.de> Date: Thu, 24 Nov 2022 19:41:08 +0100 Subject: [PATCH] [FEATURE] Clear the registry cache entries with the regular frontend cache clear action --- Classes/Hooks/ClearCacheHook.php | 39 ++++++++++++++++++++++++++++++++ ext_localconf.php | 12 ++++------ 2 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 Classes/Hooks/ClearCacheHook.php diff --git a/Classes/Hooks/ClearCacheHook.php b/Classes/Hooks/ClearCacheHook.php new file mode 100644 index 0000000..4259026 --- /dev/null +++ b/Classes/Hooks/ClearCacheHook.php @@ -0,0 +1,39 @@ +<?php + +/*************************************************************** + * Copyright notice + * (c) sgalinski Internet Services (https://www.sgalinski.de) + * All rights reserved + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +namespace SGalinski\SgVimeo\Hooks; + +use TYPO3\CMS\Core\Registry; +use TYPO3\CMS\Core\Utility\GeneralUtility; + +/** + * System Clear Hook + */ +class ClearCacheHook { + /** + * Remove all Vimeo cache entries from the registry + * + * @return void + */ + public function clearCachePostProc(array $params) { + $registry = GeneralUtility::makeInstance(Registry::class); + $registry->removeAllByNamespace('sg_vimeo'); + } +} diff --git a/ext_localconf.php b/ext_localconf.php index 07e078b..03767eb 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -32,19 +32,15 @@ defined('TYPO3') or die(); [ \SGalinski\SgVimeo\Controller\VimeoController::class => 'index', - ], - // non-cacheable actions - [ - ] ); -//include Plugin sg_twitter +// include Plugin sg_twitter \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig( '@import "EXT:sg_vimeo/Configuration/TsConfig/Page/NewContentElementWizard.tsconfig"' ); -//Register Icons +// Register Icons $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class); $iconRegistry->registerIcon( 'extension-sg_vimeo', @@ -52,6 +48,8 @@ $iconRegistry->registerIcon( ['source' => 'EXT:sg_vimeo/Resources/Public/Icons/vimeo.svg'] ); -//Hooks +// Hooks $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem']['sg_vimeo'] = \SGalinski\SgVimeo\Hooks\PageLayoutView\PluginRenderer::class; +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearCachePostProc']['sg_vimeo_clearcache'] = + \SGalinski\SgVimeo\Hooks\ClearCacheHook::class . '->clearCachePostProc'; -- GitLab