アクションというのは一括で記事を削除したりとか、一括で選択した記事に対して何かする、機能になります。
ここにオリジナルのオプションをつけるカスタマイズは下記がよくまとまっているので参考にしてください
↑ちなみに、これもPlugin Apiを使うようです。
typeがnodeを指定しているのでユーザーなどでも、Actionアノテーションは使える気がします。
(これは確認できていませんが...)
本題
アクションの設定値を保存するに関しては「Actions UI」モジュールを有効化します。
Actionsを管理画面から管理できるモジュールみたいです。
「Views」モジュールでいう「Views UI」みたいなものだと思います。
参考のURLだと、「ActionBase」クラスを継承していますが、設定を保存する場合は、おそらく、「ConfigurableActionBase」クラスを継承したほうがいいのでこちらを継承するようにしてあげます。
/**
* {@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の管理ページに追加項目の設定値を入力できる項目が表示されるようになります。
余談
今回は、コードによる追加からアクションを追加しました、
こちらは、試せていませんが、「Views Bulk Operations」というモジュールを使えば、管理画面上からアクションを追加できるようです。
コードからのアクション追加でも「Views Bulk Operations」モジュールでは、「ViewsBulkOperationsActionBase」というクラスが用意されているみたいです。