Условие пустой переменной MODx Revo не возвращает переменные - PullRequest
0 голосов
/ 28 ноября 2011

Я использую свой собственный 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 голосов
/ 12 декабря 2011

Я не совсем понял, о чем вы спрашиваете, но в синтаксисе фрагмента MODX вы должны позаботиться о том, чтобы всегда использовать обратные метки (`) вместо апострофов (').

Также в этой ситуации, когда вывод зависит от параметра, переданного $ _GET, вы должны убедиться, что ваш фрагмент всегда называется uncached, и, возможно, ваш заполнитель тоже:

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

[[!+mode:eq=``:then=`[[*content]]`]]
0 голосов
/ 29 ноября 2011

Переменная $ set теперь равна 1, не могли бы вы попытаться типизировать $ set с помощью (bool), чтобы «1» превратился в TRUE?

Вы также можете проверить параметр $, если он пуствнутри фрагмента и присвойте ему значение, чтобы вы могли проверить его, не проверяя наличие пустого значения.

...