Как удалить элемент в Битрикс по кнопке в публичной части?

Чтобы удалить элемент в Битрикс по кнопке в публичной части, вам понадобится выполнить следующие шаги:

1. Создайте кнопку в публичной части сайта, которая будет служить триггером для удаления элемента. Например, вы можете использовать кнопку с классом "delete-button" и атрибутом "data-element-id" для указания идентификатора элемента, который нужно удалить.

<button class="delete-button" data-element-id="123">Удалить элемент</button>

2. Создайте обработчик события клика на кнопке. Вы можете использовать JavaScript для этого. В обработчике вы должны получить идентификатор элемента и отправить запрос на удаление элемента на сервер.

document.querySelector('.delete-button').addEventListener('click', function() {
    var elementId = this.dataset.elementId;
    
    // Отправляем AJAX-запрос на удаление элемента
    BX.ajax.runAction('my_module.api.deleteElement', {
        data: { 
            elementId: elementId
        }
    }).then(function(response) {
        // Обработка успешного удаления элемента
        console.log(response.data.message);
    }).catch(function(response) {
        // Обработка ошибки удаления элемента
        console.error(response.errors);
    });
});

3. Создайте обработчик запроса на удаление элемента на сервере. Для этого вам понадобится создать обработчик в файле init.php или в своем модуле.

<?php
use BitrixMainLoader;
use BitrixMainApplication;
use BitrixMainEngineContractControllerable;

class MyModuleApi extends CBitrixComponent implements Controllerable
{
    public function configureActions()
    {
        return [
            'deleteElement' => [
                'prefilters' => []
            ],
        ];
    }

    public function deleteElementAction($elementId)
    {
        Loader::includeModule('iblock');

        // Удаление элемента из Инфоблока
        $element = new CIBlockElement;
        $result = $element->Delete($elementId);

        if ($result) {
            return [
                'status' => 'success',
                'message' => 'Элемент успешно удален'
            ];
        } else {
            return [
                'status' => 'error',
                'errors' => 'Ошибка при удалении элемента'
            ];
        }
    }
}

4. Убедитесь, что ваш модуль my_module активирован на сайте и импортирован в файл init.php. Также убедитесь, что модуль iblock также активирован и настроен соответствующий инфоблок, из которого нужно удалить элементы.

Теперь, при клике на кнопку удаления элемента в публичной части сайта, будет отправлен AJAX-запрос на сервер, который удалит элемент с указанным идентификатором из инфоблока.