我的下拉菜单有一个小错误:li
组需要用ul
包装,但是每个li
现在都包装了ul
。< / p>
打字稿是:
subparts.BREADCRUMBNAV-INTERACTIVE1 = HMENU
subparts.BREADCRUMBNAV-INTERACTIVE1.special = directory
subparts.BREADCRUMBNAV-INTERACTIVE1.special.value.data = leveluid:1
subparts.BREADCRUMBNAV-INTERACTIVE1.wrap = <div class="breadcrumb-nav1">|</div>
subparts.BREADCRUMBNAV-INTERACTIVE1.1 = TMENU
subparts.BREADCRUMBNAV-INTERACTIVE1.1 {
expAll = 1
noBlur = 1
NO.wrapItemAndSub = <ul class="dropdown">|</ul>
NO.allWrap = <li class="dropdown-item1">|</li>
ACT = 1
ACT.allWrap = |
ACT.ATagParams = class="btn btn-secondary clickme1" style="order:-1;"
}
输出为:
<div class="breadcrumb-nav1">
<a href="frances.html" class="btn btn-secondary clickme1" style="order:-1;">Francés</a>
<ul class="dropdown">
<li class="dropdown-item1"><a href="ingles.html">Inglés</a></li>
</ul>
<ul class="dropdown">
<li class="dropdown-item1"><a href="aleman.html">Alemán</a></li>
</ul>
<ul class="dropdown">
<li class="dropdown-item1"><a href="italiano.html">Italiano</a></li>
</ul>
</div>
但输出应为:
<div class="breadcrumb-nav1">
<a href="frances.html" class="btn btn-secondary clickme1" style="order:-1;">Francés</a>
<ul class="dropdown">
<li class="dropdown-item1"><a href="ingles.html">Inglés</a></li>
<li class="dropdown-item1"><a href="aleman.html">Alemán</a></li>
<li class="dropdown-item1"><a href="italiano.html">Italiano</a></li>
</ul>
</div>
答案 0 :(得分:0)
这是一种解决方法或更简单的答案,尽管如此,在某些情况下它可能还是有用的。要获得100%解决问题的解决方案,请查看此页面上的第二个答案。
关于包装您的挑战相当困难,但是主要的解决方案不是在TypoScript级别解决问题,而是在CSS级别解决了问题。
因此,您不需要所需的结构,而是可以依靠CSS property order
来获得当前显示在顶部的语言。
详细来说,这意味着您的菜单结构如下所示:
<div class="breadcrumb-nav1">
<ul class="dropdown">
<li class="dropdown-item1"><a href="ingles.html">Inglés</a></li>
<li class="btn btn-secondary clickme1" style="order:-1;"><a href="frances.html" >Francés</a></li>
<li class="dropdown-item1"><a href="aleman.html">Alemán</a></li>
<li class="dropdown-item1"><a href="italiano.html">Italiano</a></li>
</ul>
</div>
其余的工作很简单,您无需对TypoScript进行过多思考:
subparts.BREADCRUMBNAV-INTERACTIVE1 = HMENU
subparts.BREADCRUMBNAV-INTERACTIVE1.special = directory
subparts.BREADCRUMBNAV-INTERACTIVE1.special.value.data = leveluid:1
subparts.BREADCRUMBNAV-INTERACTIVE1.wrap = <div class="breadcrumb-nav1">|</div>
subparts.BREADCRUMBNAV-INTERACTIVE1.1 = TMENU
subparts.BREADCRUMBNAV-INTERACTIVE1.1 {
expAll = 1
noBlur = 1
wrap = <ul class="dropdown">|</ul>
NO.linkWrap = <li class="dropdown-item1">|</li>
ACT = 1
ACT.linkWrap = <li class="btn btn-secondary clickme1" style="order:-1;">|</li>
}
您现在仍然可以像这样简化它,结果应该与上面相同:
subparts.BREADCRUMBNAV-INTERACTIVE1 = HMENU
subparts.BREADCRUMBNAV-INTERACTIVE1.special = directory
subparts.BREADCRUMBNAV-INTERACTIVE1.special.value.data = leveluid:1
subparts.BREADCRUMBNAV-INTERACTIVE1.wrap = <div class="breadcrumb-nav1"><ul class="dropdown">|</ul></div>
subparts.BREADCRUMBNAV-INTERACTIVE1.1 = TMENU
subparts.BREADCRUMBNAV-INTERACTIVE1.1 {
expAll = 1
noBlur = 1
NO.linkWrap = <li class="dropdown-item1">|</li>
ACT = 1
ACT.linkWrap = <li class="btn btn-secondary clickme1" style="order:-1;">|</li>
}
对于所有包装,您可以将其用于每个链接here is still the reference,尽管您可能永远不需要它。
我要说的另一件事是,您似乎使用目录来分隔语言。如果使用此方法在每个页面上使用翻译,则可以使用TYPO3 which is described here的公共语言菜单,通常,您可能仅用directory
替换了关键字language
。
答案 1 :(得分:0)
要完全实现所需的结构,TypoScript必须与我的第一个答案不同,并且更为复杂。
当前,无法使用函数typolink
创建链接并检查其active
状态。因此,在下面,我将整个菜单创建为COA
,并为单独的活动链接创建一个HMENU,并为未活动项目列表创建一个HMENU。
subparts.BREADCRUMBNAV-INTERACTIVE1 = COA
subparts.BREADCRUMBNAV-INTERACTIVE1 {
wrap = <div class="breadcrumb-nav1">|</div>
10 = HMENU
10 {
special = directory
special.value.data = leveluid:1
1 = TMENU
1 {
expAll = 1
noBlur = 1
NO = 1
NO.doNotShowLink = 1
ACT = 1
ACT.ATagParams = class="btn btn-secondary clickme1" style="order:-1;"
}
}
20 = HMENU
20 {
special = directory
special.value.data = leveluid:1
wrap = <ul class="dropdown">|</ul>
1 = TMENU
1 {
expAll = 1
noBlur = 1
NO.linkWrap = <li class="dropdown-item1">|</li>
ACT = 1
ACT.doNotShowLink = 1
}
}
}
编辑后
...现在已经过测试,不过还是让我知道某些东西是否无法正常工作。