我有一个“归档”页面,其中包含列表视图元素和类别菜单 以下代码位于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是如何工作的)
答案 0 :(得分:0)
您可以使用{overwriteDemand}
访问此内容,以便进行测试我建议使用<f:debug>{overwriteDemand}</f:debug>
。
因此,如果您想将作者添加到标题中,请使用
<n:titleTag>
<f:format.htmlentitiesDecode>
{overwriteDemand.author}
</f:format.htmlentitiesDecode>
</n:titleTag>
然而,由于这可能会因很多条件而变得复杂,我宁愿建议将TitleTagViewHelper
复制到您的扩展,添加您需要的所有参数并使用普通PHP执行逻辑。当然,在流体中做所有事情仍然很好。