function flexiform_multistep_form_alter in Flexiform 7
Implements hook_form_alter() on behalf of inline entity form for multistep.
In a ctools wizard the 'next' button is in a different location in the form array and inline entity form does not cater for this.
See also
inline_entity_form_form_alter
File
- flexiform_multistep/
flexiform_multistep.module, line 15 - Module file for creating CTools multi-step forms with Flexiform.
Code
function flexiform_multistep_form_alter(&$form, &$form_state, $form_id) {
if (!empty($form_state['flexiform_multistep']) && !empty($form_state['inline_entity_form'])) {
$submit_element = NULL;
if (!empty($form['buttons']['next'])) {
$submit_element =& $form['buttons']['next'];
}
if ($submit_element) {
$submit = array_merge(array(
'inline_entity_form_trigger_submit',
), $form['#submit']);
if (!empty($submit_element['#submit'])) {
$submit = array_merge($submit, $submit_element['#submit']);
// $form['#submit'] and $submit_element['#submit'] might have matching
// callbacks, resulting in duplicates and double processing.
$submit_element['#submit'] = array_unique($submit);
}
else {
$submit_element['#submit'] = $submit;
}
$submit_element['#ief_submit_all'] = TRUE;
}
}
}