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';
}
Mã chuyển hướng biểu mẫu độc lập với nút được nhấp để gửi biểu mẫu. Nếu bạn muốn chuyển hướng một biểu mẫu chỉ khi nhấp vào nút gửi cụ thể, thì bạn nên sử dụng mã sau đây.
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 mẫu không chứa dấu gạch nối. ID biểu mẫu là tên của hàm PHP tạo biểu mẫu (còn gọi là trình tạo biểu mẫu) và hàm PHP không thể chứa dấu gạch nối trong tên của nó.
- ID biểu mẫu được truyền cho các cài đặt của hook_form_alter () , hook_form_BASE_FORM_ID_alter () và hook_form_FORM_ID_alter () .
hook_form_FORM_ID_alter()
không thực sự cần nó, vì nó được gọi cho một hình thức cụ thể, trong khi hai móc còn lại được gọi nhiều hơn một hình thức.
- Hàm đầu tiên là việc triển khai hook_form_BASE_FORM_ID_alter () ; trong trường hợp này, ID biểu mẫu cơ sở là "node_form" là biểu mẫu cơ sở cho biểu mẫu chỉnh sửa nút.
- Biểu mẫu chỉnh sửa nút chứa
$form['#node']
, là đối tượng nút cho đối tượng được chỉnh sửa; "Tùy chỉnh" là ID ngắn cho loại nội dung bạn muốn chuyển hướng người dùng sau khi họ chỉnh sửa một nút.
- Thay đổi
$form_state['redirect']
từ hook_form_alter()
không có bất kỳ ảnh hưởng; nó cần phải được thiết lập từ một trình xử lý đệ trình.