全局变量问题的条件语句

时间:2014-05-12 23:29:57

标签: expressionengine

我已在Expression Engine中创建了一个全局变量,以便能够切换到我正在测试的网站。但它不适用于if语句。

{if test-mode == "true"}hello world{/if}
EE并没有显示" hello world"文本。如果我这样做:

{test-mode} 

它显示" true"。我无法弄清楚它为什么不起作用......

2 个答案:

答案 0 :(得分:0)

这是一个解析订单问题。

the documentation中,请注意在步骤14和19处理条件,但在步骤23之前不处理全局用户变量。

有关此选项的一些解决方法是:

  • 使用嵌入
  • 使用代码段
  • 将变量移动到PHP
  • 使用Low Variables(第三方插件)

答案 1 :(得分:0)

这确实是一个解析订单问题(EE开发人员的主要问题之一)

绕过这个移动测试模式,它是从全局变量到片段的值。这些都是先解析的。

我已经对此进行了测试,但确实有效。

作为全局变量 - 不起作用:

{if test_mode == "true"}Hello world{/if}

作为一个片段 - 工作!

{if test_mode_snippet == "true"}Hello world snippet{/if}

要了解有关解析顺序的更多信息,请查看低(低变量)中的this link。虽然我不确定准确性,因为Snippets和Global Variables被归类为相同。

它也可能与解析简单和复杂条件的顺序有关。 Read more here