|
Когда нужно заменить стандартную функцию сущности Update для изменения данных нужно установить свой обработчик через функцию setUpdateFunction
обработчик должен вернуть объект \Bitrix\Main\Entity\UpdateResult
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_before.php');
use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
Loader::includeModule("iblock");
Loader::includeModule("devbx.core");
$IBLOCK_ID = intval(\Bitrix\Main\Context::getCurrent()->getRequest()->get('IBLOCK_ID'));
$list = new DevBx\Core\Admin\AdminList('iblock', '\Bitrix\Iblock\ElementTable', array(
'ALLOW_EDIT' => 'Y',
'ALLOW_ADD' => 'Y',
'ALLOW_DELETE' => 'Y',
'HEADER_FIELDS' => array(
'ID',
'TIMESTAMP_X',
'MODIFIED_BY',
'DATE_CREATE',
'CREATED_BY',
'ACTIVE',
'ACTIVE_FROM',
'ACTIVE_TO',
'SORT',
'CODE',
'NAME',
),
'FILTER_HEADER' => '<input type=hidden name="IBLOCK_ID" value="' . $IBLOCK_ID . '">',
));
$list->addFileEditParams('&IBLOCK_ID=' . $IBLOCK_ID);
$list->setActionGroupAddParams('&IBLOCK_ID=' . $IBLOCK_ID);
$list->setFilterFields(array(
'ID' => 'RANGE',
'TIMESTAMP_X' => 'RANGE',
'DATE_CREATE' => 'RANGE',
'ACTIVE',
'ACTIVE_FROM' => 'RANGE',
'ACTIVE_TO' => 'RANGE',
'SORT' => 'RANGE',
'CODE',
'NAME',
));
$list->setCallbackApplyFilter(function (&$arFilter, &$arFilterValues) use ($IBLOCK_ID) {
$arFilter['IBLOCK_ID'] = $IBLOCK_ID;
});
$list->setUpdateFunction(function ($ID, $arFields) {
$result = new \Bitrix\Main\Entity\UpdateResult();
$el = new CIBlockElement();
if (!$el->Update($ID, $arFields)) {
$result->addError(new \Bitrix\Main\Entity\EntityError($el->LAST_ERROR));
}
return $result;
});
$list->display();
Предустановленный фильтр |
Описание курса
| Добавление/Удаление данных
|