Меню 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 вы можете сделать эту работу там.

Другие вопросы по тегам