summaryrefslogtreecommitdiff
path: root/modules/node/node.pages.inc
diff options
context:
space:
mode:
Diffstat (limited to 'modules/node/node.pages.inc')
-rw-r--r--modules/node/node.pages.inc11
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'])) {