如何使用缓存在TYPO3中生成评级元标记?
我想在我的TYPO3页面中生成一个丰富的评分片段。评级信息是通过API获取的,因此我需要某种缓存机制 我有一些关于TYPO3扩展的基本知识和经验,但我不确定最干净的解决方案。我可以使用TYPO3元标记API呈现元标记,并使用TYPO3缓存框架缓存获取的信息 但我不确定在哪里存储逻辑,以便在每次页面访问时执行它。出于明显的原因,我不想使用内容插件。我是否应该设置一个控制器并使用一些钩子调用控制器的函数如何使用缓存在TYPO3中生成评级元标记?,typo3,typo3-extensions,Typo3,Typo3 Extensions,我想在我的TYPO3页面中生成一个丰富的评分片段。评级信息是通过API获取的,因此我需要某种缓存机制 我有一些关于TYPO3扩展的基本知识和经验,但我不确定最干净的解决方案。我可以使用TYPO3元标记API呈现元标记,并使用TYPO3缓存框架缓存获取的信息 但我不确定在哪里存储逻辑,以便在每次页面访问时执行它。出于明显的原因,我不想使用内容插件。我是否应该设置一个控制器并使用一些钩子调用控制器的函数 谢谢你的帮助 您可以查看TypoScriptFrontendController类中的tslib
谢谢你的帮助 您可以查看
TypoScriptFrontendController
类中的tslib/class.tslib_-fe.php
钩子
选择正确的一个(可能是tslib_fe-PostProc
),然后执行以下操作:
1) 在ext\u localconf.php中注册钩子
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['tslib_fe-PostProc'][] = \Vendor\Name\Hook\AdditionalMetaData::class . '->addRating';
2) 使用以下方法创建类
<?php
namespace Vendor\Name\Hook;
class AdditionalMetaData
{
/**
* @param array $parameters
* @return void
*/
public function addRating(&$parameters)
{
/** @var TypoScriptFrontendController $tsfe */
$tsfe = &$parameters['pObj'];
// Do your logic here...
}
}
您使用的是哪一版本的TYPO3?@StatiX目前仍然是V8 LTS。非常有用,谢谢!如果将来有人想使用此解决方案,请注意两件事:1)类路径需要添加到composer.json中的autoload部分,2)hooktslib_fe-PostProc
不受欢迎,因为Typo3 v9.5支持中间件解决方案。