Это «мой» старый языковой переключатель, который также учитывает tx_news и не связывает язык, если нет перевода для страницы или новости (это функция из USERDEF
):Меню TypoScript: USERDEF1 и USERDEF2 не работают для tx_news
temp.lang_nav = HMENU
temp.lang_nav {
special = language
special.value = 0,1
special.normalWhenNoLanguage = 0
wrap = |
1 = TMENU
1 {
NO = 1
NO {
linkWrap = <li>|</li>
stdWrap.override = DE || EN
# Build Typolink ourself
doNotLinkIt = 1
stdWrap.typolink.parameter.data = page:uid
stdWrap.typolink.additionalParams = &L=0 || &L=1
stdWrap.typolink.addQueryString = 1
stdWrap.typolink.addQueryString.exclude = L,id,cHash,no_cache
stdWrap.typolink.addQueryString.method = GET
stdWrap.typolink.useCacheHash = 1
stdWrap.typolink.no_cache = 0
}
// Active language
ACT = 1
ACT < .NO
ACT {
stdWrap.typolink.ATagParams = class="active"
}
// = NO + No translation
USERDEF1 = 1
USERDEF1 < .NO
USERDEF1{
//doNotShowLink = 1
stdWrap.typolink >
}
// = ACT + No translation
USERDEF2 = 1
USERDEF2 < .USERDEF1
}
}
Кроме того, я использовал вариант согласно https://gist.github.com/michelalbers/fb0c2e04af1d6ff94788, который имеет более современный синтаксис.
Пользователь сообщил, что внезапно состояние USERDEF
больше не пинает для нетранслируемых новостей.
На самом деле, я не могу доказать, что это действительно работало для нетранслируемых новостей раньше, но я совершенно уверен.
Что вы думаете; Жук? Неправильный синтаксис? USERDEF
не для новостей, только для страниц? Или это никогда не срабатывало?
Если последнее, есть ли способ достичь такого эффекта (не ссылаться на перевод для нетранслируемых новостей)?
Я удивлен, что он когда-либо работал, если не было перевода tx_news. – pgampe
Хм .. может быть, тогда это не так! – Urs