Меню TypoScript: состояния USERDEF1 и USERDEF2 не работают для tx_news
Это "мой" старый языковой переключатель, который также учитывает tx_news и не связывает язык, если нет перевода для страницы или новости (это функция USERDEF
):
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
не для новостей, только для страниц? Или это могло вообще не сработать?
Если последнее, есть ли способ добиться такого эффекта (не ссылаться на перевод для непереведенных новостей)?
1 ответ
Видимо, то, что я прошу, это не фича.
Обходной путь для предотвращения попадания пользователей на глобальную страницу 404 при использовании переключателя lang на непереведенном элементе состоит в создании отдельной страницы 404 для новостей с более четким объяснением.
Если вы установили что-то вроде
'pageNotFound_handling' => 'USER_FUNCTION:typo3conf/ext/template/Classes/Various/noAccess.php:noAccess->pageNotFound',
в localconf вы можете сделать эту работу там.