3namespace Bitrix\Iblock\Grid\Row\Actions\Item;
5use Bitrix\Iblock\Grid\Access\IblockRightsChecker;
6use Bitrix\Main\AccessDeniedException;
7use Bitrix\Main\Application;
8use Bitrix\Main\DB\SqlQueryException;
10use Bitrix\Main\HttpRequest;
11use Bitrix\Main\Localization\Loc;
12use Bitrix\Main\Result;
21 public static function getId(): ?string
23 return 'delete_element';
28 $this->rights = $rights;
33 return Loc::getMessage(
'IBLOCK_GRID_ROW_ACTIONS_DELETE_ELEMENT_NAME');
38 $id = (int)($rawFields[
'ID'] ?? 0);
45 $data = CUtil::PhpToJSObject([
48 $confirmMessage = \CUtil::JSEscape(
49 Loc::getMessage(
'IBLOCK_GRID_ROW_ACTIONS_DELETE_ELEMENT_CONFIRM_MESSAGE')
52 $confirmButtonMessage = \CUtil::JSEscape(
53 Loc::getMessage(
'IBLOCK_GRID_ROW_ACTIONS_DELETE_ELEMENT_CONFIRM_BUTTON')
55 $backButtonMessage = \CUtil::JSEscape(
56 Loc::getMessage(
'IBLOCK_GRID_ROW_ACTIONS_DELETE_ELEMENT_BACK_BUTTON')
59 $this->onclick =
"IblockGridInstance.sendSmallPopupWithConfirm('{$actionId}', {$data}, '{$confirmMessage}', '{$confirmButtonMessage}', '{$backButtonMessage}')";
61 return parent::getControl($rawFields);
73 if (empty($id) || !is_numeric($id))
79 if (!$this->rights->canDeleteElement($id))
86 $conn = Application::getConnection();
87 $conn->startTransaction();
90 $updateResult = CIBlockElement::Delete($id);
97 : Loc::getMessage(
'IBLOCK_GRID_ROW_ACTIONS_DELETE_ELEMENT_INTERNAL_ERROR')
106 catch (SqlQueryException)
108 $result->addError(
new Error(Loc::getMessage(
'IBLOCK_GRID_ROW_ACTIONS_DELETE_ELEMENT_INTERNAL_ERROR')));
113 $conn->commitTransaction();
117 $conn->rollbackTransaction();
if(!Loader::includeModule('catalog')) if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_PRICE_EDIT)) if(!check_bitrix_sessid()) $request
getControl(array $rawFields)
__construct(IblockRightsChecker $rights)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
processRequest(HttpRequest $request)