Typoscript条件&&条件不起作用?

时间:2011-10-16 15:26:40

标签: typo3 typoscript browser-detection

这是我的(缩短的)代码:

lib.nav = COA
lib.nav {
  50 = HMENU
  50 { 
      [ ... ]
  wrap = <nav>|</nav> 
  }
}

[browser = msie] && [version = <9]
lib.nav.50.wrap = <div id="nav">|</div> 
[global]

我所知道的(做过):

  • [browser = msie]单独工作,但适用于所有IE(我需要少于9个)
  • 我安装了conditions扩展名
  • 我搜索了它,但找不到任何适合完全我的问题
  • 的内容

我需要的是一个可以工作的TS片段,或者可能是一种解决方法。 谢谢!

4 个答案:

答案 0 :(得分:2)

我知道问题已经很久了,但我刚解决了类似的问题。在我的情况下,条件失败,因为我在这样的块中使用它:

config {
    # htmlTag_setParams, adding language and some classes for the Foundation framework
    [browser = msie] && [version =< 9]
    htmlTag_setParams = lang="{$config.language}" class="no-js lt-ie9"
    [else]
    htmlTag_setParams = lang="{$config.language}" class="no-js"
    [global]
}

我将其重写为

# htmlTag_setParams, adding language and some classes for the Foundation framework
[browser = msie] && [version =< 9]
config.htmlTag_setParams = lang="{$config.language}" class="no-js lt-ie9"
[else]
config.htmlTag_setParams = lang="{$config.language}" class="no-js"
[global]

它开始按预期工作

P.S。我使用的是Typo3 v6.1

答案 1 :(得分:1)

您的情况看起来是正确的。

那么,也许你有不同的错误?尝试通过测试没有副作用的条件来分离您的问题。创建一个新页面,创建一个新的ts模板并将此代码放入其中:

page >
page = PAGE
page.typeNum = 0
page.10 = TEXT
[browser = msie] && [version = <9]
page.10.value = Condition is meet
[else]
page.10.value = Condition is not meet
[global]

现在在浏览器中打开此页面。现在您可以调整您的条件。如果一切正常,问题出在其他地方。

答案 2 :(得分:0)

如果您的脚本存储并嵌套在文件系统中(例如使用INCLUDE_TYPOSCRIPT),请尝试将您的条件直接插入到setup field of your main template中的typo3后端。

#your previously included file
<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/templates/_TypoScript/myTyposcriptFile.ts">

#your condition
page >
page = PAGE
page.typeNum = 0
page.10 = TEXT
[browser = msie] && [version = <9]
page.10.value = Condition is meet
[else]
page.10.value = Condition is not meet
[global]

您还可以使用TypoScript Object Browser底部的“条件”功能检查您的条件是否按预期工作。

答案 3 :(得分:0)

问题是[browser = msie]不再工作(T3 4.5+)。即使我在Internet Explorer中观看,测试设置也始终显示条件不符合。