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';
}
Код перенаправляє форму незалежно від кнопки, натиснутої для подання форми. Якщо ви хочете перенаправити форму лише після натискання певної кнопки подання, вам слід скористатися наступним кодом.
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';
}
- Ідентифікатор форми не містить дефісів. Ідентифікатор форми - це ім'я функції PHP, яка генерує форму (яка називається конструктором форми), а функція PHP не може містити дефісів у своєму імені.
- Ідентифікатор форми передається реалізаціям_ук_форма_алтер () , гачок_форма_БАСЕ_FORM_ID_alter () та гачок_форма_FORM_ID_alter () .
hook_form_FORM_ID_alter()
Насправді це не потрібно, як це називається для конкретної форми, тоді як інші два гачки викликаються для більше однієї форми.
- Перша функція - реалізація mock_form_BASE_FORM_ID_alter () ; у цьому випадку ідентифікатор базової форми - це "node_form", що є базовою формою для форми редагування вузла.
- Форма редагування вузла містить
$form['#node']
, що є об'єктом вузла для об'єкта, який редагується; "custom" - це короткий ідентифікатор для типу вмісту, на який ви хочете перенаправити користувачів, коли вони редагують вузол.
- Зміни
$form_state['redirect']
з hook_form_alter()
не мають жодного ефекту; його потрібно встановити у обробника подання.