Антон Тарасов

Антон Тарасов

Был в сети 08 июля 2026, 14:30
Заказы не принимаю
Создайте свой сниппет(выходной модификатор) с исходным кодом и подебажьте, почему не срабатывает:
$hook->setValue('color',json_encode(array('blue','red','green')));
<input type="checkbox" name="color[]" value="red" [[!+fi.color:FormItIsChecked2=`red`]] > red
FormItIsChecked2:
$output = ' ';
if ($input == $options) {
    $output = ' checked="checked"';
}
$input = strpos($input, '"') ? $modx->fromJSON($input) : explode(',', $input);
if (!empty($input) && is_array($input) && in_array($options,$input)) {
  $output = ' checked="checked"';
}
return $output;
вероятно есть желание выделить несколько активных позиций, этот вариант предложен в документации: docs.modx.com/3.x/en/extras/formit/formit.tutorials-and-examples/handling-selects,-checkboxes-and-radios#handling-checkboxes-and-multiple-selects-in-a-custom-hook Вместо
$hook->setValue('color',json_encode(array('blue','red','green')))
@vit Попробуйте явно указать двойные кавычки так:
$hook->setValue('color',json_encode(array("blue","red","green")))
т.к. код выходного фильтра нынче выглядит так:
$output = ' ';
if ($input == $options) {
    $output = ' checked="checked"';
}
$input = strpos($input, '"') ? $modx->fromJSON($input) : explode(',', $input);
if (!empty($input) && is_array($input) && in_array($options,$input)) {
  $output = ' checked="checked"';
}
P.S. хотя нет. сработать должен и в вашем случае после json_encode…
Николай, низкий поклон за время и труд, тебе и всем ребятам, кто приложил руки.
Очень-очень жду и уповаю на ms3, буду рад чем-либо помочь (тестирование уже доступно, а что с документацией? локализацией? что-то еще...), огласите весь список пжлста :)
Задонатил.
За давностью лет можно только предположить, чем дело кончилось. Вероятно, форма просто не отправлялась из-за неверного action атрибута <form aaction="[[~[[*id]]]]" Т.е. надо было убедиться, что отправка работает как минимум. И вывести отладку, если письмо Не отправлялось. Судя по коду формы это сделано не было.
в приводимом вами выводе в одном есть плейсхолдер [[++assets_url]], в другом нет, чисто из области фантастики- не влияет на последующий вывод сниппета? переставляли, добавляли его? а если также сделать [[!++assets_url]] некешируемым?
Низкий вам, ребята, поклон за такую стильную, вкусную и функциональную имплементацию документации!
Очень она нужна и крайне важна. И выручала не раз, и пуще прежнего будет.

Интересно, а наши западные партнеры не желают ли по образу и подобию освежить docs.modx.com?

Ну и конечно же искренне задонатил.
Можно предположить такое решение — делаете плагин, который «слушает» событие OnUserFormSave, получаете данные пользователя и разлогиниваете его программно (по хорошему его надо как-то предупредить), как это сделать — можно посмотреть способы из этой ветки.