Typo3 Fluid DirectoryViewHelper:突出显示菜单中的当前页面

时间:2017-10-11 12:40:50

标签: menu typo3 fluid

我使用的是Mittwald Typo3 Starterkit(Online-Demo)。我发现这个Starterkit使用了Typo3流体目录助手。如何为活动/选定页面指定特定的CSS类(我想突出显示菜单中的当前页面)?

到现在为止,我使用Typo3(HMENU / TMENU / ACT)实现了我的菜单,但是这个流量目录助手我完全陷入困境。

根据Fluid Documentation,可能有两种方式:

  • classActive / classCurrent(string)
  • linkActive / linkCurrent(boolean)

原始代码是:

 <!-- mainmenu begin -->
    <ce:menu.directory pageUids="{0: '{mainMenuStartingPid}'}" as="pages" levelAs="level" maximumLevel="2">
        <f:if condition="{pages}">
            <ul id="{f:if(condition:'{mainMenuClass}',then:'c{mainMenuClass}',else:'mainmenu')}">
                <f:for each="{pages}" as="page">
                    <li>
                        <f:link.page pageUid="{page.uid}">
                            {page.title}
                        </f:link.page>
                        <!-- submenu deleted for better overview -->
                    </li>
                </f:for>
            </ul>
        </f:if>
    </ce:menu.directory>
    <!-- mainmenu close -->

我的尝试没有用(如果没有执行条件linkCurrent,则没有出现“current”类):

<!-- mainmenu begin -->
    <ce:menu.directory pageUids="{0: '{mainMenuStartingPid}'}" as="pages" levelAs="level" maximumLevel="2">
        <f:if condition="{pages}">
            <ul id="{f:if(condition:'{mainMenuClass}',then:'c{mainMenuClass}',else:'mainmenu')}">
                <f:for each="{pages}" as="page">
                    <f:if condition="{linkCurrent}">
                        <li class="current">
                            <f:link.page pageUid="{page.uid}">
                                {page.title}
                            </f:link.page>
                            <!-- submenu deleted for better overview -->
                        </li>
                    </f:if>
                    <f:else>
                        <li>
                            <f:link.page pageUid="{page.uid}">
                                {page.title}
                            </f:link.page>
                            <!-- submenu deleted for better overview -->
                        </li>
                    </f:else>
                </f:for>
            </ul>
        </f:if>
    </ce:menu.directory>
    <!-- mainmenu close -->

有没有人知道这个流体目录助手是如何工作的?不幸的是,周围的例子很少。非常感谢你!

1 个答案:

答案 0 :(得分:0)

注意,ce:menu.directory ViewHelper与链接的VHS Menu DirectoryViewHelper不同。

FluidStyledContent ViewHelpers通常使用ce:前缀,它也有菜单查看器。

如果您想知道每个page行可用的属性,您应该使用f:debug ViewHelper来检查变量。

<f:debug>{page}</f:debug>

我从未尝试过ViewHelper,但看起来它没有插入任何有关的信息,如果它是当前页面,或者它是否活跃&#34; (在rootline中),就像你习惯使用HMENU内容对象一样。

您可能希望将ViewHelper替换为VHS扩展菜单ViewHelper。