charset
С нами с 11 октября 2019; Место в рейтинге пользователей: #2904Прерывание внутри плагина
Добрый день, подскажите. Есть плагин, который выполняется перед сохранение данных пользователя. В случае исключительной (я создают условие сам) ситуации нужно остановить и вернуть текст ошибки. Но вот незадача, почему-то после выполнения кода, дальше моего условия скрипт не идет, а вот выполнение штатного скрипта modx (сохранение пользователя) идет.
Пример кода:
<?php
if ($modx->event->name === 'OnUserFormSave') {
// Пример условия для прерывания
if ($user->get('email') === 'blocked@example.com') {
$modx->event->output('Регистрация с таким email запрещена.');
$modx->event->stopPropagation();
return;
}
// Или выбросить исключение (если обрабатывается в компоненте или сниппете)
// throw new Exception('Регистрация с таким email запрещена.');
}
Или
<?php
if ($modx->event->name === 'OnUserBeforeSave') {
// Пример: запретить создание пользователя с определённым email
$email = $user->get('email');
if ($email === 'blocked@example.com') {
$modx->event->output('Пользователь с таким email не может быть создан.');
$modx->event->_output = 'Пользователь с таким email не может быть создан.';
$modx->event->stopPropagation(); // Остановить выполнение других плагинов
return false; // Очень важно — возврат false остановит сохранение!
}
В чем может быть причина?
}
Пример кода:
<?php
if ($modx->event->name === 'OnUserFormSave') {
// Пример условия для прерывания
if ($user->get('email') === 'blocked@example.com') {
$modx->event->output('Регистрация с таким email запрещена.');
$modx->event->stopPropagation();
return;
}
// Или выбросить исключение (если обрабатывается в компоненте или сниппете)
// throw new Exception('Регистрация с таким email запрещена.');
}
Или
<?php
if ($modx->event->name === 'OnUserBeforeSave') {
// Пример: запретить создание пользователя с определённым email
$email = $user->get('email');
if ($email === 'blocked@example.com') {
$modx->event->output('Пользователь с таким email не может быть создан.');
$modx->event->_output = 'Пользователь с таким email не может быть создан.';
$modx->event->stopPropagation(); // Остановить выполнение других плагинов
return false; // Очень важно — возврат false остановит сохранение!
}
В чем может быть причина?
}
Ошибка обновления страницы в админке при смене цены в MiniShop 2.5.0
Добрый день, заметил такую особенность в последней версии 2,5,0 если зайти в админке в каталог, изменить цену товара (не переходя в документ товара) и нажать Enter происходит переход на следующий товар, как и раньше, после чего идет еще раз обновление всей таблицы с товарами. При этом теряется фокус на поле ввода цены и приходится заново скролить до нужной позиции. Проверил уже на 3х сайтах где стоит MiniShop 2.5.0. Там где стоит предыдущая версия 2.4.11 — проблем нет.