Typo3: не отображать языковую ссылку, если перевод недоступен - PullRequest
1 голос
/ 30 марта 2012

У меня есть это меню языка:

tmpl.NavLang  = HMENU
tmpl.NavLang {
  special=language
  special.value = 0,1,2,3

  1 = TMENU
  1 {
    NO = 1
    NO {
      stdWrap.htmlSpecialChars = 1
      stdWrap.override = DE || EN || FR || PL
      ATagTitle = Deutsch || English || Francais || Polski
    }
    ACT < .NO
    ACT.doNotLinkIt = 1
    ACT.linkWrap = <span>|</span>
  }
}

Если я нахожусь на странице на английском языке, на которой, например, нет перевода на французский язык, я хочу скрыть FR из меню. Возможно ли это?

Спасибо!

Ответы [ 2 ]

9 голосов
/ 31 марта 2012

от цреф:

Когда TSFE-> sys_language_uid соответствует uid sys_language для элемента, состояние устанавливается в ACT, в противном случае НЕТ. Однако, если страница недоступна из-за настроек локализации страниц (которые могут отключить переводы) или если не найдена запись альтернативного языка страниц (можно отключить с помощью .normalWhenNoLanguage, см. Ниже), для состояния неактивно устанавливается состояние USERDEF1 items и USERDEF2 для активных предметов. Таким образом, в общей сложности есть четыре состояния для создания дизайна. В этом случае рекомендуется отключить ссылку на элементы меню, отображаемые с помощью USERDEF1 и USERDEF2, поскольку они отключены именно потому, что страница на этом языке не существует и может даже вызвать ошибку при попытке доступа (в зависимости от конфигурации сайта).

Так что вам просто нужно прочитать руководство и настроить состояния элементов для USERDEF1 и USERDEF2. В вашем случае вам придется переопределить их с пустым значением.

0 голосов
/ 30 марта 2012

Исправлено путем установки расширения sr_language_menu и установки константы showInactive в 0.

...