Drupal 8の記事ノードの追加/編集フォームにカスタム送信ハンドラーを添付する方法は次のとおりです。
<?php
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_form_alter().
*/
function my_module_form_alter(&$form, FormStateInterface $form_state, $form_id) {
// Use this to reveal the form id.
//drupal_set_message($form_id);
// Use this with the devel module to inspect the button action(s).
//kint($form['actions']);
switch ($form_id) {
case 'node_article_form': // New article nodes.
case 'node_article_edit_form': // Existing article nodes.
// Attach our custom submit handler.
$form['actions']['publish']['#submit'][] = 'my_module_node_article_form_submit';
break;
}
}
function my_module_node_article_form_submit($form, FormStateInterface $form_state) {
drupal_set_message('Running custom submit handler...');
}
カスタム送信ハンドラを正常に追加し$form['#submit']
、関数を適切に起動させることができませんでした。私が持っていた、明示的にそれを添付し保存して公開する新しい記事を作成するときに、ボタンを、とに添付保存して公開しておく既存の記事を編集するときにボタンを。
さらにpublish
、利用可能な他のボタンアクションの一部を次に示します。
unpublish
preview
delete