pbOnBeforeDelete
Triggers before deleting a block or table
Parameters
| Parameter | Description |
|---|---|
| type | Type: pbBlock|pbTable |
| id | Object id |
| object | Object |
| delete | Permission to delete |
| message | Custom message |
Examples
Do not allow deletion and send a message to the admin so they can punish the wrongdoer.
php
if ($modx->event->name === 'pbOnBeforeDelete') {
if ($modx->user->id > 1) {
$modx->event->params['delete'] = false;
$modx->event->params['message'] = "You'll be punished soon";
$admin = $modx->getObject(modUser::class, 1);
if ($admin) {
$body = sprintf('<p>User %s decided to break the rules</p>', $modx->user->username);
$params = [
'<li>Type of violation: Deletion</li>',
sprintf('<li>Resource: %s</li>', $model_id),
sprintf('<li>Type: %s</li>', $type),
sprintf('<li>Object id: %s</li>', $id)
];
$body .= sprintf('<ul>%s</ul>', implode('', $params));
$admin->sendEmail($body, [
'subject' => sprintf('Violation of rules | %s', $modx->getOption('site_name'))
]);
}
}
}