Плагин запрещающий удалять определенные ресурсы
Вот этот хороший не знаю чей плагин запрещает удалять ресурсы переданные списком через параметр ids.
Вместо него перед удалением выводится стандартное _Вы уверены..._
Подскажите как допилить… Pls
<?php
$e = &$modx->Event;
$ids= explode(',', $ids);
switch($e->name) {
case 'OnBeforeDocFormDelete':
if (isset($_REQUEST['id']) && in_array(intval($_REQUEST['id']), $ids)) {
echo '<div style="padding: 50px 100px; font: bold 12px Arial, sans-serif;">Удаление данного раздела невозможно</div>';
exit;
}
break;
case 'OnDocFormDelete':
if (isset($_REQUEST['id']) && in_array(intval($_REQUEST['id']), $ids)) {
exit;
}
break;
default:
return;
break;
}
Он исправно работает кроме той его части, которая отвечает за вывод информационного сообщения _Удаление данного раздела невозможно_Вместо него перед удалением выводится стандартное _Вы уверены..._
Подскажите как допилить… Pls
Комментарии: 5
При удалении это не работает. Только при создании и редактировании.
Судя по коду плагина писал его человек не глубоко разбирающийся в MODX Revo. Писать echo в плагине да еще и с HTML разметкой… Кроме того в плагине есть уже определенная переменная $id, поэтому $_REQUEST['id'] явно лишний.
Мое мнение, штатными средствами вывести сообщение не получится. Хотя я могу и ошибаться.
Судя по коду плагина писал его человек не глубоко разбирающийся в MODX Revo. Писать echo в плагине да еще и с HTML разметкой… Кроме того в плагине есть уже определенная переменная $id, поэтому $_REQUEST['id'] явно лишний.
Мое мнение, штатными средствами вывести сообщение не получится. Хотя я могу и ошибаться.
Верно, штатными средствами не получится.
В процессоре событие вызывается, но результат никуда не передается. Потому использовать штатный механизм возврата результата из плагина бессмысленно.
В процессоре событие вызывается, но результат никуда не передается. Потому использовать штатный механизм возврата результата из плагина бессмысленно.
Если для бэкэнда, то алерт нужно ~составлять так (в плагине):
$response = array(
'success' => false,
'message' => 'Ресурс с данным Id удалять запрещено!',
'data' => array(),
);
echo $modx->toJSON($response);
exit;
Ага, работает. Спасибо большое.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.