MODx Revo空变量条件不返回变量

时间:2011-11-28 12:32:31

标签: modx modx-revolution

我使用自己的get代码段从$ _GET []中获取参数:

if ($set) {
    $modx->setPlaceholder($param, $_GET[$param]);
} else {
    return $_GET[$param]; }

当我使用[[!get? &param='mode' &set='1']]设置[[+mode]]变量时,下一个样本适用于非空&mode参数:

[[+mode:eq=``:then=`[[*content]]`]]

但适用于:

[[+mode:eq=``:then=`something else`]]

任何想法如何可能以及如何避免这种情况?

2 个答案:

答案 0 :(得分:0)

$ set变量现在为'1',您是否可以尝试使用(bool)对$ set进行类型转换,以便'1'变为TRUE?

如果$ param在代码段内是空的,你也可以检查$ param并为其分配一个值,这样你就可以检查它而不检查空值。

答案 1 :(得分:0)

我并不完全理解你的要求,但在MODX片段语法中你应该注意始终使用反引号(`)而不是撇号(')。

此外,在输出取决于$ _GET传递的参数的情况下,您应该确保您的代码段始终被称为未缓存,也可能是您的占位符:

[[!get? &param=`mode` &set=`1`]]

[[!+mode:eq=``:then=`[[*content]]`]]