ต่อไปนี้เป็นวิธีแนบตัวจัดการการส่งแบบกำหนดเองไปยังแบบฟอร์มการเพิ่ม / แก้ไขโหนดบทความใน 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