0

我使用自己的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`]]

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

4

2 回答 2

0

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

您还可以检查 $param 在代码段中是否为空并为其分配一个值,以便您可以检查它而不检查空值。

于 2011-11-29T09:50:56.513 回答
0

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

同样在这种输出取决于 $_GET 传递的参数的情况下,您应该确保您的代码段始终被称为未缓存,并且可能还包括您的占位符:

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

[[!+mode:eq=``:then=`[[*content]]`]]
于 2011-12-12T16:48:35.073 回答