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