diff options
Diffstat (limited to 'modules/node/node.pages.inc')
-rw-r--r-- | modules/node/node.pages.inc | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/modules/node/node.pages.inc b/modules/node/node.pages.inc index fe9eff155..4053b6dc5 100644 --- a/modules/node/node.pages.inc +++ b/modules/node/node.pages.inc @@ -80,10 +80,7 @@ function node_form_validate($form, &$form_state) { // not update it with form values that have not yet been validated, so we // create a pseudo-entity to use during validation. $node = (object) $form_state['values']; - node_validate($node, $form); - - // Field validation. Requires access to $form_state, so this cannot be - // done in node_validate() as it currently exists. + node_validate($node, $form, $form_state); entity_form_field_validate('node', $form, $form_state); } @@ -137,8 +134,10 @@ function node_form($form, &$form_state, $node) { '#type' => 'hidden', '#default_value' => isset($node->changed) ? $node->changed : NULL, ); - // Get the node-specific bits. - if ($extra = node_invoke($node, 'form', $form_state)) { + // Invoke hook_form() to get the node-specific bits. Can't use node_invoke(), + // because hook_form() needs to be able to receive $form_state by reference. + $function = node_type_get_base($node) . '_form'; + if (function_exists($function) && ($extra = $function($node, $form_state))) { $form = array_merge_recursive($form, $extra); } if (!isset($form['title']['#weight'])) { |