diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-09-03 19:56:51 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-09-03 19:56:51 +0000 |
commit | 3702347af9760797e05c3c9c9c9d78dae3a3f75c (patch) | |
tree | cb79b63570e24307d5ca3f72834e3e070f9abd24 /modules/node/node.module | |
parent | 5d810f73e73e8dc2359f6aff0c61562567c7a859 (diff) | |
download | brdo-3702347af9760797e05c3c9c9c9d78dae3a3f75c.tar.gz brdo-3702347af9760797e05c3c9c9c9d78dae3a3f75c.tar.bz2 |
- Patch #241364 by maartenvg, sun, effulgentsia: () not passed to hook_validate()/hook_node_validate(), and not passed by reference to hook_form().
Diffstat (limited to 'modules/node/node.module')
-rw-r--r-- | modules/node/node.module | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/modules/node/node.module b/modules/node/node.module index fb8352de3..8bacba7a5 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -926,7 +926,7 @@ function node_object_prepare($node) { /** * Perform validation checks on the given node. */ -function node_validate($node, $form = array()) { +function node_validate($node, $form, &$form_state) { $type = node_type_get_type($node); if (isset($node->nid) && (node_last_changed($node->nid) > $node->changed)) { @@ -946,9 +946,18 @@ function node_validate($node, $form = array()) { form_set_error('date', t('You have to specify a valid date.')); } - // Do node-type-specific validation checks. - node_invoke($node, 'validate', $form); - module_invoke_all('node_validate', $node, $form); + // Invoke hook_validate() for node type specific validation and + // hook_node_validate() for miscellaneous validation needed by modules. Can't + // use node_invoke() or module_invoke_all(), because $form_state must be + // receivable by reference. + $function = node_type_get_base($node) . '_validate'; + if (function_exists($function)) { + $function($node, $form, $form_state); + } + foreach (module_implements('node_validate') as $module) { + $function = $module . '_node_validate'; + $function($node, $form, $form_state); + } } /** |