You are here

function subform_submit_all in Subform 7

Submit handler for submitting all subforms.

Parameters

$form: An associative array containing the structure of the parent form.

$form_state: A keyed array containing the current state of the parent form.

1 call to subform_submit_all()
subform_example_subform1_submit in ./subform_example.module
Submit handler; Subform 1.
3 string references to 'subform_submit_all'
subform_example_batch_wrapperform in ./subform_example.module
Form builder; Batch wrapper form.
subform_example_multiple_nodes in ./subform_example.module
Form builder; Multiple nodes.
subform_example_wrapperform1 in ./subform_example.module
Form builder; Wrapper form.

File

./subform.module, line 541
Defines a subform element type.

Code

function subform_submit_all(&$form, &$form_state) {
  if (!empty($form_state['temporary']['subform'])) {
    foreach ($form_state['temporary']['subform'] as $subform_name => &$subform_state) {
      $subform_element =& subform_array_get_nested_value($form, $subform_state['subform_element_parents'], $subform_exists);
      if ($subform_exists) {
        subform_buffer('start', $subform_element);
        subform_submit_subform($subform_element['#subform']['#form_id'], $subform_element['#subform'], $subform_state);

        // Only display subform errors if it was actually executed.
        subform_buffer('end', $subform_element, $subform_state['executed']);

        // As subform_submit_all() most of the time will be called in combination
        // with parent form's default submit handlers only request a form rebuild
        // here if the subform does so too.
        if (!empty($subform_state['rebuild'])) {
          $form_state['rebuild'] = TRUE;
        }
      }
    }
  }
}