【问题标题】:Typoscript: AND (&&) in condition not working排版:AND (&&) 在不工作的情况下
【发布时间】:2011-11-11 19:20:43
【问题描述】:

我有以下错字

[PIDinRootline=6,7,11]
    //do somehting
[end]

[PIDinRootline=6,7,11] && [globalVar = TSFE:id=1]
    // do something else
[global]

我只从[PIDinRootline=6,7,11] 得到结果。我的 && 条件在这里不起作用。我做错了什么?

解决方案:

我想已经很晚了,我只复制并粘贴了代码。我想做的是查询某个页面ID和某种语言。这是解决方案:

[PIDinRootline=6,7,11]
    //do somehting
[end]

[PIDinRootline=6,7,11] AND [globalVar = GP:L=1]
    // do something else
[end]

【问题讨论】:

    标签: conditional-statements typo3 typoscript


    【解决方案1】:

    [globalVar = TSFE:id=1] 表示:就在这个页面上。因此,当假设 PID 1 高于 6、7 和 11 时,您可能需要使用 OR,因为这两个条件不能同时满足,就像在这个页面树示例中一样:

    1 ---
    - 5 -
    - 6 -
    - 7 -
    - 9 -
    - 11-
    
    2 ---
    - 3 -
    - 4 -
    

    另外,您可以使用 Template 模块中的 typoscript 对象浏览器 来调试打字稿。更多选项described here.

    【讨论】:

    • 在这种情况下,T3 应该停止渲染或抛出错误。
    • @David,在哪种情况下?我不明白为什么应该这样做。
    • 条件不满足时。
    • 我明白了。但是我们这里的只是逻辑上的不可能性,而不是语法问题。比较:当我在 PHP 中询问时:if ($x == 1) AND ($x == 6) 尽管条件永远无法满足,但不会抛出错误。此外,在极少数情况下,@testings 示例中的条件可以满足。 TYPO3 仅在打字稿出现严重语法错误时停止渲染。
    • 你读过我的回答吗? “当假设 PID 1 高于 6、7 和 11 时”。没有冒犯:)。
    【解决方案2】:

    您只是将命令拼写为 AND 而不是 ¨&&"。它不是在 TS-Parser 中引发错误吗?您可以从网站的管理面板中查看渲染过程。

    【讨论】:

    • 我用AND 试过了,但结果是一样的。我没有看到任何错误。在管理面板哪里可以找到渲染过程?
    • 您是否尝试过在末尾加上 [end]?根据手册wiki.typo3.org/De:TSrefConditions 它应该可以工作。只需打开管理面板,您就可以选择一些选项。渲染过程有一棵树。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2020-09-06
    • 2018-01-10
    相关资源
    最近更新 更多