Skip to content

pbOnBeforeDelete

Triggers before deleting a block or table

Parameters

ParameterDescription
typeType: pbBlock|pbTable
idObject id
objectObject
deletePermission to delete
messageCustom 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'))
            ]);
        }
    }
}

© PageBlocks 2019-present