无法重用(继承)HMENU / TMENU并重置诸如linkWrap或typolink.ATagParams之类的值

时间:2017-08-16 06:37:38

标签: typo3 typoscript typo3-8.x


我创建了一个类似的语言选择器:

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。

有人可以指出,我错过了什么或做错了什么?提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于@BerndWilkeπφ让我走上正轨,我想分享为我解决的问题。

因为我确实在语言选择器中设置了所有可用语言,但并非所有页面都完全翻译成所有语言。所以我偶然发现USERDEF1USERDEF2的使用情况。 当我将其添加到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
}

之后,移动语言选择器按预期呈现。