tx_news - OverwriteDemand as Pagetitle

时间:2018-04-03 17:50:27

标签: typo3 fluid tx-news

我有一个“归档”页面,其中包含列表视图元素和类别菜单 以下代码位于List.html模板的顶部:

<!-- list title --> 
<f:if condition="{news.0.categories}">
    <f:then>
        <f:for each="{news.0.categories}" as="category">
            <n:titleTag>
                <f:format.htmlentitiesDecode><f:translate key="archive" /> - {category.title}</f:format.htmlentitiesDecode>
            </n:titleTag>
            <div class="list-title">
                <h1><f:translate key="archive" /> - {category.title}</h1>
            </div>
        </f:for>
    </f:then>
</f:if>

基本上将Pagetitle设置为列表中显示的Category Title。 这是有效的,因为我一次只显示一个类别。

我已将此代码添加到Detail.html模板中:

<!-- Author link -->
<f:if condition="{newsItem.author}">
    <span class="news-list-author">
        <f:link.page title="{newsItem.author}" pageUid="{settings.detailPid}" additionalParams="{tx_news_pi1:{overwriteDemand:{author: newsItem.author, categories: categories}}}">
            {newsItem.author}
        </f:link.page>
    </span>
</f:if>

这会将用户发送到同一个存档页面,但现在显示属于作者的所有类别中的所有新闻。这是所希望的。但是,Pagetitle显然只是显示第一个新闻项目的类别标题。

问题:如何将Pagetitle设置为“OverwriteDemand”中的内容? (很明显,我不明白OverwriteDemand是如何工作的)

1 个答案:

答案 0 :(得分:0)

您可以使用{overwriteDemand}访问此内容,以便进行测试我建议使用<f:debug>{overwriteDemand}</f:debug>

因此,如果您想将作者添加到标题中,请使用

<n:titleTag>
  <f:format.htmlentitiesDecode>
    {overwriteDemand.author}
  </f:format.htmlentitiesDecode>
</n:titleTag>

然而,由于这可能会因很多条件而变得复杂,我宁愿建议将TitleTagViewHelper复制到您的扩展,添加您需要的所有参数并使用普通PHP执行逻辑。当然,在流体中做所有事情仍然很好。