3

如何向 Typo3 的“清除所有缓存”操作添加任务?

我已经编写了一个带有自己的基于 XML 文件的缓存系统的前端插件,我想让管理员可以使用标准按钮刷新此缓存。

是否有可能将 pe user_extension_pi1->flushAll() 注册到系统的缓存机制?

4

2 回答 2

4

你需要为此使用钩子。

在 ext_localconf.php 中写:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearCachePostProc'][] = 'EXT:yourext/class.tx_yourext_hooks.php:tx_yourext_hooks->clearCachePostProc';

然后在 class.tx_yourext_hooks.php 中使用函数 clearCachePostProc 创建类 tx_yourext_hooks

function clearCachePostProc(&$params, &$pObj) {

调试 $params 以查看您可以在此函数中使用哪些参数。

于 2013-06-01T07:47:52.760 回答
3

如果要注册单独的缓存清除钩子

在 ext_localconf.php 中注册以下内容

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['additionalBackendItems']['cacheActions']['custom_key'] =
 'NAMESPACE_OF_CLASS';

该类必须具有实现

\TYPO3\CMS\Backend\Toolbar\ClearCacheActionsHookInterface

并覆盖它的方法

public function manipulateCacheActions(&$cacheActions, &$optionValues) {
    //YOUR CUSTOM CODE OF OVERRIDE
}
于 2019-06-26T11:40:13.787 回答