function _msnf_restore_values in Multistep Nodeform 6
Same name and namespace in other branches
- 7 msnf.module \_msnf_restore_values()
Restore node fields which has a tree-like structure of data..
1 call to _msnf_restore_values()
- msnf_prepare_form_step in ./
msnf.module - Function to prepare the current form step and to alter the node form.
File
- ./
msnf.module, line 357 - Main functions for module "Multistep Nodeform".
Code
function _msnf_restore_values(&$form, &$form_state) {
$values = $form_state['values'];
foreach ($form as $key => &$parent) {
if (is_array($parent)) {
if (!empty($parent['body'])) {
// Handle body field.
$body_fields = array(
'body',
'teaser_js',
'teaser_include',
'format',
);
foreach ($body_fields as $body_field) {
$value = $values[$body_field];
if (!empty($value) || $body_field == 'teaser_include') {
$parent[$body_field]['#default_value'] = $value;
}
}
}
else {
if (!empty($parent['#tree']) && $parent['#tree']) {
$value = $form_state['values'][$key];
}
else {
$value = $form_state['values'];
}
_msnf_restore_values_recursive($key, $parent, $value);
}
}
}
// Special handling for files.
// This needs to be done here since upload.module creates the wrapper before
// msnf even knows about the form and its values.
if (module_exists('upload') && !empty($values['files']) && isset($form['attachments']['wrapper'])) {
$form['#node']->files = $values['files'];
// Re-create attachment wrapper.
$form['attachments']['wrapper'] = array(
'#prefix' => '<div id="attach-wrapper">',
'#suffix' => '</div>',
);
$form['attachments']['wrapper'] += _upload_form($form['#node']);
}
}