TYPO3:tx-news的类别树,仅在选择main时呈现子树

时间:2017-03-16 05:27:47

标签: typo3 fluid typo3-7.6.x tx-news

我覆盖Templates/Styles/TWB/Templates/Category/List.html以使类别菜单的行为与简介包中的侧边栏菜单完全相同(仅当选择了主菜单时,子菜单才会显示)。

如果我添加静态模板“新闻样式Twitter Bootstrap(新闻)”我几乎就在那里,只有在选择了主要类别时才打开子类别并不困难(我需要大量的类别/子类别),但是当选择一个子时它也应该打开:

...
    <f:if condition="{0:category.item.uid,1:category.item.uid} == {0:overwriteDemand.categories,1:category.children.{overwriteDemand.categories}.parent}">
        <f:if condition="{category.children}">
            <f:render section="categoryTree" arguments="{categories: category.children,overwriteDemand:overwriteDemand,class:''}" />
        </f:if>
    </f:if>
...

我不知道如何使用{overwriteDemand.categories}作为匹配值的键...任何人都可以指出正确的语法

更新:我尝试将自定义ViewHelper应用为this post suggests,但使用TYPO3 V7.6.16时遇到错误should be compatible with TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper:‌​:render(),因此无法尝试使用变量overwriteDemand.categories以另一种方式......

1 个答案:

答案 0 :(得分:0)

从TYPO3开始,可以动态访问流体中的变量。在此查看Whats New Slides:https://typo3.org/download/release-notes/whats-new/并在PDF中搜索“动态变量名称部件”。

在TYPO3 7中,“vhs”-Extension提供a ViewHelper来完成相同的工作,但将ViewHelper嵌套在复杂的f:if-condition中更加困难。如果可能,请尝试TYPO3 8.如果不可能,您可以编写自己的ViewHelper来解决这个逻辑问题。