Добавление/Удаление данных
Кнопка добавления и действия над строками включаются правами контроллера.
| Метод | Что открывает |
|---|---|
canAdd() |
кнопку «Добавить» над списком |
canDelete() |
удаление строки и групповое удаление |
canActivate() |
включение и выключение строк, если у сущности есть поле активности |
public function canAdd(): bool
{
return $this->getEntityAccess() >= 'W';
}
public function canDelete(): bool
{
return $this->getEntityAccess() >= 'W';
}
getEntityAccess() возвращает уровень доступа к модулю сущности — тот самый, что задан в
настройках модуля на вкладке «Доступ». Своя проверка ставится вместо него или рядом с ним.
Куда ведёт «Добавить»
На форму редактирования по адресу из настройки editUrl. Если она не задана, список берёт
текущий адрес и заменяет в нём list.php на edit.php:
$controller->initialize([
'editUrl' => '/bitrix/admin/vendor_module_element_edit.php',
]);
Форму делают классом DevBx\Core\UI\Edit\Form — про неё глава «DevBx\Core\UI\Edit\Form».
Поле активности
По умолчанию активностью считается поле ACTIVE. Если в сущности оно называется иначе,
переопределяют getActivateField():
public function getActivateField(): string
{
return 'IS_ENABLED';
}
Когда поля активности нет вовсе, canActivate() вернёт false сам — проверять наличие поля
руками не нужно.
Своё удаление
Сущности, которые нельзя удалять напрямую, обрабатывают переопределением deleteEntityRow() —
пример на странице «Своя функция обновления данных».