Here is a quick code snippet that enables you to add your own custom validation to a CCK node type form.
<?php
function MYMODULE_form_alter ( $form_id , & $form ) {
// create a list of node types that require custom validation
$nodeTypes = array (
'MYNODETYPE1' ,
'MYNODETYPE2' ,
);
// check if the form id is a node form, and if it exists in the above array
if ( substr ( $form_id , - 10 ) == '_node_form' && in_array ( substr ( $form_id , 0 , strlen ( $form_id ) - 10 ), $nodeTypes )) {
$form [ '#validate' ] = array_merge ( array ( '_MYMODULE_node_form_validate' => array ()), $form [ '#validate' ]);
}
}
function _MYMODULE_node_form_validate ( $form_id , $form_values , $form )
{
// DEBUG: use print_r($form_values) to see what has been submitted
// TODO: check for errors here, and use form_set_error() as necessary
// for example:
if ( $form_values [ 'MYFIELD' ][ 0 ][ 'value' ] == 'SOMETHING NAUGHTY' ) {
form_set_error ( 'MYFIELD' , 'MY CUSTOM ERROR MESSAGE' );
}
}
?>