Меню 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 не для новостей, а только для страниц? А может это вообще никогда не работало?

Если последнее, то есть ли способ добиться такого эффекта (не давать ссылку на перевод для непереведенных новостей)?


person Urs    schedule 26.10.2016    source источник
comment
Я удивлен, что это когда-либо работало, если не было перевода tx_news.   -  person pgampe    schedule 26.10.2016
comment
Хм.. может тогда и не было!   -  person Urs    schedule 26.10.2016


Ответы (1)


Видимо, то, что я прошу, не является функцией.

Обходной путь для предотвращения перехода пользователей на глобальную страницу 404 при использовании переключателя языка для непереведенного элемента — создание отдельной страницы 404 для новостей с более четким объяснением.

Если вы установили что-то вроде

'pageNotFound_handling' => 'USER_FUNCTION:typo3conf/ext/template/Classes/Various/noAccess.php:noAccess->pageNotFound',

в localconf, вы можете сделать эту работу там.

person Urs    schedule 28.10.2016