我创建了一个类似的语言选择器:
lib.language = HMENU
lib.language {
special = language
special.value = 0,1,2
special.normalWhenNoLanguage = 0
wrap =
1 = TMENU
1 {
noBlur = 1
NO = 1
NO {
linkWrap = |
doNotLinkIt = 1
stdWrap.override = deutsch || english || français
stdWrap {
typolink {
parameter.data = page:uid
additionalParams = &L=0 || &L=1 || &L=2
ATagParams = class="dropdown-item" hreflang="de-DE" || class="dropdown-item" hreflang="en-GB" || class="dropdown-item" hreflang="fr-FR"
addQueryString = 1
addQueryString.exclude = L,id,cHash,no_cache
addQueryString.method = GET
useCacheHash = 1
no_cache = 0
forceAbsoluteUrl = 1
}
}
}
ACT < .NO
ACT.ATagParams = class="dropdown-item active"
}
}
对于移动设备,我希望该菜单可以继承,但是使用不同的linkWrap(和类):
lib.languageMobile < lib.language
lib.languageMobile.1.NO {
linkWrap = <li class="1"><div>|</div></li>
stdWrap.typolink {
ATagParams = class="btn btn-sub" hreflang="de-DE" || class="btn btn-sub" hreflang="en-GB" || class="btn btn-sub" hreflang="fr-FR"
ATagBeforeWrap = 1
wrap = <span>|</span>
}
}
lib.languageMobile.1.ACT.ATagParams = class="btn btn-sub active"
但是,lib.languageMobile
专门重置的所有值都不会在前端呈现。 TypoScript对象浏览器确实显示了设置的值。
我没有找到任何关于继承的HMENU / TMENU的重置值不适用,或者存在类似的已知问题。
我使用的是最新的TYPO3 8.7 LTS:8.7.4。
有人可以指出,我错过了什么或做错了什么?提前谢谢。
答案 0 :(得分:0)
由于@BerndWilkeπφ让我走上正轨,我想分享为我解决的问题。
因为我确实在语言选择器中设置了所有可用语言,但并非所有页面都完全翻译成所有语言。所以我偶然发现USERDEF1
和USERDEF2
的使用情况。
当我将其添加到lib.language
后,我将lib.languageMobile
更改为:
lib.languageMobile < lib.language
lib.languageMobile.1 {
NO {
linkWrap = <li class="1"><div>|</div></li>
stdWrap.typolink {
ATagParams = class="btn btn-sub" hreflang="de-DE" || class="btn btn-sub" hreflang="en-GB" || class="btn btn-sub" hreflang="fr-FR"
ATagBeforeWrap = 1
wrap = <span>|</span>
}
}
ACT < .NO
ACT.ATagParams = class="btn btn-sub active"
USERDEF1 < .NO
USERDEF2 < .ACT
}
之后,移动语言选择器按预期呈现。