Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用缓存在TYPO3中生成评级元标记?_Typo3_Typo3 Extensions - Fatal编程技术网

如何使用缓存在TYPO3中生成评级元标记?

如何使用缓存在TYPO3中生成评级元标记?,typo3,typo3-extensions,Typo3,Typo3 Extensions,我想在我的TYPO3页面中生成一个丰富的评分片段。评级信息是通过API获取的,因此我需要某种缓存机制 我有一些关于TYPO3扩展的基本知识和经验,但我不确定最干净的解决方案。我可以使用TYPO3元标记API呈现元标记,并使用TYPO3缓存框架缓存获取的信息 但我不确定在哪里存储逻辑,以便在每次页面访问时执行它。出于明显的原因,我不想使用内容插件。我是否应该设置一个控制器并使用一些钩子调用控制器的函数 谢谢你的帮助 您可以查看TypoScriptFrontendController类中的tslib

我想在我的TYPO3页面中生成一个丰富的评分片段。评级信息是通过API获取的,因此我需要某种缓存机制

我有一些关于TYPO3扩展的基本知识和经验,但我不确定最干净的解决方案。我可以使用TYPO3元标记API呈现元标记,并使用TYPO3缓存框架缓存获取的信息

但我不确定在哪里存储逻辑,以便在每次页面访问时执行它。出于明显的原因,我不想使用内容插件。我是否应该设置一个控制器并使用一些钩子调用控制器的函数


谢谢你的帮助

您可以查看
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)hook
tslib_fe-PostProc
不受欢迎,因为Typo3 v9.5支持中间件解决方案。