You are here

function _msnf_restore_values_recursive in Multistep Nodeform 6

Helper function to restore values recursive.

1 call to _msnf_restore_values_recursive()
_msnf_restore_values in ./msnf.module
Restore node fields which has a tree-like structure of data..

File

./msnf.module, line 399
Main functions for module "Multistep Nodeform".

Code

function _msnf_restore_values_recursive($key, &$parent, $values) {

  // Fields inside fieldsets.
  $children = element_children($parent);
  foreach ($children as $child_key) {
    $child =& $parent[$child_key];
    if (is_array($child)) {
      if (isset($child['#tree']) && $child['#tree'] == TRUE) {
        $value = $values[$child_key];
      }
      else {
        if (isset($values[$child_key])) {
          if ($key == 'taxonomy' && $child_key == 'tags') {
            foreach ($values[$child_key] as $vid => $value) {
              $parent[$child_key][$vid]['#default_value'] = $value;
            }
          }
          else {
            $parent[$child_key]['#default_value'] = $values[$child_key];
          }
        }
        continue;
      }
      _msnf_restore_values_recursive($child_key, $child, $value);
    }
  }

  // Single fields as "title".
  if (isset($values[$key])) {
    $parent['#default_value'] = $values[$key];
  }
}