summaryrefslogtreecommitdiff
path: root/modules/node/node.module
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-09-03 19:56:51 +0000
committerDries Buytaert <dries@buytaert.net>2010-09-03 19:56:51 +0000
commit3702347af9760797e05c3c9c9c9d78dae3a3f75c (patch)
treecb79b63570e24307d5ca3f72834e3e070f9abd24 /modules/node/node.module
parent5d810f73e73e8dc2359f6aff0c61562567c7a859 (diff)
downloadbrdo-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.module17
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);
+ }
}
/**