You are here

function content_multigroup_node_form_fix_deltas in Content Construction Kit (CCK) 6.3

Fix deltas for all affected form elements.

1 call to content_multigroup_node_form_fix_deltas()
content_multigroup_node_form_transpose_elements in modules/content_multigroup/content_multigroup.node_form.inc
Transpose element positions in $form_state for the fields in a multigroup.

File

modules/content_multigroup/content_multigroup.node_form.inc, line 586
Implementation of node edit functions for content multigroup.

Code

function content_multigroup_node_form_fix_deltas(&$elements, $form_deltas) {
  foreach (element_children($elements) as $key) {
    if (isset($elements[$key]) && $elements[$key] && substr($key, -9) != '_add_more') {

      // Fix the second item, the delta value, of the element's '#parents' array.
      $elements[$key]['#parents'][1] = $form_deltas[$elements[$key]['#parents'][1]];

      // If present, fix delta value in '#delta' attribute of the element.
      if (isset($elements[$key]['#delta']) && isset($form_deltas[$elements[$key]['#delta']])) {
        $elements[$key]['#delta'] = $form_deltas[$elements[$key]['#delta']];
      }

      // Recurse through all children elements.
      content_multigroup_node_form_fix_deltas($elements[$key], $form_deltas);
    }
  }
}