function custom_form_node_form_alter(&$form, &$form_state, $form_id) {
if ($form['#node']->type == 'custom') {
$form['actions']['submit']['#value'] = t('Add Entry');
$form['field_custom_email']['und'][0]['value']['#element_validate'] = array('_custom_form_validate_email');
$form['#submit'][] = 'custom_node_submit';
}
}
function custom_node_submit($form, &$form_state) {
$form_state['redirect'] = 'choose/your/path';
}
Kode mengarahkan ulang formulir secara independen dari tombol yang diklik untuk mengirimkan formulir. Jika Anda ingin mengarahkan ulang formulir hanya ketika tombol pengiriman tertentu diklik, maka Anda harus menggunakan kode berikut.
function custom_form_node_form_alter(&$form, &$form_state, $form_id) {
if ($form['#node']->type == 'custom') {
$form['actions']['submit']['#value'] = t('Add Entry');
$form['field_custom_email']['und'][0]['value']['#element_validate'] = array('_custom_form_validate_email');
$form['actions']['submit']['#submit'][] = 'custom_node_submit';
}
}
function custom_node_submit($form, &$form_state) {
$form_state['redirect'] = 'choose/your/path';
}
- ID formulir tidak mengandung tanda hubung. ID formulir adalah nama fungsi PHP yang menghasilkan formulir (alias pembangun formulir), dan fungsi PHP tidak dapat berisi tanda hubung dalam namanya.
- ID formulir diteruskan ke implementasi hook_form_alter () , hook_form_BASE_FORM_ID_alter () , dan hook_form_FORM_ID_alter () .
hook_form_FORM_ID_alter()
tidak benar-benar membutuhkannya, karena disebut untuk bentuk tertentu, sedangkan dua kait lainnya dipanggil untuk lebih dari satu bentuk.
- Fungsi pertama adalah implementasi hook_form_BASE_FORM_ID_alter () ; dalam hal ini, ID bentuk dasar adalah "node_form" yang merupakan bentuk dasar untuk bentuk edit simpul.
- Bentuk edit simpul berisi
$form['#node']
, yang merupakan objek simpul untuk objek yang sedang diedit; "custom" adalah ID pendek untuk tipe konten yang ingin Anda redirect kepada pengguna begitu mereka mengedit sebuah node.
- Mengubah
$form_state['redirect']
dari hook_form_alter()
tidak memiliki efek apa pun; itu perlu diatur dari penangan pengajuan.