Drupal10使用Views Bulk Operations(批量操作模块)时如何自定义确认页面

本地Drupal站点使用了Views Bulk Operations(批量操作模块)实现某批量操作。在升级到10.3版本之前(10.2)批量提交的时候会有一个确认页面,但是升级之后没有经过确认页面,而是直接提交。
升级前的自定义批量操作类 注释:
在这里插入图片描述
升级之后确认页面不生效,排查了一番没找到原因,不过找到了解决方法:
因为我只是单纯的需要一个确认页面,并不需要自定义确认页面,所以直接使用Views Bulk Operations的确认页面,只需要修改注释中的 confirm = TRUE,

/**
 * Migrate entity action with default confirmation form.
 *
 * @Action(
 *   id = "views_bulk_operations_xxx",
 *   label = @Translation("xxx"),
 *   type = "",
 *   confirm_form_route_name = "views_bulk_operations.confirm",
 * )
 */

如果需要自定义确认页面,那么就需要自定义确认表单了。
1、使用hook_form_views_bulk_operations_confirm_action_alter。直接修改默认的列表。
2、自定义一个ConfirmForm,再修改confirm = TRUE,
插件注释修改:

/**
* Action description.
*
* @Action(
*   id = "my_special_action",
*   label = @Translation("My Special Action"),
*   type = "custom_entity",
*   confirm_form_route_name = "my_module.my_special_action_confirm_form",
* )
*/
class MySpecialAction extends ViewsBulkOperationsActionBase {
}

表单大概这样:

use Drupal\views_bulk_operations\Form\ConfirmAction;

class MySpecialActionConfirmForm extends ConfirmAction {

  public function getFormId() {
    return 'my_special_action_confirm_form';
  }


  public function buildForm(array $form, FormStateInterface $form_state, $view_id = NULL, $display_id = NULL) {
    ....
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值