Score:0

ชี้แจงความแตกต่างระหว่าง hook_form_TYPE_alter และ hook_form_TYPE_EDIT_alter

ธง ng

ฉันมีไซต์ที่มีการเปลี่ยนแปลงรูปแบบ hook จำนวนมากสำหรับรูปแบบโหนด และฉันพบว่าฉันต้องสร้างฟังก์ชัน hook สองฟังก์ชันแยกกันเพื่อให้มีผล ทั้งสอง แบบฟอร์มการสร้างโหนดและการแก้ไขโหนด

ตัวอย่างเช่น ฉันต้องใส่ทั้งสองอย่าง:

module_events_form_node_event_form_alter()

และ

module_events_form_node_event_edit_form_alter()

ด้วยการทำงานที่เหมือนกันทั้ง 2 ฟังก์ชัน เพื่อให้ครอบคลุมทั้งโหนดใหม่และโหนดที่แก้ไข มีวิธีการหนึ่ง hook_form_alter() เพื่อให้ครอบคลุมเงื่อนไขแบบฟอร์มทั้งสองหรือไม่

Score:2
ธง cn

คุณสามารถใช้ ID แบบเต็มกับประเภทเนื้อหาและการดำเนินการหรือ ID ฟอร์มพื้นฐาน node_form. สิ่งนี้ไม่มีการดำเนินการ แต่ไม่มีประเภทเนื้อหาด้วย ดังนั้น เมื่อคุณเปลี่ยนรูปแบบฐาน คุณต้องตรวจสอบประเภทเนื้อหาเฉพาะ หากคุณไม่ต้องการเปลี่ยนรูปแบบโหนดทั้งหมด:

/**
 * ใช้ hook_form_BASE_FORM_ID_alter()
 */
ฟังก์ชัน mymodule_form_node_form_alter (&$form, FormStateInterface $form_state, $form_id) {
  $node = $form_state->getFormObject()->getEntity();
  ถ้า ($node->getType() == 'เหตุการณ์') {
    // เปลี่ยนรูปแบบโหนดสำหรับเหตุการณ์ประเภทเนื้อหาและการดำเนินการใดๆ
  }
}
quantumized avatar
ng flag
เพื่อชี้แจง หากฉันใช้ ID ฟอร์มที่มีประเภทเนื้อหา ฉันต้องใช้สองฟังก์ชันเพื่อพิจารณาทั้งฟอร์มใหม่และแก้ไข แต่ถ้าฉันแค่ใช้ hook_form_alter และตรวจสอบประเภท ฉันก็ไม่ทำ ถูกต้องไหม
4uk4 avatar
cn flag
FORM_ID มีทั้งประเภทเนื้อหา + การดำเนินการ (การสร้างเป็นค่าเริ่มต้นและค่าเริ่มต้นจะถูกละไว้) BASE_FORM_ID ที่ฉันแนะนำไม่มีเลย และคุณสามารถตรวจสอบทีละรายการได้ BTW หากคุณต้องการการดำเนินการให้ใช้ `$form_state->getFormObject()->getOperation()`

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา