ใน Drupal 7 ลูกค้าต้องการเพิ่มปุ่มให้กับ user_profile_form ดังนั้นในโมดูลที่กำหนดเองของฉัน ฉันจึงสร้างปุ่มและการโทรกลับร่วม แต่ในขณะที่ปุ่มปรากฏบนแบบฟอร์ม ฉันไม่เห็นหลักฐานว่ามีการยกเลิกการโทรกลับ
ฟังก์ชัน member_form_alter(&$form, &$form_state, $form_id) {
ถ้า ($form_id == "user_profile_form") {
$form['send_reset'] = อาร์เรย์(
'#type' => 'ปุ่ม',
'#คำนำหน้า' => "<div id='reset-div'>",
'#suffix' => "</div>",
'#value' => "รีเซ็ตสมาชิก",
'#อาแจ็กซ์' => [
'callback' => 'member_reset_user',
'wrapper' => 'รีเซ็ต-div',
'เหตุการณ์' => 'ส่ง', //คลิก ฯลฯ
]
'#น้ำหนัก' => -150,
'#attributes' => อาร์เรย์(
'id' => array('รีเซ็ต-ยกเลิก')
),
);
}
ฟังก์ชัน member_reset_user($form, &$form_state) {
ตาย();
พยายาม {
my_user_function():
สุนัขเฝ้าบ้าน ('สมาชิก', 'รีเซ็ตผู้ใช้', WATCHDOG_NOTICE);
}
catch (ยกเว้น $e) {
สุนัขเฝ้าบ้าน ('สมาชิก', 'รีเซ็ตล้มเหลว', WATCHDOG_ERROR);
}
คืนฟอร์ม $;
}
html ที่สร้างโดย Drupal แนะนำฟังก์ชันส่ง
<div id="reset-div"><input id="reset-cancel" type="submit" name="op" value="Reset member" class="form-submit"></div>
เนื่องจากฉันไม่ได้สร้างองค์ประกอบฟอร์มใหม่ในการโทรกลับ เพียงแค่ออกฟังก์ชันที่กำหนดเอง ฉันจึงมองไม่เห็นว่าฉันทำอะไรผิด ฉันดูเรื่องนี้มานานเกินไปแล้ว