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

How to generate a rating meta tag in TYPO3 with caching?

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

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

但我不确定将逻辑存储在哪里以便在每次访问页面时执行。出于显而易见的原因,我不想使用内容插件。我应该设置一个 Controller 并使用例如调用 Contoller 的函数吗?一些钩子?

感谢您的帮助!

您可以查看 TypoScriptFrontendController class 中的 tslib/class.tslib_fe.php 挂钩。

选择正确的(可能是tslib_fe-PostProc)然后做这样的事情:

1) 在ext_localconf.php

中注册钩子
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['tslib_fe-PostProc'][] = \Vendor\Name\Hook\AdditionalMetaData::class . '->addRating';

2) 使用以下方法创建您的 class

<?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...
    }
}