使用TYPO3v9,我为扩展记录创建了第一个PageTitleProvider。我查看了TYPO3v9随附的三个PageTitleProvider,但是它们使用TSFE信息来输出页面标题,它们不查找数据库记录。
如果显示记录的详细信息视图,则应设置页面标题。 我目前正在使用的解决方案:
None
我对这种解决方案不是很满意,因为我必须进行额外的数据库查找。记录数据将被查询两次:第一次是在控制器的show操作中,第二次是在页面标题提供程序中。
我可以改进什么,没有数据库连接,有没有更好的解决方案?
答案 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
。