Константин Ильин

Константин Ильин

Был в сети 22 октября 2025, 18:41
Заказы принимаю
странно, чудеса можно сказать, ну как вариант если поменять очерёдность переменных, посмотреть что будет.
<?
$updateOrderFromArray = array(
               'defval2' => $defval2,
               'defval' => $defval
            );
А как вы расширили модель заказа?
в логах сервака и модх ничего нет?
Получается в документации не дописали про msOrder?
docs.modx.pro/komponentyi/minishop2/razrabotka/sluzhbyi/zakaz

Это к слову про эти msOnBeforeValidateOrderValue и msOnValidateOrderValue, как с ними работать, там тоже ничего не написано
а, да) Я просто копирнул из примеров) Вызывал сомнение этот параметр, но не трогал)
Сейчас все норм и сохраняется, а сохраняется наверно потому что, я до этого под админом открывал сайт, т.е. не был авторизирован в контексте)
Спасибо Артур! буду дальше тестировать :)
Артур подскажи пожалуйста, для этого вызова(из примеров взял) получается надо написать плагин который будет сохранять или хук?
Просто при таком вызове, редактирую fullname сохранить нажал, «Данные сохранены», но они не записались
{'!AjaxFormitLogin' | snippet : [
        'form' =>  'updateProfileForm',
        'snippet' => 'FormIt',
        'hooks' => 'AjaxIdentification',
        'method' => 'update',
        'successMessage' => 'Данные сохранены.',
        'clearFieldsOnSuccess' => 0,

        'validate' => 'email:required:email',
        'validationErrorMessage' => 'Исправьте, пожалуйста, ошибки!',
        'email.vTextRequired' => 'Укажите email.'
        ]}
В вашем коде ошибка, вы получаете в $user, а потом пользуетесь $profile
<?
// Для начала, как минимум должно быть так.
$user = $modx->getObject('modUser', array('id' => $userId));
$user->set('regular_customer', 1);
$user->save();
ну и внимательно смотрите где это поле у вас в modUser или же в modUserProfile
слишком много подключений — Это означает, что достигнуто максимальное количество клиентов, которые могут быть подключены к серверу. Либо клиенту придется ждать выхода другого клиента, либо администратору придется увеличить максимальное количество разрешенных подключений.

гугл есть
У вас код просто устанавливает плейсхолдеры последней записи т.к. вы в цикле не сохраняет общий и предыдущий результат
disk.yandex.ru/i/xk1UBRLB8wXLTA
в целом установление плейсхолдеров совсем не нужно.
Ниже код сниппета и чанка, а так же вызов.

<?
// Допустим вы получаете данные через чистый скл как вам подсказал Николай выше или xpdo
// далее по теории такой код, проходимся в цикле и сохраняем спарсеный html в переменную 

// используем while или foreach, мне по душе второй

Сниппет usr
// ранее должен быть получен массив с данными $array в этом же сниппете у вас $fullresult
$out = '';
$pdo = $modx->getService('pdoTools');
foreach($array as $arr){
    $out .=  $pdo->parseChunk('userChunk', $arr);
}
return $out;

Код чанка userChunk пример
<tr>
    <td>{$Department}</td>
    <td>{$phone}</td>
    <td>{$mail}</td>
    ..... и т.д.
</tr>

ну и все, остается только вызывать сниппет на странице
<table>
так {'!usr' | snippet}

или по стандартному [[!usr]]
</table>
по итогу должна вывестись таблица

Ну и совсем простое решение, есть уже готовый сниппет вывода именно пользователей MODX
<?
// pdoTools должен быть установлен
<table>
{'!pdoUsers' | snippet : [
    'tpl' => 'userChunk'
]}
</table>
Вызовете его с пустым tpl и он вам выведет массивы пользователей disk.yandex.ru/i/VVER1xAv2Pn30A
Вы опишите задачу которую вы пытаетесь решить, если не трудозатратно попробуем решить средствами модх, а не так как вы это делаете.

На счет кода HTML в сниппете, тут нужно использовать parseChunk передавая ему массив данных. И так же рекоменду использовать Fenom, а не стандартный MODX шаблонизатор
<?
//про феном 
{'!usr1' | snippet} а не [[!usr1]]
В сниппет:
<?
$arr = ['name' => 'Вася', 'country' => 'Индия'];
.....
$pdo = $modx->getService('pdoTools'); // pdoTools должен быть установлен
return $pdo->parseChunk('названиеЧанка', $arr);
Сам чанк примерно
<div>Имя: {$name}<div>
<div>Страна: {$country}<div>