1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

test1.png

アクションというのは一括で記事を削除したりとか、一括で選択した記事に対して何かする、機能になります。
ここにオリジナルのオプションをつけるカスタマイズは下記がよくまとまっているので参考にしてください

↑ちなみに、これもPlugin Apiを使うようです。
typeがnodeを指定しているのでユーザーなどでも、Actionアノテーションは使える気がします。
(これは確認できていませんが...)

本題

アクションの設定値を保存するに関しては「Actions UI」モジュールを有効化します。
Actionsを管理画面から管理できるモジュールみたいです。
「Views」モジュールでいう「Views UI」みたいなものだと思います。

参考のURLだと、「ActionBase」クラスを継承していますが、設定を保存する場合は、おそらく、「ConfigurableActionBase」クラスを継承したほうがいいのでこちらを継承するようにしてあげます。

UpdateAlias.php
  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $form['path'] = [
      '#title' => 'パス変更',
      '#type' => 'textfield',
      '#required' => TRUE,
      '#default_value' => $this->configuration['path'] ?? 'node',
      '#element_validate' => [[$this, 'validatePath']],
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
    $this->configuration['path'] = $form_state->getValue('path');
  }

「ConfigurableActionBase」を継承して、buildConfigurationFormとsubmitConfigurationFormメソッドを実装すると、Actions UIの管理ページに追加項目の設定値を入力できる項目が表示されるようになります。

test2.png

余談

今回は、コードによる追加からアクションを追加しました、
こちらは、試せていませんが、「Views Bulk Operations」というモジュールを使えば、管理画面上からアクションを追加できるようです。

コードからのアクション追加でも「Views Bulk Operations」モジュールでは、「ViewsBulkOperationsActionBase」というクラスが用意されているみたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?