diff options
Diffstat (limited to 'modules/node/node.pages.inc')
-rw-r--r-- | modules/node/node.pages.inc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/modules/node/node.pages.inc b/modules/node/node.pages.inc index a6e5d34bf..87106deed 100644 --- a/modules/node/node.pages.inc +++ b/modules/node/node.pages.inc @@ -257,7 +257,11 @@ function node_form(&$form_state, $node) { ); } $form['#validate'][] = 'node_form_validate'; - $form['#theme'] = array($node->type . '_node_form', 'node_form'); + $form['#theme'] = array($node->type . '_node_form', 'node_form');
+
+ $form['#builder_function'] = 'node_form_submit_build_node';
+ field_attach_form('node', $node, $form, $form_state);
+ return $form; } @@ -464,8 +468,11 @@ function node_form_submit_build_node($form, &$form_state) { // Unset any button-level handlers, execute all the form-level submit // functions to process the form values into an updated node. unset($form_state['submit_handlers']); - form_execute_handlers('submit', $form, $form_state); - $node = node_submit($form_state['values']); + form_execute_handlers('submit', $form, $form_state);
+ $node = node_submit($form_state['values']);
+
+ field_attach_submit('node', $node, $form, $form_state);
+ $form_state['node'] = (array)$node; $form_state['rebuild'] = TRUE; return $node; |