สิ่งที่ฉันจะทำคือย้อนกลับไปดูว่าคุณกำลังลงทะเบียนเบ็ดนี้หรือไม่ บ่อยครั้งที่$form_id
การเปลี่ยนแปลง
กระบวนการแก้จุดบกพร่อง:
- เปิด Devel
- แทรก dsm ($ form_id) ภายในเบ็ดของคุณตามที่คุณใช้กับ D6
- ล้างแคชของคุณ
โค้ดตัวอย่าง (ด้านในmymodule.module
หรือtemplate.php
ไฟล์) จากdrupal.org :
<?php
/**
* Implements hook_form_alter().
*/
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'form_views_exposed_form') {
drupal_set_message("Form ID is : " . $form_id);
}
}
?>
คุณจะเห็นกลุ่มของรูปแบบที่พิมพ์ออกมาจากนั้นเลือกมุมมองของคุณที่เปิดเผยแบบฟอร์มเบ็ดและทำงานจากที่นั่น
นอกจากนี้ด้วย Drupal 7 คุณสามารถที่จะกำหนดเป้าหมายที่เฉพาะเจาะจงรูปแบบโดยใช้ ID โดยตรง
ตัวอย่าง:
<?php
/**
* Implements hook_form_alter().
*/
function mymodule_form_views_exposed_form_alter(&$form, &$form_state, $form_id) {
drupal_set_message("Form ID is : " . $form_id);
}
?>
โปรดทราบว่าหากคุณใช้หลายรูปแบบเปิดเผยคุณสามารถตรวจสอบมุมมองที่เฉพาะเจาะจงโดยการตรวจสอบ $ form ['# id'] ในฟังก์ชั่นการเปลี่ยนแปลงรูปแบบ
ท้ายที่สุดถ้ามันไม่ได้ผลฉันขอแนะนำให้ตรวจสอบคิวปัญหานี้:
วิธีเปลี่ยนตัวกรองในตัวกรองที่เปิดเผยจาก form_alter hook