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' です。'1' が TRUE になるように $set を (bool) で型キャストしてみてください。

$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 に答える