0

这是“我的”古老的语言切换,它也解释了 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不为新闻,只为页面?或者这根本就没有用过?

如果是最后一种,有没有办法达到这样的效果(未翻译的新闻不要链接到翻译)?

4

1 回答 1

0

显然,我要的不是功能。

在未翻译项目上使用 lang 开关时,防止用户登陆全局 404 页面的一种解决方法是为新闻创建一个单独的 404 页面,并提供更清晰的解释。

如果你设置了类似的东西

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

在 localconf 中,您可以在那里完成这项工作。

于 2016-10-28T16:59:12.630 回答