TYPO3v9:实现PageTitleProvider的“正确”方法是什么?

时间:2018-10-09 08:42:56

标签: typo3 typo3-9.x

使用TYPO3v9,我为扩展记录创建了第一个PageTitleProvider。我查看了TYPO3v9随附的三个PageTitleProvider,但是它们使用TSFE信息来输出页面标题,它们不查找数据库记录。

如果显示记录的详细信息视图,则应设置页面标题。 我目前正在使用的解决方案:

None

我对这种解决方案不是很满意,因为我必须进行额外的数据库查找。记录数据将被查询两次:第一次是在控制器的show操作中,第二次是在页面标题提供程序中。

我可以改进什么,没有数据库连接,有没有更好的解决方案?

2 个答案:

答案 0 :(得分:2)

无需其他查询即可轻松完成此操作。只需使用set方法创建PageTitleProvider。在控制器中创建此PageTitleProvider的实例,然后通过设置器设置标题。

例如:

<?php
    namespace Haassie\DemoExtension\TitleTagProvider;

    use TYPO3\CMS\Core\PageTitle\AbstractPageTitleProvider;

    class DemoPageTitleProvider extends AbstractPageTitleProvider
    {
        /**
         * @param string $title
         */
        public function setTitle(string $title)
        {
            $this->title = $title;
        }
    }

在您的控制器中:

$titleProvider = GeneralUtility::makeInstance(DemoPageTitleProvider::class);
$titleProvider->setTitle($yourOwnTitle);

只做了一个简单的测试,但这似乎可行。

答案 1 :(得分:0)

大部分时间是使用ViewHelper完成的。您可以签入news扩展名,将ViewHelper称为TitleTagViewHelper