如何在 TYPO3 9.5 中使用 f:link.typolink viewhelper 将链接标题设置为 Linktext

m4a*_*m4a 4 fluid typo3-9.x

我已经构建了一个自定义内容元素,其中包含来自“header_link”字段的链接。

如何将该链接的标题设置为链接文本?

在流体模板中,我以这种方式使用 link.typolink viewhelper:

<f:link.typolink parameter="{data.header_link}" class="btn btn-primary" />
Run Code Online (Sandbox Code Playgroud)

这导致

<a href="/page" title="link title" class="btn btn-primary">Page Title</a>
Run Code Online (Sandbox Code Playgroud)

如何将链接标题设置为链接文本而不是页面标题?

Hen*_*edi 10

从 TYPO3 10.3 开始,可以这样做

<f:link.typolink parameter="{data.header_link}" parts-as="parts">
  {parts.title}
</f:link.typolink>
Run Code Online (Sandbox Code Playgroud)

在变更日志文档中阅读更多内容

这些是你可以使用的所有部件

<f:link.typolink parameter="123 _top news title" parts-as="parts">
   {parts.url}
   {parts.target}
   {parts.class}
   {parts.title}
   {parts.additionalParams}
</f:link.typolink>
Run Code Online (Sandbox Code Playgroud)


Oli*_*der 6

<f:link.typolink parameter="{data.header_link}" title="Title Attribute">
    Custom Link Text
</f:link.typolink>
Run Code Online (Sandbox Code Playgroud)

结果是

<a href="/page" title="Title Attribute">
    Custom Link Text
</a>
Run Code Online (Sandbox Code Playgroud)

参考


更新1

(根据附加评论更新)

组合参数字符串t3://page?uid=123 - - "title"( parameter target class title additional parameters) 应该只对生成锚标记有影响。没有开箱即用的方法可以将title零件用作流体模板中的变量。

为此,必须创建一个自定义 ViewHelper,例如

class ParameterPartViewHelper extends AbstractViewHelper
{
    public function initializeArguments()
    {
        $this->registerArgument('part', 'string', 'Parameter part to be extracted', true);
    } 

    public function render(): string
    {
        $part = $this->arguments['part'] ?? null;
        $typoLinkCodec = GeneralUtility::makeInstance(TypoLinkCodecService::class);
        return $typoLinkCodes->decode($this->renderChildren())[$part] ?? '';
    }
Run Code Online (Sandbox Code Playgroud)

可以在流体中使用,例如像这样

<f:link.typolink parameter="{data.header_link}" title="Title Attribute">
    {data.header_link -> my:parameterPart(part:'title')}
</f:link.typolink>
Run Code Online (Sandbox Code Playgroud)

  • 请参阅 https://review.typo3.org/c/Packages/TYPO3.CMS/+/62769 作为 TYPO3 v10 的功能 (2认同)