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

发布于 2024-12-18 04:17:55 字数 493 浏览 1 评论 0原文

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

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

当我使用 [[!get? &param='mode' &set='1']] 设置 [[+mode]] 变量下一个示例适用于非空 &mode< /code> 参数:

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

但适用于:

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

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

I use my own get snippet to get parameters from $_GET[]:

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

When I use [[!get? ¶m='mode' &set='1']] to set [[+mode]] variable next sample is working for non empty &mode parameter:

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

But works for:

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

Any ideas how it is possible and how to avoid this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

千秋岁 2024-12-25 04:17:55

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

您还可以检查代码片段内的 $param 是否为空,并为其分配一个值,以便您可以在不检查空值的情况下检查它。

The $set variable is now '1', could you try to typecast the $set with (bool) so '1' turns into TRUE?

You could also check the $param if it is empty inside the snippet and assign a value to it so you can check it without checking for empty value.

所谓喜欢 2024-12-25 04:17:55

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

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

[[!get? ¶m=`mode` &set=`1`]]

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

I didn't understand exactly what you were asking, but in MODX snippet syntax you should take care to always use backticks (`) instead of apostrophes (').

Also in this situation where the output depends on a parameter passed by $_GET, you should ensure your snippet is always called uncached, and possibly your placeholder too:

[[!get? ¶m=`mode` &set=`1`]]

[[!+mode:eq=``:then=`[[*content]]`]]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文