1313
1414use B13 \Menus \CacheHelper ;
1515use B13 \Menus \Domain \Repository \MenuRepository ;
16+ use B13 \Menus \Event \CacheIdentifierForMenuEvent ;
17+ use Psr \EventDispatcher \EventDispatcherInterface ;
1618use TYPO3 \CMS \Core \Context \Context ;
1719use TYPO3 \CMS \Core \Context \LanguageAspect ;
1820use TYPO3 \CMS \Core \Context \UserAspect ;
@@ -30,12 +32,14 @@ abstract class AbstractMenuCompiler implements SingletonInterface
3032 protected MenuRepository $ menuRepository ;
3133 protected CacheHelper $ cache ;
3234 protected Context $ context ;
35+ protected EventDispatcherInterface $ eventDispatcher ;
3336
34- public function __construct (Context $ context , CacheHelper $ cache , MenuRepository $ menuRepository )
37+ public function __construct (Context $ context , CacheHelper $ cache , MenuRepository $ menuRepository, EventDispatcherInterface $ eventDispatcher )
3538 {
3639 $ this ->context = $ context ;
3740 $ this ->menuRepository = $ menuRepository ;
3841 $ this ->cache = $ cache ;
42+ $ this ->eventDispatcher = $ eventDispatcher ;
3943 }
4044
4145 /**
@@ -67,6 +71,9 @@ protected function generateCacheIdentifierForMenu(string $prefix, array $configu
6771 $ visibility = $ visibilityAspect ->includeHiddenPages () ? '-with-hidden ' : '' ;
6872 $ root = $ this ->getCurrentSite ()->getRootPageId ();
6973 $ identifier = $ prefix . '-root- ' . $ root . '-language- ' . $ language . '-groups- ' . md5 (implode ('_ ' , $ groupIds )) . '- ' . $ visibility . '- ' . substr (md5 (json_encode ($ configuration )), 0 , 10 );
74+ $ event = new CacheIdentifierForMenuEvent ($ identifier );
75+ $ this ->eventDispatcher ->dispatch ($ event );
76+ $ identifier = $ event ->getIdentifier ();
7077 return $ identifier ;
7178 }
7279
0 commit comments